首先我们来说一下setAutoCommit,当我们设置为true或默认情况下,jdbc事务会自动提交,当我们将setAutoCommit设为false时,虽然是手动提交事务,但是如果不写手动提交代码,最后也会提交。那有什么不一样呢,例如:我们在一个方法内多次执行数据库操作,中间有根据状态或上一返回值来确定是否回滚的情况下,如果是自动提交,那回滚就不起作用,如果是手动提交状态,那回滚就有效。
接下来还是看Savepoint
con.setAutoCommit(false);
Savepoint first=con.setSavepoint("first");
ps=con.prepareStatement("update employees t set t.first_name='guohr1' where t.employee_id=207");
flag=ps.executeUpdate();
log.info("flag:"+flag);
Savepoint second=con.setSavepoint("second");
ps=con.prepareStatement("update employees t set t.first_name='guohr2' where t.employee_id=207");
flag=ps.executeUpdate();
log.info("flag:"+flag);
Savepoint third=con.setSavepoint("third");
ps=con.prepareStatement("update employees t set t.first_name='guohr3' where t.employee_id=207");
flag=ps.executeUpdate();
log.info("flag:"+flag);
con.rollback(second);
我在每次update前创建了一个回滚点,当最后rollback的时候如果参数如上为second,那么first_name='guohr1',如果参数为third,那么为guohr2,当然实际中不是像滚雪球一样这么随意滚的,可以根据前面返回的状态或值来判断是否需要回滚及滚到哪一步之前。
分享到:
相关推荐
public void rollback(Savepoint savepoint) throws SQLException { } public void releaseSavepoint(Savepoint savepoint) throws SQLException { } public Statement createStatement(int resultSetType, int ...
13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET TRANSACTION语法 13.4.7. XA事务 13.5. 数据库管理语句 13.5.1. 账户管理语句 13.5.2. 表维护语句 13.5.3. SET...
Oracle 数据库中的SQL是当今市场上功能最强大的SQL实现之一,而本书全面展示了这一工具的威力。如何才能让更多人有效地学习和掌握SQL呢?Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习...
13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET TRANSACTION语法 13.4.7. XA事务 13.5. 数据库管理语句 13.5.1. 账户管理语句 13.5.2. 表维护语句 13.5.3. SET...
言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 ...2.5.在Mac OS X中安装MySQL ...2.6. 在NetWare中安装...13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法...
2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从...
在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 ...
13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET TRANSACTION语法 13.4.7. XA事务 13.5. 数据库管理语句 13.5.1. 账户管理语句 13.5.2. 表维护语句 13.5.3. SET...
13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET TRANSACTION语法 13.4.7. XA事务 13.5. 数据库管理语句 13.5.1. 账户管理语句 13.5.2. 表维护语句 13.5.3. SET...
目录 前言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 ...13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET ...
13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT语法 13.4.5. LOCK TABLES和UNLOCK TABLES语法 13.4.6. SET TRANSACTION语法 13.4.7. XA事务 13.5. 数据库管理语句 13.5.1. 账户管理语句 13.5.2. 表维护语句 13.5.3. SET...