java mysql批量插入
时间: 2024-05-06 16:14:22 浏览: 135
是的,你可以使用Java JDBC对MySQL数据库进行批量插入。
以下是两种Java JDBC批量插入MySQL的方法:
1.使用addBatch()和executeBatch()方法[^1]
```java
//加载JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
//连接MySQL数据库
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useUnicode=true&rewriteBatchedStatements=true", "root", "abc123");
//关闭自动提交
conn.setAutoCommit(false);
//创建预处理语句
PreparedStatement pst = conn.prepareStatement("insert into student(name, age) values(?,?)");
//循环添加数据到预处理语句中
for (int i = 0; i < 10000; i++) {
pst.setString(1, "name" + i);
pst.setInt(2, i);
pst.addBatch();
}
//执行批处理
pst.executeBatch();
//提交事务
conn.commit();
//关闭连接
pst.close();
conn.close();
```
2.使用addBatch()和executeLargeBatch()方法,执行更大的批处理
```java
//加载JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
//连接MySQL数据库
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useUnicode=true&rewriteBatchedStatements=true", "root", "abc123");
//关闭自动提交
conn.setAutoCommit(false);
//创建预处理语句
PreparedStatement pst = conn.prepareStatement("insert into student(name, age) values(?,?)");
//循环添加数据到预处理语句中
for (int i = 0; i < 1000000; i++) {
pst.setString(1, "name" + i);
pst.setInt(2, i);
pst.addBatch();
//1万次提交一次
if (i % 10000 == 0) {
pst.executeLargeBatch();
}
}
//提交事务
conn.commit();
//关闭连接
pst.close();
conn.close();
```
阅读全文