onlyliuxin/coding2017

spring事务与数据库事务的区别与联系

Opened this issue · 2 comments

数据库和spring一直在用,他们的事务也一直在用,但是一直没有用心去关系过spring里面的事务到底和数据库里面的事务什么关系。
项目中,大家肯定都会配置spring事务管理,一般配置在service层,一般的配置就那么几种,还是比较简单的。但是数据库的事务就不是那么简单的了,几家大的数据库厂商对于事务的默认配置以及级别各不相同,据我所知mysql的有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。
但是spring的配置却没有针对性,我感觉很奇怪。
这几天看了spring实战,发现第四版里面没有事务管理的章节,还专门去找了第三版看事务管理那一章。
我的问题是

  • spring中配置的事务是利用数据库的事务实现的吗?
  • spring中配置的事务不完全是数据库相关的,那这时候的事务在隔离级别上的控制又是什么样的呢?

大家也可以说说一下自己的理解,以及事务在工作中的使用状态,以及事务对性能的影响什么的

Spring在事务方法上加个@Transactional就好了。
JDBC自己实现的话,麻烦。
至于Spring声明式事务的实现方式,表示也不懂呀。