我需要读取带有标题和数据的Excel文件,并根据从文件中提取的标头和放置值在数据库(MySQL)中创建一个表.为此,我使用JDBC在DB Table中创建和插入数据(使用的预处理语句).
它工作得很好但是当记录数量增加时--suppose文件包含200000或更多记录 - 它会变慢.请指导我如何优化将数据插入数据库表的处理速度.
谢谢,Sameek
要优化它,首先应在所有插入中使用相同的PreparedStatement对象.
要进一步优化代码,您可以发送批量更新.
例如5批次:
//create table
PreparedStatement ps = conn.prepareStatement(sql);
for(int i =0; i < rows.length; ++i) {
if(i != 0 && i%5 == 0) {
pstmt.executeBatch();
}
pstmt.setString(1, rows[i].getName());
pstmt.setLong(2, rows[i].getId());
pstmt.addBatch();
}
pstmt.executeBatch();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1273 次 |
| 最近记录: |