导入两百万数据Java
时间: 2023-07-28 11:10:42 浏览: 170
java 导出百万条数据代码
导入大量数据需要考虑效率和内存占用问题。一种常见的做法是使用批量插入,即将多条数据打包成一个数据包,一次性插入到数据库中。以下是一个使用 JDBC 批处理技术导入两百万数据的示例代码:
```java
public void insertData(List<Data> dataList) throws SQLException {
Connection conn = null;
PreparedStatement pst = null;
int batchSize = 1000; // 每批插入的数据量
try {
conn = getConnection(); // 获取数据库连接
pst = conn.prepareStatement("INSERT INTO my_table (col1, col2, col3) VALUES (?, ?, ?)");
int count = 0;
for (Data data : dataList) {
pst.setString(1, data.getCol1());
pst.setInt(2, data.getCol2());
pst.setDouble(3, data.getCol3());
pst.addBatch();
if (++count % batchSize == 0) { // 达到批处理数量,执行批处理
pst.executeBatch();
pst.clearBatch();
}
}
if (count % batchSize != 0) { // 处理剩余的数据
pst.executeBatch();
pst.clearBatch();
}
} finally {
if (pst != null) {
pst.close();
}
if (conn != null) {
conn.close();
}
}
}
```
这段代码使用 PreparedStatement 对象预处理 SQL 语句,然后使用 `addBatch()` 方法将每条数据添加到批处理中。当达到批处理数量时,使用 `executeBatch()` 方法执行批处理,清空批处理缓存。最后,如果还有剩余的数据没有处理,也需要执行一次批处理。可以根据实际情况调整批处理数量大小,以达到最优的导入效率。
阅读全文