CREATETABLE TEST (MYKEY VARCHARNOTNULLPRIMARYKEY, A.COL1 VARCHAR, A.COL2 VARCHAR, B.COL3 VARCHAR)
当用UPSERT进行大量数据的插入时,关闭自动提交,设置最大提交限制。
try (Connection conn = DriverManager.getConnection(url)) {
conn.setAutoCommit(false);
int batchSize = 0;
int commitSize = 1000; // number of rows you want to commit per batch.
try (Statement stmt = conn.prepareStatement(upsert)) {
stmt.set ...while (there are records to upsert) {
stmt.executeUpdate();
batchSize++;
if (batchSize % commitSize == 0) {
conn.commit();
}
}
conn.commit(); // commit the last batch of records
}