>>分享Java编程技术,对《Java面向对象编程》等书籍提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 30166 个阅读者 刷新本主题
 * 贴子主题:  JDBC连接操作多种数据库代码汇总 回复文章 点赞(0)  收藏  
作者:日月光华    发表时间:2020-01-02 08:11:55     消息  查看  搜索  好友  邮件  复制  引用

JDBC连接操作多种数据库代码汇总

版权声明:本文遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文转自:https://blog.csdn.net/Loiterer_Y/article/details/84849899
以批量创建表和记录为例,汇总JDBC操作多种数据库代码。
下述代码实现的功能是:往数据库中创建10000张表,每50张表插入记录。

1、JDBC连接操作Oracle数据库
package demo;

import org.apache.commons.lang.RandomStringUtils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Date;

public class OracleDemo{
    public static void main(String[] args) {
        Connection c = null;
        // 注册驱动
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            c = DriverManager.getConnection(
                    "jdbc:oracle:thin:@ip:port:xe", "userName", "password");
            c.setAutoCommit(false);
            PreparedStatement ps;
            System.out.println("开始插入数据-" + new Date());
            Long beginTime = System.currentTimeMillis();
            for (int i = 1; i <= 10000; i++) {
                // 创建表
                ps = c.prepareStatement("create table CLOUD_000" + i + "(" +
                        "C_ID NUMBER PRIMARY KEY, " +
                        "C_NAME VARCHAR(255)" +
                        ")");
                ps.execute();
                // 插入数据
                if (i % 50 == 0) {
                    String sql = "insert into CLOUD_00" + i + " values (?, ?)";
                    ps = c.prepareStatement(sql);
                    for (int y = 10001; y <= 11001; y++) {
                        ps.setInt(1, y);
                        ps.setString(2, RandomStringUtils.randomAlphanumeric(20));
                        ps.addBatch();
                        if (y == 11001) {
                            ps.executeBatch();
                            c.commit();
                            ps.clearBatch();
                            System.out.println("数据总数:" + (i * 100));
                        }
                    }
                    ps.executeUpdate();
                }
                System.out.println("创建表数目:" + i);
                ps.close();
            }
            System.out.println("插入完成-" + new Date());
            System.out.println("耗时:" + ((beginTime - System.currentTimeMillis()) / 1000) + "秒");
        } catch(Exception e) {
            e.getStackTrace();
        }
    }
}

2、JDBC连接操作MySQL数据库


package demo;

import org.apache.commons.lang.RandomStringUtils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Date;

public class MySQLDemo{
    public static void main(String[] args) {
        Connection c = null;
        // 注册驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            c = DriverManager.getConnection(
                    "jdbc:mysql://ip:port/database", "userName", "password");
            PreparedStatement ps;
            System.out.println("开始插入数据-" + new Date());
            Long beginTime = System.currentTimeMillis();
            for (int i = 1; i <= 10000; i++) {
                ps = c.prepareStatement("create table cloud_000" + i + "(" +
                        "c_id int primary key , " +
                        "c_name VARCHAR(255)" +
                        ")");
                ps.execute();
                if (i % 50 == 0) {
                    ps = c.prepareStatement("insert into cloud_000" + i + " values (?, ?)");
                    ps.setInt(1, i);
                    ps.setString(2, RandomStringUtils.randomAlphanumeric(20));
                    ps.executeUpdate();
                }
                System.out.println("创建表数目:" + i);
                ps.close();
            }
            System.out.println("插入完成-" + new Date());
            System.out.println("耗时:" + ((beginTime - System.currentTimeMillis()) / 1000) + "秒");
        } catch(Exception e) {
            e.getStackTrace();
        }
    }
}

3、JDBC连接操作SQLServer数据库


package demo;

import org.apache.commons.lang.RandomStringUtils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Date;

public class MSSQLDemo{
    public static void main(String[] args) {
        Connection c = null;
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            c = DriverManager.getConnection(
                    "jdbc:sqlserver://ip:port;DatabaseName=database;", "username", "password");
            PreparedStatement ps;
            System.out.println("开始插入数据-" + new Date());
            Long beginTime = System.currentTimeMillis();
            for (int i = 1; i <= 10000; i++) {
                ps = c.prepareStatement("create table test.cloud_000" + i + "(" +
                        "c_id int primary key , " +
                        "c_name VARCHAR(255)" +
                        ")");
                ps.execute();
                if (i % 50 == 0) {
                    ps = c.prepareStatement("insert into test.cloud_000" + i + " values (?, ?)");
                    ps.setInt(1, i);
                    ps.setString(2, RandomStringUtils.randomAlphanumeric(20));
                    ps.executeUpdate();
                    System.out.println("耗时:" + ((beginTime - System.currentTimeMillis()) / 1000) + "秒");
                }
                System.out.println("创建表数目:" + i);
                ps.close();
            }
            System.out.println("插入完成-" + new Date());
            System.out.println("耗时:" + ((beginTime - System.currentTimeMillis()) / 1000) + "秒");
        } catch (Exception e) {
            e.getStackTrace();
            System.out.println(e.getMessage());
        }
    }
}

4、JDBC连接操作PostgreSQL数据库


package demo;

import org.apache.commons.lang.RandomStringUtils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Date;

public class PostgreDemo {
    public static void main(String[] args) {
        Connection c = null;
        try {
            Class.forName("org.postgresql.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            c = DriverManager.getConnection(
                    "jdbc:postgresql://ip:port/database", "username", "password");
            PreparedStatement ps;
            System.out.println("开始插入数据-" + new Date());
            Long beginTime = System.currentTimeMillis();
            for (int i = 1; i <= 10000; i++) {
                ps = c.prepareStatement("create table test.cloud_000" + i + "(" +
                        "c_id int primary key , " +
                        "c_name VARCHAR(255)" +
                        ")");
                ps.execute();
                if (i % 50 == 0) {
                    ps = c.prepareStatement("insert into test.cloud_000" + i + " values (?, ?)");
                    ps.setInt(1, i);
                    ps.setString(2, RandomStringUtils.randomAlphanumeric(20));
                    ps.executeUpdate();
                    System.out.println("耗时:" + ((beginTime - System.currentTimeMillis()) / 1000) + "秒");
                }
                System.out.println("创建表数目:" + i);
                ps.close();
            }
            System.out.println("插入完成-" + new Date());
            System.out.println("耗时:" + ((beginTime - System.currentTimeMillis()) / 1000) + "秒");
        } catch (Exception e) {
            e.getStackTrace();
            System.out.println(e.getMessage());
        }
    }
}

4、Java连接操作Mongo数据库


package demo;

import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

import java.util.Date;

public class MongoDemo {
    public static void main(String[] args) {
        MongoClientURI uri = new MongoClientURI(
                "mongodb://userName:password@ip:port/?authSource=admin&database=db");
        // 创建连接
        MongoClient client = new MongoClient(uri);
        // 连接数据库
        MongoDatabase database = client.getDatabase("db");
        System.out.println("开始插入数据-" + new Date());
        Long beginTime = System.currentTimeMillis();
        for (int i = 1; i <= 10000; i++) {
            // 创建集合
            database.createCollection("cloud_000" + i);
            if (i % 50 == 0) {
                MongoCollection<Document> collection = database.getCollection("cloud_000" + i);
                // 生成数据
                Document document = new Document("stuId", "1").append("stuName", "Jack");
                // 插入数据
                collection.insertOne(document);
                System.out.println("耗时:" + ((beginTime - System.currentTimeMillis()) / 1000) + "秒");
            }
            System.out.println("创建表数目:" + i);

        }
        System.out.println("插入完成-" + new Date());
        System.out.println("耗时:" + ((beginTime - System.currentTimeMillis()) / 1000) + "秒");
    }
}

程序猿的技术大观园:www.javathinker.net
  Java面向对象编程-->面向对象开发方法概述之开发思想(上)
  JavaWeb开发-->访问数据库(Ⅱ)
  JSP与Hibernate开发-->映射组成关系
  Java网络编程-->用Spring整合CXF发布Web服务
  精通Spring-->通过Vuex进行状态管理
  Vue3开发-->创建综合购物网站应用
  《漫画Java编程》勘误及建议
  从实战角度解读JVM:类加载机制+JVM调优实战+代码优化!
  java.util.logging.Logger使用详解
  不修改源代码,动态注入Java代码的方法
  面试官刁难:Java字符串可以引用传递吗?
  Eclipse使用指南:常用视图(View) 的用法
  java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍
  Java入门实用代码:List 循环移动元素
  Java入门实用代码:向文件写入字符串
  Java入门实用代码:数组元素的反转
  Java入门实用代码:字符串替换
  JAVA日期加减运算
  通过Java读取Excel数据
  Eclipse中怎么一键去除java项目中的信息打印语句
  Java中的main()方法详解
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。