本人虽然做了几年的java开发了,很早就接触到了spring,当然也接触到spring的事务,但是由于常年忙于业务实现,自己对spring事务这块也是比较模糊,说懂也懂些,但并不系统深入,趁着最近要对自己的知识体系进行梳理,我参考了一些博客和书籍,整理了一些结论性的东西。
数据库事务
数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。
事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
事务用来管理 insert,update,delete 语句
由于目前MySQL应用范围比较广泛,我们今天主要针对MySQL 数据库进行阐述。
在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。在 5.5.5*版本之前默认的引擎都是MyISAM 而该引擎是不支持事务的,InnoDB引擎是支持的,去检查表是什么引擎 用指令 show create table TABLENAME指令查看 这里的TABLENAME是自己的表名
spring事务与数据库事务与锁之间的关系
一直没搞清楚spring事务与数据库事务与锁之间的关系,也许是因为这个体系非常庞大,确实比较凌乱。
其实spring事务是基于数据库事务进行的实现,方便用户屏蔽数据库事务的具体实现,快速实现事务处理的。
后来从一个博客上看到:**spring事务本质上使用数据库事务,而数据库事务本质上使用数据库锁,所以spring事务本质上使用数据库锁,开启spring事务意味着