事务分类
数据库分为本地事务和分布式事务
a. 本地事务: 涉及一个数据库,能保证在该数据库操作上的ACID
b. 分布式事务: 涉及多个数据库的事务(由每个数据库的本地事务组成),目的保证多个数据库的数据一致性。
Java事务分为JDBC事务和JTA事务
a. JDBC事务: 完成数据库事务中的本地事务,通过connection对象控制。
b. JTA事务: JTA(Java Transaction API), 是J2EE数据库事务规范,JTA只提供了事务管理接口,由应用程序服务器厂商提供实现,JTA事务比JDBC更强大,支持分布式事务。
本地事务
事务原理
Spring事务的本质其实就是数据库对事务的支持,基本步骤如下:
1 获取连接 Connection con = DriverManager.getConnection()
2 开启事务 con.setAutoCommit(true/false);
3 执行CRUD
4 提交事务/回滚事务 con.commit()/con.rollback();
5 关闭连接 conn.close();
事务隔离级别
Spring 事务依靠mysql实现,因此Spring事务隔离级别和Mysql事务隔离级别一致。但在Spring事务中存在一个默认的隔离级别,用于使用数据库中默认的隔离级别。
常量 | 解释 | <
---|