Spring学习笔记-14-声明式事务


声明式事务.

1、回顾事务.

  • 事务在开发中十分重要,涉及到数据的一致性问题,不能马虎
  • 确保完整性和一致性
  • 把一组业务当成一个业务来做:要么都成功,要么都失败
事务ACID原则.
  • 原子性
  • 一致性
  • 隔离性
    • 多个业务可能操作同一个资源,防止数据损坏
  • 持久性
    • 事务一旦提交,无论系统发生什么问题,结果都不会再被影响,被持久化到存储器中

2、Spring中的事务管理.

  • 声明式事务:AOP
  • 编程式事务:需要在原有代码中,进行事务管理(try-catch中含事务回滚)

3、声明式事务实现.

  • 交由容器管理事务

  • 推荐使用

4、编程式事务管理.

MyBatis 的 SqlSession 提供几个方法来在代码中处理事务。但是当使用 MyBatis-Spring 时,你的 bean 将会注入由 Spring 管理的 SqlSession 或映射器。也就是说,Spring 总是为你处理了事务。

你不能在 Spring 管理的 SqlSession 上调用 SqlSession.commit()SqlSession.rollback()SqlSession.close() 方法。如果这样做了,就会抛出 UnsupportedOperationException 异常。在使用注入的映射器时,这些方法也不会暴露出来。

无论 JDBC 连接是否设置为自动提交,调用 SqlSession 数据方法或在 Spring 事务之外调用任何在映射器中方法,事务都将会自动被提交。


文章作者: liuminkai
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 liuminkai !
评论

Related Issues not found

Please contact @liuminkai-blog to initialize the comment

 上一篇
javase -- java常用类-String(含堆) javase -- java常用类-String(含堆)
String(字符串). final类:不可被继承,不可变的字符序列 支持序列化 可以比较大小 字符串是常量,用双引号表示,其值不可更改(String a = “1”; ==> String a = “12”; 这个不叫更改字
2020-08-07
下一篇 
Spring学习笔记-13-整合Mybatis Spring学习笔记-13-整合Mybatis
整合Mybatis.一、步骤:.1.导入相关jar包. junit mybatis mysql数据库 spring相关的 aop织入 mybatis-spring【new】 spring操作数据的包 ,spring-jdbc 可选 lomb
2020-08-04