如何用Java代码插入一百万条数据
时间: 2024-09-15 08:03:44 浏览: 40
在Java中大量插入数据到数据库通常涉及到批量操作,特别是对于百万级别的数据,一次性提交可能会导致性能下降或内存溢出。这里是一个基本的步骤:
1. 首先,你需要连接到数据库,比如MySQL,可以使用JDBC(Java Database Connectivity)或者ORM框架如Hibernate、MyBatis等。
```java
import java.sql.Connection;
import java.sql.PreparedStatement;
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
```
2. 创建一个PreparedStatement对象,它允许预先编译SQL语句并多次执行,减少解析开销。
```java
String sql = "INSERT INTO my_table (column1, column2) VALUES (?, ?)";
PreparedStatement statement = conn.prepareStatement(sql);
```
3. 准备一个数组或集合,存储你要插入的数据。假设每个数据是一对(key, value),例如`(1, "value1")`。
4. 使用循环,将数据逐条插入,避免一次性加载所有数据到内存。
```java
for (int i = 0; i < 1000000; i++) {
statement.setInt(1, i); // 这里假设key是第一个参数,值是第二个参数
statement.setString(2, "value" + i); // 根据实际需要替换value
statement.addBatch();
}
// 执行批处理
statement.executeBatch();
```
5. 最后别忘了关闭连接和预编译的Statement,释放资源。
```java
conn.setAutoCommit(false); // 关闭自动提交,防止频繁提交影响性能
try {
statement.close();
} finally {
conn.commit(); // 提交事务
if (conn != null) {
conn.close();
}
}
```
阅读全文