• Java事务处理


    事务处理是数据库系统中非常重要的一环,在使用Sping框架过程中,通过配置TransationManger即可完成对事物的管理,而其中的若干奥妙却说不清楚,在工作中遇到事务问题也很难搞定,本文参考文献中的第一篇《Java事务分析》对事务的分析由浅入深、循序渐进,讲述比较透彻,很佩服博主的细心和表述能力。在这篇博文中,我对自己学习过的Java事务问题进行总结。

    本地事务

    (1)本地(Local Transaction)事务指只有一个数据源参与的事务,比如只有数据库或者只有JMS;分布式事务(Distributed Transaction)指有多个数据源同时参与的事务,比如一项操作需要同时访问数据库和通过JMS发送消息,或者一项操作需要同时访问两个不同数据库。对于分布式事务,Java提供了JTA规范,它的原理与本地事务存在不同。

    (2)之所以出现事务不一致,就是因为连接数据源的Connection对象不是一个, 为了使两个DAO在同一个事务中,我们应该在整个事务处理过程中使用一个Connection对象。

    (3)事务设计的基本思路:

    设计一个TransationManger用来管理Connection,保证一个事务只是用一个唯一的Connection;
    将事务操作流程定义成一个模板方法,真正的业务留给子类去实现,实现了完整的事务和业务的部分分离;
    更进一步,使用动态代理,在代理类上增加对事务的前后处理,这样事务和业务就真正地完全分开;
    使用注解,把要加入事务控制的方法用注解标记出来,其余的不用无事务,更加灵活。

    分布式事务

    参考文献:

    http://www.cnblogs.com/davenkin/archive/2013/02/16/java-tranaction-1.html Java事务分析

    http://aixiangct.blog.163.com/blog/static/9152246120113251636706/  JDBC、JTA、Spring的事务管理

    http://www.ibm.com/developerworks/cn/java/j-lo-jta/ JTA深度历险

  • 相关阅读:
    IIS 下配置无后缀的URL ReWrite
    获得代理IP或客户端Ip
    asp.net发送邮箱
    URLRewrite伪静态与AspNetPager分页控件的结合
    邮箱大全
    注册表单验证正则表达式
    aspx中伪静态的实现
    JMail发送邮件
    IE 6中负的margin值导致出界部分不显示问题的解决
    Culminis为每个用户组提供的免费TechNet Plus Direct订阅
  • 原文地址:https://www.cnblogs.com/mingziday/p/5100800.html
Copyright © 2020-2023  润新知