JDBC事务处理

关于事务:

1、一个事务中的多个操作应该公用一个connection,如果每一个操作都用不同的connection,事务将无法回滚。

2、具体步骤:

  1)、在事务开始前,应该取消事务的自动提交,即设置 connection.setAutoCommit(false);

  2)、如果事务中的操作都执行成功,则提交事务,即 connection.commit();

  3)、如果事务执行过程中出现异常,则在catch中回滚事务,即 connection.rollback();

 1 @Test
 2     public void testTransaction() throws Exception {
 3         Connection connection = null;
 4         try{
 5             connection = jdbcTools.getConnection();
 6             System.out.println(connection);
 7             connection.setAutoCommit(false);
 8             String sql = "update user set balance = balance - 500 where id = 1";
 9             update(connection,sql);
10
11             sql = "update user set balance = balance + 500 where id = 2";
12             update(connection,sql);
13
14             connection.commit();
15
16         }catch (Exception e){
17             e.printStackTrace();
18             connection.rollback();
19         }finally {
20             jdbcTools.releaseResource(null,null,connection);
21         }
22
23
24     }
25
26     public void update (Connection connection,String sql){
27         PreparedStatement preparedStatement = null;
28         try {
29             preparedStatement = connection.prepareStatement(sql);
30             preparedStatement.execute();
31         } catch (Exception e) {
32             e.printStackTrace();
33         }finally {
34             jdbcTools.releaseResource(null,preparedStatement,null);
35         }
36     }
时间: 2024-10-01 04:42:01

JDBC事务处理的相关文章

JDBC 事务处理【最终版】

事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态. 事务处理(事务操作):保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式. 当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久地保存下来:要么数据库管理系统将放弃所作的所有修改,整个事务回滚(rollback)到最初状态. 为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视

MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(九)----JDBC的PreparedStatement接口重构增删改查 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit.Rollback命令进行事务的提交与回滚.实际上在JDBC中也存在事务处理,如果要想进行事务处理的话,则必须按照以下的步骤完成. JDBC中事务处理的步骤: 1.要取消掉JDBC的自动提交:void setAutoCommit(boolea

JDBC:事务处理

事务 数据库事务是指由一个或者多个SQL语句组成的工作单元,这个工作单元中的SQL语句是相互依赖的,简单点说,即一个SQL语句如果出现了一个错误,那么这一整个工作单元都将会被撤销掉. 事务的四大特性: Atomic(原子性):事务中包含的操作被看作一个逻辑单元,这个逻辑单元中的操作要么全部成功,要么全部失败. Consistency(一致性):只有合法的数据可以被写入数据库,否则事务应该将其回滚到最初状态. Isolation(隔离性):事务允许多个用户对同一个数据的并发访问,而不破坏数据的正确

【转】jdbc事务处理

http://apzx2007.blog.163.com/blog/static/70507440200910236014880/ 在JDBC的数据库操作中,一项事务是由一条或是多条表达式所组成的一个不可分割的工作单元.我们通过提交commit()或是回退rollback()来结束事务的操作.关于事务操作的方法都位于接口java.sql.Connection中. 首先我们要注意,在JDBC中,事务操作默认是自动提交.也就是说,一条对数据库的更新表达式代表一项事务操作.操作成功后,系统将自动调用c

JDBC、JTA、Spring的事务管理

Java事务的类型有三种:JDBC事务.JTA(Java Transaction API)事务.容器事务. 事务就是对一系列的数据库操作(比如插入多条数据)进行统一的提交或回滚操作,如果插入成功,那么一起成功,如果中间有一条出现异常,那么回滚之前的所有操作.       这样可以防止出现脏数据,防止数据库数据出现问题.开发中为了避免这种情况一般都会进行事务管理. JDBC中是通过Connection对象进行事务管理的Hibernate中是通过Transaction进行事务管理,处理方法与JDBC

JDBC 2

使用 JDBC 驱动程序处理元数据 Java 通过JDBC获得连接以后,得到一个Connection 对象,可以从这个对象获得有关数据库管理系统的各种信息,包括数据库中的各个表,表中的各个列,数据类型,触发器,存储过程等各方面的信息.根据这些信息,JDBC可以访问一个实现事先并不了解的数据库. 获取这些信息的方法都是在DatabaseMetaData类的对象上实现的,而DataBaseMetaData对象是在Connection对象上获得的. DatabaseMetaData类 Database

传智播客JDBC视频教程

视频介绍: 一些视频教程通过浅显案例来让刚開始学习的人感到轻松,可是课程中编写的代码不能直接应用于项目中:而本套视频教程正好相反,视频解说者李勇老师以技术见长.性格朴实无华.不善于幽默搞笑.李勇老师编写的代码很专业和有用,整个内容都是採用实际项目中应用的高水准代码.站在较高层次上进行深入解说,所以,初学人员学习本视频教程在開始时会比較吃力.可能必须耐心学习多遍才干渐入佳境.但你一旦掌握了当中的内容.特别是掌握了李勇老师所编写的那些代码,你的编码能力将会相当出众! 对新手来说,这肯定不是最好的视频

事务处理-回滚(转账操作)

JDBC事务处理-四大原则 原子性一致性隔离性持久性 第一步:实现转账操作 假设在账户中,盖伦有余额5000元,赵信有余额2000元, 盖伦要向赵信转账1000元. public static void outMoney(Connection conn,String name,int account) throws SQLException{ String sql="update t_account set balance=balance-? where name=?"; Prepar

Atitti 数据库事务处理 attilax总结

Atitti 数据库事务处理 attilax总结 1.1. 为什么要传递Connection?1 1.2. 两种事务处理方式,一种是编程式事务处理;一种是声明...2 1.3. 事务隔离级别 2 1.4. 事务传播行为2 1.5. 事务的回滚规则 3 1.6. 声明式事务唯一不足地方是,方法级别,无法做到像编程式事务那样可以作用到代码块级别.3 1.7. 事务对影响记录条数的影响,好像没影响,回滚了也提示修改了一条.Callback没有也不关系..只要不commit,好像就会自动回滚的.4 1.