JDBC-事务处理控制
2012-02-20 17:21
176 查看
在JDBC的数据库操作中,一项事务是由一条或是多条表达式所组成的一个不可分割的工作单元。我们通过提交commit()或是回退rollback()来结束事务的操作。针对事务的控制有自动控制和手动控制两种。
事务的自动控制
在JDBC中,事务操作默认是自动提交。也就是说,一条对数据库的更新表达式代表一项事务操作。操作成功后,系统将自动调用commit()来提交,否则将调用rollback()来回退。 不用特意在代码中写commit(),rollback()操作。
事务的手动控制
在JDBC中,可以通过调用setAutoCommit(false)来禁止自动提交。之后就可以把多个数据库操作的表达式作为一个事务,在操作完成后调用commit()来进行整体提交。倘若其中一个表达式操作失败,都不会执行到commit(),并且将产生响应的异常。此时就可以在异常捕获时调用 rollback()进行回退。这样做可以保持多次更新操作后,相关数据的一致性。
try{
// 禁止自动提交,设置成手动提交
conn.setAutoCommit(false);
stmt = conn.createStatement();
添加操作1
stmt.executeUpdate(“insert into myTable(ID,Name) values('liwg','weiguo') ”);
更新操作2
stmt.executeUpdate(“update myTable Set Name='liwg' Where ID = 'liyy'”);
//事务提交,-真正写入数据库操作
conn.commit();
}
catch(Exception e) {
e.printStackTrace();
if ( conn != null ) {
// 手动 回滚
conn.rollback();
}
}
上面这段程序的执行,或者两个操作都成功,或者两个都不成功。这就是手动事务的范围控制的能力,这个范围里也可以包含批量操作。
需要注意的是:连接的手动提交,在抛异常的时候需要用手动回滚来完成回滚操作。
事务的自动控制
在JDBC中,事务操作默认是自动提交。也就是说,一条对数据库的更新表达式代表一项事务操作。操作成功后,系统将自动调用commit()来提交,否则将调用rollback()来回退。 不用特意在代码中写commit(),rollback()操作。
事务的手动控制
在JDBC中,可以通过调用setAutoCommit(false)来禁止自动提交。之后就可以把多个数据库操作的表达式作为一个事务,在操作完成后调用commit()来进行整体提交。倘若其中一个表达式操作失败,都不会执行到commit(),并且将产生响应的异常。此时就可以在异常捕获时调用 rollback()进行回退。这样做可以保持多次更新操作后,相关数据的一致性。
try{
// 禁止自动提交,设置成手动提交
conn.setAutoCommit(false);
stmt = conn.createStatement();
添加操作1
stmt.executeUpdate(“insert into myTable(ID,Name) values('liwg','weiguo') ”);
更新操作2
stmt.executeUpdate(“update myTable Set Name='liwg' Where ID = 'liyy'”);
//事务提交,-真正写入数据库操作
conn.commit();
}
catch(Exception e) {
e.printStackTrace();
if ( conn != null ) {
// 手动 回滚
conn.rollback();
}
}
上面这段程序的执行,或者两个操作都成功,或者两个都不成功。这就是手动事务的范围控制的能力,这个范围里也可以包含批量操作。
需要注意的是:连接的手动提交,在抛异常的时候需要用手动回滚来完成回滚操作。
相关文章推荐
- 用于处理JDBC 增删等写操作的事务控制
- (6)理解事务处理、事务处理的隔离级别,和使用JDBC进行事务处理||抛弃框架,如何实现分层架构下JDBC事务的控制
- JDBC事务处理
- Spring学习心得(22)-- spring声明式事务处理(使用jdbc操作数据库)
- JDBC事务控制管理
- 理解事务处理、事务处理的隔离级别,和使用JDBC进行事务处
- JDBC第四章知识点总结——JDBC高级特性2--事务,并发控制,行集
- spring 2.5整合jdbc进行数据库操作和XML事务控制
- JDBC开发中的事务处理
- javaweb银行转账案例(事务处理)JDBC常见知识点(三)
- JDBC 事务处理机制、批处理、触发器
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
- Java事务管理学习一 -- JDBC的事务控制
- JDBC事务控制管理
- Java -- JDBC 事务处理, 事务的隔离级别 脏读 不可重复读 等...
- JDBC处理事务
- (转载)jdbc事务处理
- MySQL JDBC事务处理、封装JDBC工具类
- 理解事务处理、事务处理的隔离级别,和使用JDBC进行事务处理
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类