clwn.net
当前位置:首页 >> 在spring中,使用事务和不用事务的区别 >>

在spring中,使用事务和不用事务的区别

不使用事务时,每次调用hibernateTemplate的方法会立刻进行事务提交.而使用事务后,会在你配置的类的方法执行完成后再进行事务提交,如果一个方法中同时进行了多次的插入、修改或删除操作,会统一的进行提交或回滚,这样可以保证数据操作会同时成功或失败,保证数据的完整性.

spring的声明式事务通常是指在配置文件中对事务进行配置声明,其中包括了很多声明属性,具体可以参考《spring高级编程》这本书,它是通过spring proxy帮你做代理,自己不用额外的写代码,只要在spring配置文件中声明即可;通常用在数据库的操作里面;编程式事务就是指通过硬编码的方式做事务处理,这种处理方式需要写代码,事务中的逻辑可以自己定制;可以是数据库的东东,也可以是其他的操作

本质上其实是同一个概念,spring的事务是对数据库的事务的封装,最后本质的实现还是在数据库,假如数据库不支持事务的话,spring的事务是没有作用的.数据库的事务说简单就只有开启,回滚和关闭,spring对数据库事务的包装,原理就是拿一个数据连接,根据spring的事务配置,操作这个数据连接对数据库进行事务开启,回滚或关闭操作.但是spring除了实现这些,还配合spring的传播行为对事务进行了更广泛的管理.其实这里还有个重要的点,那就是事务中涉及的隔离级别,以及spring如何对数据库的隔离级别进行封装.事务与隔离级别放在一起理解会更好些.以上回答希望能帮助到你.

会有脏数据产生.例如你要转账10000给A,结果A提供给你的银行账号不存在.不用事务的结果就是,先从你的卡里扣10000,然后查不到要转的账号.返回给你信息“目标账号不存在”,再查你的卡:10000没了!用事务的结果就是,查不到要转的账号,事务回滚.返回给你信息“目标账号不存在”,再查你的卡:10000还在!

1,spring有两种事务管理方式:①编程式 ②声明式.编程式的比较灵活,但是代码量大,存在重复的代码比较多;而声明式事务管理比编程式更灵活方便.基于aop的声明式事务管理,实质就是在方法执行前后进行拦截,然后在方法执行前创建并加入事务,执行完目标方法后根据执行情况提交事务或者回滚事务.声明式事务管理有两种形式:①配置文件 ②在业务方法上加上@transaction注解,将事务规则应用到业务逻辑中.2,spring的事务管理接口主要有三个:transactiondefinition、platform transactionmanager、transaction status.

你这用的是hibernate吧..这和spring没多大关系吧..hibernate不会自动提交事务的.是手动提交的.你不提交事务.他只是在缓存中而已.不会持久化的.

spring 自带事务提交功能

在没有spring之前,事务的管理是相当复杂的,你要去考虑read or write,或者是autocommit或rollback,是相当费劲,而且错误频出的.但有了spring之后,它可以将事务集中起来,用配置的方式(即声明式事务:即说它有事务就有了,说它没有事务,你在程序当中写了crud操作,也不会真正去执行)来统一管理事务,而且提供了相对完善的安全保证.就说这么多了,只有你用了spring之后,才会明白真的好处.继续深入吧.

两者都是事务管理的方式,声明式事务管理是通过配置文件,根据某种约定进行事务的管理,注解式事务管理,就是代码中通过注解的方式管理事务;两者的主要区别在于是否跟代码捆绑

你好Oracle默认情况下(没有事务) 保证了SQL语句级别的读一致性,即在一条SQL语句执行期间,它只会看到执行前点的数据状态,而不会看到执行期间数据被其他SQL改变的状态.所以如果执行多条SQL的时候呢?比如你做一个报表查询,

lyxs.net | xmjp.net | 369-e.com | zdly.net | gpfd.net | 网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com