事务简介
- 事务:事务是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。
- 事务操作流程:
- 开启事务
- 提交事务
- 回滚事务
JDBC中事务处理特点
在JDBC中,使用Connection对象来管理事务,默认为自动提交事务。可以通过setAutoCommit(boolean autoCommit)方法设置事务是否自动提交,参数为boolean类型,默认值为true,表示自动提交事务,如果值为false则表示不自动提交事务,需要通过commit方法手动提交事务或者通过rollback方法回滚事务。
事务实现
import java.sql.Connection;
import java.sql.PreparedStatement;
/**
* 批量添加数据方式二(数据量大)
* 支持事务回滚
*/
public void addBatch_2(){
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = JDBCUtils.getConnection();
//设置事务的提交方式,将自动提交改为手动提交
connection.setAutoCommit(false);
preparedStatement = connection.prepareStatement("insert into users values (default ,?,?)");
//参数绑定
for(int i=0;i<1000;i++){
preparedStatement.setString(1,"laogeng"+i);
preparedStatement.setInt(2,20);
//缓存sql
preparedStatement.addBatch();
if(i%500==0){
preparedStatement.executeBatch();
//清缓存
preparedStatement.clearBatch();
}
}
//手动提交事务
JDBCUtils.commit(connection);
}catch (Exception e){
e.printStackTrace();
JDBCUtils.rollBack(connection); //回滚
}finally {
JDBCUtils.clossResource(preparedStatement,connection);
}
}
public static void main(String[] args) {
AddBatchTest addBatchTest = new AddBatchTest();
addBatchTest.addBatch_2();
}
}