mybatis-transaction包阅读
transaction包主要功能
- JdbcTransaction:单独使用Mybatis时,默认的事务管理实现类,就和它的名字一样,它就是我们常说的JDBC事务的极简封装,仅是让connection支持连接池而已
- ManagedTransaction:含义为托管事务,空壳事务管理器,仅是提醒用户,在其它环境中应用时,把事务托管给其它框架,比如托管给Spring去管理事务核心配置对象中,CachingExecutor执行器就是用来处理二级缓存的执行器。
transaction包主要结构
transaction包设计模式
- 工厂方法。
transaction后记
-
autoCommit默认是false,如果没有手动commit,在sqlSession.close()时,底层会将事务进行rollback()操作,然后才执行conn.close()关闭连接,数据最终不能持久化到数据库中。
-
如果即不commit,也不close,insert后,jvm结束前,如果事务隔离级别是read uncommitted,我们可以查到该条记录。jvm结束后,事务被rollback(),记录消失
-
处理事物一般都try-catch-finally编程方式处理事务
-
附上源码结构: