You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.5 KiB

package UnitTest;
import java.sql.*;
public class OpenGaussWriteShiWu_JDBC {
// JDBC连接参数
private static final String DB_DRIVER = "org.postgresql.Driver";
private static final String DB_CONNECTION = "jdbc:postgresql://10.10.14.63:15400/test_db";
private static final String DB_USER = "postgres";
private static final String DB_PASSWORD = "DsideaL147258369";
// 批量插入数据
public static void batchInsertData() {
// JDBC连接对象
Connection conn = null;
// JDBC执行语句对象
Statement stmt = null;
try {
// 加载JDBC驱动程序
Class.forName(DB_DRIVER);
// 获取JDBC连接对象
conn = DriverManager.getConnection(DB_CONNECTION, DB_USER, DB_PASSWORD);
// 设置事务自动提交为false
conn.setAutoCommit(false);
// 获取JDBC执行语句对象
stmt = conn.createStatement();
// 批量插入数据的SQL语句
String sql = "INSERT INTO test(id, txt) VALUES (?, ?)";
// 预编译SQL语句并添加批量操作数据
long start = System.currentTimeMillis();
int cnt=0;
for (int k = 1; k <= 10; k++) {
PreparedStatement pstmt = conn.prepareStatement(sql);
for (int i = 1; i <= 10000; i++) {
cnt++;
pstmt.setInt(1, cnt);
pstmt.setString(2, "黄海_" + i);
pstmt.addBatch();
}
// 执行批量插入操作
pstmt.executeBatch();
// 提交事务
conn.commit();
}
long end = System.currentTimeMillis();
long elapsed = end - start;
System.out.println("程序耗时:" + elapsed + " 毫秒");
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
try {
conn.rollback();
} catch (SQLException ex) {
ex.printStackTrace();
}
} finally {
try {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
batchInsertData();
}
}