Java中的事务处理

原创 2004年07月08日 09:34:00

在数据库操作中,一项事务是指由一条或多条对数据库更新的sql语句所组成的一个不可分割的工作单元。只有当事务中的所有操作都正常完成了,整个事务才能被提交到数据库,如果有一项操作没有完成,就必须撤消整个事务。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

 

例如在银行的转帐事务中,假定张三从自己的帐号上把1000元转到李四的帐号上,相关的sql语句如下:

update account set monery=monery-1000 where name=’zhangsan’

update account set monery=monery+1000 where name=’lisi’

这个两条语句必须作为一个完成的事务来处理。只有当两条都成功执行了,才能提交这个事务。如果有一句失败,整个事务必须撤消。

 

 

connection类中提供了3个控制事务的方法:

(1)      setAutoCommit(Boolean autoCommit):设置是否自动提交事务;

(2)      commit();提交事务;

(3)      rollback();撤消事务;

 

 

jdbc api中,默认的情况为自动提交事务,也就是说,每一条对数据库的更新的sql语句代表一项事务,操作成功后,系统自动调用commit()来提交,否则将调用rollback()来撤消事务。

 

jdbc api中,可以通过调用setAutoCommit(false) 来禁止自动提交事务。然后就可以把多条更新数据库的sql语句做为一个事务,在所有操作完成之后,调用commit()来进行整体提交。倘若其中一项sql操作失败,就不会执行commit()方法,而是产生相应的sqlexception,此时就可以捕获异常代码块中调用rollback()方法撤消事务。

 

 

 

Try{

      Con = java.sql.DriverManager.getConnection(dburl , dbUser , dbPass);

      Con.setAutoCommit(false);

      Stmt = con.createStatement();

      Stmt.executeUpdate(“update account set monery=monery-1000 where name=’zhangsan’”);

      stmt.executeUpdate(“update account set monery=monery+1000 where name=’lisi’”);

      con.commit();

}catch(Exception ex){

      ex.printStackTrace();

      try{

           con.rollback();

}catch(Exception e){

      e.printStackTrace();

}

}finally{

      try{

           stmt.close();

           con.close();

}catch(Exception e){

      e.printStackTrace();

}

}

java事务管理

一、事务概念事务,通俗讲就是一组操作数据库的动作集合。事务(Transaction):是并发控制的单元,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,sq...
  • u010796790
  • u010796790
  • 2016年04月24日 19:33
  • 891

java事务管理

 什么是事务:首先,说说什么事务。我认为事务,就是一组操作数据库的动作集合。事务是现代数据库理论中的核心概念之一。如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务。当所有的步...
  • sunyadongwanghbjm
  • sunyadongwanghbjm
  • 2007年08月20日 14:58
  • 16543

java事务处理全解析

最近学习java事务,看到一位前辈的系列博客不错,转载过来作为记录 转载地址:http://www.davenkin.me/post/2013-02-16/40048284001    (一)Ja...
  • huilangeliuxin
  • huilangeliuxin
  • 2015年02月03日 10:26
  • 56141

Java事务处理

   事务的ACID原则:原子性(Atomicaity)   事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性(Consistency)   表示当事务执行失败时,所有被该事务影响的数据...
  • zhendell1
  • zhendell1
  • 2008年03月14日 23:00
  • 141

Spring事务处理-编程式事务和声明式事务

Spring框架提供编程式事务处理和声明式事务处理。 编程式事务处理就是指在业务代码中利用Spring框架提供的一些类进行事务处理。 声明式事务处理就是指在xml配置文件或注解的方式声明对某个类方法进...
  • yizhenn
  • yizhenn
  • 2016年08月11日 14:11
  • 1563

myBatis事务处理

1. myBatis单独使用时,使用SqlSession来处理事务:  Java代码   public class MyBatisTxTest {          p...
  • qqlrq
  • qqlrq
  • 2015年05月18日 17:52
  • 2973

spring事务处理详解

1:Java包含两种异常:checked异常和unchecked异常。checked和unchecked异常之间的区别是: Checked异常必须被显式地捕获try-catch-finally,而u...
  • u013628152
  • u013628152
  • 2015年08月25日 18:02
  • 4111

spring的事务处理机制

温习spring的事务处理机制,总结如下   对于SQL事务的概念以及ACID性质,可以参见我的另一篇博文 http://kingj.iteye.com/admin/blogs/167...
  • yang_ai
  • yang_ai
  • 2016年08月07日 09:37
  • 1630

JDBC中的事务处理

 在JDBC的数据库操作中,一项事务是由一条或是多条表达式所组成的一个不可分割的工作单元。我们通过提交commit()或是回退rollback()来结束事务的操作。关于事务操作的方法都位于接口java...
  • csc0211
  • csc0211
  • 2011年03月08日 16:45
  • 6752

Java中的事务处理

在数据库操作中,一项事务是指由一条或多条对数据库更新的sql语句所组成的一个不可分割的工作单元。只有当事务中的所有操作都正常完成了,整个事务才能被提交到数据库,如果有一项操作没有完成,就必须撤消整个事...
  • PerseusYan
  • PerseusYan
  • 2005年04月11日 23:31
  • 1014
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中的事务处理
举报原因:
原因补充:

(最多只允许输入30个字)