我正在编写用于在表中插入45000条记录的Java代码,我使用以下代码:
//create Db Connection
List<String> sqlInsertQueries = getListOfInsertsQueries();
for (String currentsql : sqlInsertQueries)
{
stmt.addBatch(currentsql);
}
stmt.executeBatch();
conn.commit();
Run Code Online (Sandbox Code Playgroud)
此代码非常慢,完成需要将近5分钟.
有什么想法让它更快地运作?
sta*_*ker 16
您应确保自动提交为false,并使用预准备语句.准备好的语句可用于插入和更新.
connection con.setAutoCommit(false);
PreparedStatement prepStmt = con.prepareStatement("INSERT INTO table (val1,val2) VALUES (?,?)");
for all values:
prepStmt.setString(1,val1);
prepStmt.setString(2,val2);
prepStmt.addBatch();
stmt.executeBatch();
conn.commit();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10229 次 |
| 最近记录: |