首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

事宜那点事

2012-11-01 
事务那点事今天看到别人谈论有关事务的话题,我也简单说两句自己对事务的理解:Hibernate中:a、在我们执行一

事务那点事
今天看到别人谈论有关事务的话题,我也简单说两句自己对事务的理解:
Hibernate中:
   a、在我们执行一条sql语句:
         String sql = insert into a(id ,name) valus(1,'张三');
        假于该语句是在数据库中直接执行,那么可以立刻将该条记录插于数据库。
     但此时我们是在程序中执行该语句的,精确的将是在java语言中执行该sql语句。
java语言不能直接连接数据库,我们是通过jdbc连接数据库的
        1,jdbc连接数据库默认是不立即将数据插入数据库,只用当你commit后才将数据插入数据库;
        2,在程序中我们要认为的执行commit ,这样数据才真正插于数据,同时如果一个方法里面有多条sql语句,其中一条出现错误,那么久需要回滚了。

      从上面可以看出来在java程序中人为控制事物是一件很繁琐的事情。同理,hiberante也是这样,执行完成sql语句后需要提交commit。

    此时我们就会想,可不可有个工具自动帮我们管理事物?

在spring中:
    由于人为控制hibernate事物很繁琐,此时Spring从天而降。 hibernate与spring集成后,由spring来管理事务。spring提供了声明式事务管理、注解式事务管事等多种事务管理方法。但是spring也不是万能的,你要告诉他们不同的方法,该使用这样的事物
如是出现了:save,del,update等开头的方法使用一个事物,以:query,select,get等开发的方法又使用的一个事物。
    理解spring管理的事务,要理解两个概念:
    1 事务的传播属性
    2 数据库的隔离级别 

热点排行