mysql两种事务管理器_MyBatis事务管理的两种方式
1、什么是事务
事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。事务可大可小,在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。
2、MyBatis事务管理策略
MyBatis的事务管理分为两种形式:
(1)使用JDBC的事务管理机制。
这种机制就是利用java.sql.Connection对象完成对事务的提交
(2)使用MANAGED的事务管理机制。
这种机制mybatis自身不会去实现事务管理,而是让程序的Web容器或者Spring容器来实现对事务的管理。
3、MyBatis中Transaction接口
mybatis支持的两种事务类型管理器,Transactions接口中对两种事务管理方式进行行为约束。具体介绍看下面代码。public interface Transaction
{
//JDBC中事务手动管理,需要依靠Connection对象,此方法可以取得Connection对象。
Connection getConnection() throws SQLException;
//设置在什么情况下执行commit()命令
void commit() throws SQLException;
//设置在什么情况下执行rollback()命令
void rollback() throws SQLException;
//业务完毕后,处理Connection对象,一般有两种形式,将这个Connection对象销毁或者将Connection返回数据库连接池中。
void close() throws SQLException;
//Connection向数据库索要一个Transaction对象时的最大等待时间。
Integer getTimeout() throws SQLException;
}
4、Transaction的接口实现类
Transaction接口中有两个实现类:JdbcTransaction和ManagedTransaction。
(1)JdbcTransaction
JdbcTransaction直接使用JDBC的提交和回滚事务管理机制。它依赖与从dataSource中取得的连接connection来管理transaction的作用域,connection对象的获取被延迟到调用getConnection()方法。如果autoCommit设置为on,开启状态的话,它会忽略commit和rollback。
(2)ManagedTransaction
查看这个类,可知其中的commit方法和rollback方法没有具体实现。ManagedTransaction是让容器来管理事务Transaction的整个生命周期,使用ManagedTransaction的commit和rollback功能不会对事务有任何影响,它没有具体实现,它将事务管理权交给容器来实现。
mysql两种事务管理器_MyBatis事务管理的两种方式相关推荐
- mybatis plus 事务管理器_Mybatis中的事务
Mybatis中的事务 数据库中的事务可以保证在连续执行的多条写操作(增删改)时,这多条操作要么成功,要么全部失败,以保证数据和逻辑的完整及严谨 在使用mybatis时,无需考虑事务如何创建,如何提交 ...
- Anbox 实现分析 3:会话管理器与容器管理器的通信
Anbox 通过一个可执行文件,实现多个不同的应该用逻辑.在启动 Anbox 可执行文件时,通过为它提供不同的命令行参数来确定具体执行哪个命令.Anbox 中这些不同的命令实例之间,整体的通信架构如下 ...
- 前端包管理器的依赖管理原理
本文主要探究前端包管理器的依赖管理原理,希望对读者有所帮助. 前言 npm是Node.JS的包管理工具,除此之外,社区有一些类似的包管理工具如yarn.pnpm和cnpm,以及集团内部使用的tnpm. ...
- java常用布局管理器(流布局管理器、边界布局管理器、网格布局管理器)
在Swing中,每个组件在容器中都有一个具体的位置大小.而在容器中摆放各种组件时很难判断其具体位置和大小,使用布局管理器比程序员直接在容器中控制Swing组件的位置和大小方便得多,可以更加有效地处理整 ...
- 最好用的插件管理器:扩展管理器(支持:Chrome、Edge、Firefox)
如果大家有插件太多不好管理的烦恼,强烈推荐大家体验一下这款插件管理器:扩展管理器. 扩展管理器 来大家一起看下扩展管理器的插件列表图:是不是一下就被这个款漂亮UI给吸引了. v2.1.0版本:插件列表 ...
- 【Android笔记50】Android应用如何获取系统服务(软键盘管理器、闹钟管理器)
这篇文章,主要介绍Android应用如何获取系统服务(软键盘管理器.闹钟管理器). 目录 一.获取系统服务 1.1.软键盘显示和隐藏 (1)showSoftInput显示软键盘
- linux虚拟化 pdf,IBM LinuxONE 虚拟机管理器和虚拟化管理.PDF
IBM LinuxONE 虚拟机管理器和虚拟化管理 IBM LinuxONE™ 虚拟机管理器和虚拟化管理 ® LinuxONE 提供" 由你作主的Linux ",这一理念也适用于虚 ...
- java的布局管理器_Java中提供了几种布局管理器
近日,很多网友都在关注Java中提供了几种布局管理器这个话题,那么Java中提供了几种布局管理器具体情况是怎么样的呢?Java中提供了几种布局管理器的相关信息有哪些?下面的内容是小编为大家找到的关于J ...
- 包管理器_包管理器的演变
包管理器 每个计算机化设备都使用某种形式的软件来执行其预期的任务. 在软件的早期,对产品进行了严格的bug和其他缺陷测试. 在过去的十年左右的时间内,该软件已通过Internet发布,目的是通过应用新 ...
- npm 包管理器_纱包管理器:npm的改进
npm 包管理器 From bower to npm, package management for the web has come a long way. 从Bower到npm ,Web的软件包管 ...
最新文章
- 全局负载均衡与CDN内容分发
- SQLite 3 一些基本的使用
- c语言模板程序,模板模式 (C语言实现)
- 如何禁用 ASP.NET 网站的所有的 浏览器缓存 ?
- react 使用 mobx_如何使用React和MobX状态树构建基于状态的路由器
- dev控件swiftplot图滚动方法_无限轮播图使用Scroller就这么简单
- 【编程小题目6】字符数统计
- java最好性能手机_企业级Java应用最重要的4个性能指标
- C语言程序的内在分配:堆和栈以及char a[]和char*的区别
- 大数据 数据库 评测_大数据产品能力评测介绍.pdf
- UG命令大全及快捷键的用法用处说明
- 使用奇妙清单:轻松搞定家庭计划事项同步管理
- matlab中字符串的大小比较,matlab中字符串的最大大小
- 【网站】比较知名的大型公司官网清单可以收藏关注一下,欢迎您来补充
- 针对笔记本双显卡安装ubuntu16.04双系统,开机只显示背景图解决办法
- servlet基础:Servlet、ServletConfig、ServletContext
- 【操作系统】DOS界面与常用操作命令
- 远程监控系统中关于TP-Link路由器的设置方法
- 数字图像处理技术及实用 MATLAB实验报告及PS作业
- 输入一个大于3的整数n,判定它是否为素数。例题5.9