java提交事务:
conn.setAutoCommit(false)
Statement stat = conn.createStatement()
stat.executeUpdate(command1)
Savepoint svpt = conn.setSavepoint()
stat.executeUpdate(command2)
stat.executeUpdate(command3)
···
if(···) conn.rollback(svpt)
···
conn.commit()
conn.releaseSavepoint(svpt)
批量更新能使一个语句序列作为一批操作同时收集和提交:
boolean autoCommit = conn.getAutoCommit()
conn.setAutoCommit(false)
Statement stat = conn.CreateStatement()
···
stat.addBatch(command)
while(···){
command = "INSERT INTO ```` VALUES (````)"
stat.addBatch(command)
}
conn.executeBatch()
conn.commit()
conn.setAutoCommit(autoCommit)
executeBatch方法返回一个记录数的数组,其中每一个元素都对应一条语句,如果其值为非负,则代表守该语句影响的记录总数;如果其值为SUCCESS_NO_INFO,则表示该语句成功执行了,但没有记录数可用;如果其值为EXECUTE_FAILED,则表示该语句执行失败了。