事务管理与控制
📄字数 814
👁️阅读量 加载中...
连接事务管理
数据库事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行, 要么全部不执行,是一个不可分割的工作单位。事务由事务开始到事务结束之间执行的全部数据库操作组成。
自动提交模式,即当一条SQL语句执行完成后,数据库系统将自动提交该语句所在事务。在XuguDB-JDBC驱动中控制事务自动提交模式有两种方式:
- 通过数据库连接URL串的auto_commit属性,控制事务的开启与关闭,默认情况下auto_commit属性为on,即自动提交模式。
- 通过Connection类的setAutoCommit(boolean commit)方法控制事务的开启与关闭,默认情况下commit属性为TRUE,即自动提交模式。
在禁用自动提交模式下,使用Connection类的commit()方法提交SQL语句对数据库做的更改,而Connection类的rollback()方法将回滚SQL语句对数据库的更改,上述两种方法执行完成后均将释放事务持有的全部锁资源。
注意
事务仅对数据库DML操作有效。
JDBC事务的使用主要包括以下三个方面:
- 使用setAutoCommit() 方法开启事务
java
//设置事务为非自动提交模式
conn.setAutoCommit(false);
- 若出现异常则需要回滚事务
java
//事务回滚方法
conn.rollback();
- 如果没有异常提交事务
java
//提交事务
conn.commit();
连接事务控制
JDBC规范3.0中为了增加对事务的控制,新增Savepoint接口,其代表事务中的一个逻辑事务点。在非自动提交模式下,一个事务中可以设置多个Savepoint,在代码中进行事务回滚操作时,可以指定事务回滚到指定Savepoint位置,指定回滚位置前的事务操作仍然保留。此接口大大提高了事务处理的粒度,方便应用程序控制事务处理逻辑。
java
//设置事务回滚点save
java.sql.Savepoint save =conn.setSavepoint("save");