1、什么是事务。

多个数据库原子访问应该被绑定成一个整体,这就是事务。事务是一个最小的逻辑执行单元,整个事务不能分开执行,要么同时执行,要么同时放弃执行。

事务的4个特性:原子性、一致性、隔离性、持续性。

2、Mybatis提供了Transaction接口。

Transaction接口有两个实现类:事务

<1>JdbcTransaction:

<2>ManagedTransaction:

还提供了TransactionFactory接口:获取事务的实例对象

<1>JdbcTransactionFactory:

<2>ManagedTransactionFactory:

事务一般应该包含的动作:create、commit、rollback、close

3、事务的配置创建和使用

1》事务的配置

<environments default="oracle"><environment id="oracle"><!-- 指定事务管理类型,type="JDBC"指直接使用JDBC的提交与回滚   --><transactionManager type="JDBC" />...</environment>
</environments>

2》事务工厂的创建

如果type=“MANAGED”,则Mybatis会创建一个ManagedTransactionFactory的实例。

3》事务工厂TransactionFactory

通过事务工厂TransactionFactory很容易的获取到Transaction对象实例。JdbcTransactionFactory将创建JdbcTransaction。

4》JdbcTransaction

JdbcTransaction可直接使用JDBC的提交和回滚事务管理机制。它依赖于从dataSource中取到的连接connection来管理tranction的作用域,connection对象的获取被延迟到调用getConnection()方法时。如果autocommit设为为on,开启状态的话,则会忽略commit和rollback。

也就是说,JdbcTransaction是使用java.sql.Connection上的commit和rollback功能来完成事务的操作,JdbcTransaction只是相当于对java.sql.Connection事务处理进行了再次封装,Transaction的事务管理都是通过java.sql.Connection实现的。

5》Managedtransaction

让容器管理事务Transaction的整个生命周期,即使用ManagedTransaction的commit和rollback功能不会对事务有任何的影响,它什么都不做,它将事务的管理权移交给了容器来实现。

转载于:https://www.cnblogs.com/ZeroMZ/p/11418610.html

Mybatis-学习笔记(6)Mybatis的事务管理机制相关推荐

  1. JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  2. 【最全Mybatis学习笔记(导入mybatis相关jar包)】

    目录 1. 什么是Mybatis 2. 如何引入Mybatis? 3.编写Mybatis工具类 4. 万能Map 5. 模糊查询怎么写? 6. 作用域(Scope)和生命周期SqlSessionFac ...

  3. Mybatis学习笔记(一) —— mybatis介绍

    一.Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名 ...

  4. mybatis 学习笔记:mybatis 初认识

    简介 MyBatis是一个Java持久层框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来.mybatis 可以将 preparedStatement 中的输入参数自动进行映射,将查询 ...

  5. MyBatis学习笔记(一)——MyBatis快速入门

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4261895.html 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优 ...

  6. mybatis学习笔记(3)-入门程序一

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(3)-入门程序一 标签: mybatis [TOC] 工程结构 在IDEA中新建了一个普通的java项 ...

  7. MyBatis多参数传递之Map方式示例——MyBatis学习笔记之十三

    前面的文章介绍了MyBatis多参数传递的注解.参数默认命名等方式,今天介绍Map的方式.仍然以前面的分页查询教师信息的方法findTeacherByPage为例(示例源代码下载地址:http://d ...

  8. Mybatis学习笔记(二) 之实现数据库的增删改查

    开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...

  9. MyBatis多参数传递之混合方式——MyBatis学习笔记之十五

    在本系列文章的<MyBatis多参数传递之Map方式示例>一文中,网友mashiguang提问如下的方法如何传递参数:public List findStudents(Map condit ...

  10. MyBatis学习笔记(1)—使用篇

    MyBatis学习笔记(1)-使用篇 MyBatis学习笔记(2)-映射关系篇 MyBatis学习笔记(3)-高级映射之一对一映射 Mybatis学习笔记(4)-高级映射之一对多映射 Mybatis学 ...

最新文章

  1. Python-PyCharm 报错解决:ImportError: cannot import name 'InteractiveConsole' from 'code'
  2. 用gcc编译实现对Linux系统cpu占用
  3. mysql服务器(二)
  4. 2017CCPC 杭州 J. Master of GCD【差分标记/线段树/GCD】
  5. mysql naivcat执行存储过程_mysql使用navicat编写调用存储过程
  6. C#.net实现密码加密算法的语句
  7. nyoj138 哈希的简单应用(查找)
  8. C/C++ union
  9. viso 画背景框_手工界新宠:美绝了的浮雕画,揉揉捏捏一幅画
  10. Java 并发和多线程(一) Java并发性和多线程介绍[转]
  11. ASP.NET底层架构 22
  12. 目标检测综述(一:历史由来和古典目标检测的出现)
  13. 如何将b站上的视频下载到本地?
  14. 基于AT89C51单片机的超声波传感器测距【程序详细代码及注释】
  15. overlay/static/register/atuo/extern/volatile/const 修饰符的用法
  16. 关于给青轴润轴消除弹簧音[误]
  17. openstack私有云搭建
  18. 港澳出入境通行证办事流程
  19. python数据预测模型算法_Python机器学习 预测分析核心算法
  20. 【打开方式问题解决】该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置“页面中创建关联。

热门文章

  1. 梦笔记2022-02-28
  2. LINUX C正确遍历environ
  3. BAT中for循环如何执行多条命令
  4. 本博客自排名300到264的各项数据变化
  5. 吾智商低,对于VS的char实在是不知所云
  6. doubango安卓端的帧率太低,解决办法
  7. 作为技术人员,年会中尽量找熟人喝酒
  8. 挖空的煤矿能否储存石油
  9. C++ union联合体基础说明及应用
  10. C++11 关键字noexcept 替代 throw