Java向mysql批量存储数据_java批量插入数据进数据库中
时间: 2024-01-22 07:18:10 浏览: 143
批量插入数据库
4星 · 用户满意度95%
Java向MySQL批量存储数据可以使用批处理(batch)的方式进行,这样可以大大提高插入数据的效率。下面是一个简单的示例代码:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class BatchInsertDemo {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "123456";
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, username, password);
conn.setAutoCommit(false);//关闭自动提交事务
PreparedStatement pstmt = conn.prepareStatement("insert into user(name, age) values (?, ?)");
for (int i = 1; i <= 10000; i++) {
pstmt.setString(1, "user" + i);
pstmt.setInt(2, i % 100);
pstmt.addBatch();//添加到批处理中
}
pstmt.executeBatch();//批量执行
conn.commit();//提交事务
pstmt.close();
conn.close();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,我们创建了一个名为`BatchInsertDemo`的类,其中定义了一个`main()`方法。在`main()`方法中,我们首先定义了连接MySQL的URL、用户名和密码,然后使用`Class.forName()`方法加载了MySQL的驱动程序。接下来,我们通过`DriverManager.getConnection()`方法获得了与MySQL数据库的连接,并将自动提交事务关闭。
然后,我们使用`PreparedStatement`对象执行了一条插入语句,并使用`addBatch()`方法将其添加到批处理中。在循环结束后,我们使用`executeBatch()`方法批量执行所有的插入语句,并将事务提交。最后,我们关闭了`PreparedStatement`对象和数据库连接。
需要注意的是,批量插入数据时,每次插入的数据量不宜过大,否则可能会导致内存溢出或性能下降。一般来说,每批次插入的数据量在几千到一万条之间比较合适。
阅读全文