1.JDBC事务管理
1.1 简介
- 事务:ACID特性
- 对于DDL是无效的,DDL一旦执行,都会自动提交
- 如果JDBC连接处理,默认情况下,自动提交式。每个SQL语句在完成后都会提交到数据库中对于
- 特殊情况,需要关闭自动提交,管理自己的事务(提高性能、保持业务流程的完整性、使用分布式程序保证事务)
1.2 操作流程
- 开启事务:connection.setAutocommit(false)
- 提交事务:connection.commit();
- 回滚事务:connection.rollback();
1.3 保存点SavePoint
有时候一个事务可能是一组复杂的语句,因此可能要回滚到某个特殊点。保存点帮我们在事务中创建这个点,让程序回滚到指定点。在程序中可以设置多个保存点。当事务提交或者事务回滚后,为事务产生的任何保存点都会自动释放并变为无效。把事务回滚到一个保存点,会使其他所有保存点自动释放并变为无效。
- 在事务中创建保存点
- 异常中捕捉保存点并回滚到保存点
//设置一个保存点
Savepoint savepoint=connection.setSavepoint();
//回滚保存点
connection.rollback(savepoint);