Mybatis事务处理
知识点有事务处理的配置,还有事务处理的方法
事务处理的配置:
mybatis的事务处理由两种方式控制,JDBC和MANAGED; MANAGED就是说事务处理由第三方的插件来完成,比如说spring。
事务处理的配置也是要写在基本配置文件当中,写在<environment>标签的子标签<transactionManager>
<environment>
<transactionManager type="JDBC"/>
...
</environment>
然后来看一下事务处理的方法,也就是经典代码:
首先要关闭自动提交,就是建立session的时候传一个false进去,其实默认就是这样。
try{
session = sqlMapper.openSession(false);
然后就是各种各样的操作。
然后提交事务:
session.commit();
} catch(Exception e) {//提交后有问题的话,我们有个回滚操作
session.rollback();//回滚事务(回滚指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。回滚包括程序回滚和数据回滚等类型。)
} finally {
session.close();//关闭session
}
顺便说一下MyBatis的自动返回id机制:
session的insert方法很厉害, insert操作有个特点,就是把一个对象传进来的时候,会同时为这个原始的对象赋上该赋的值,比如说自增的id,这是Mybatis的一个特点,就是说本来java里面的这个JiKeUser对象里的id属性是没有赋值的,但是你把它insert操作,整个对象传进来之后,Mybatis会为这个对象的id属性自动赋上自增的id值!
Mybatis事务处理的更多相关文章
- springmvc+spring-security+mybatis +redis +solar框架抽取
参考文章:Spring MVC 3 深入总结: 第二章 Spring MVC入门 —— 跟开涛学SpringMVC 参考博客:http://www.cnblogs.com/liukemng/categ ...
- myBatis应用
最近项目中使用myBatis(iBatis),所以目前对所遇的一些问题及有些模糊的地方在这里标注一下. 首先mybaits是一个“半自动化”的ORM框架. 需要使用的jar包:mybatis-3.0. ...
- MyBatis的事务处理
先来假设这样一个问题:如果数据库里面有一个用户表和一个作家表,那么当要添加一条数据到作家表中时,作家表的id必须是用户表中的其中一个id,因为作家一定也要是一个用户.这时就涉及到事务处理. 在上一篇博 ...
- [MyBatis]浅谈如何实现事务处理
要实现事务处理,就得从SqlSession中取出connection来,然后对connection采用setAutoCommit,commit,rollback等操作,最后的时候,不能像JDBC一样关 ...
- [MyBatis] 如何让MyBatis支持代码级事务处理
MyBatis提供的sqlSession对象是可以用来帮助我们实现事务处理的,方式和JDBC的类似,具体请见代码: import java.sql.Connection; import java.sq ...
- JDBC介绍和Mybatis运行原理及事务处理
本博客内容非自创,转载自以下三位,侵删: https://juejin.im/post/5ab7bd11f265da23906bfbc5 https://my.oschina.net/fifadxj/ ...
- 事务处理: databse jdbc mybatis spring
事务的认识需要一个相当漫长的流程,慢慢在实践中理解,然后在强化相关理论基础. 数据库中的事务: 传统的本地事务处理都是依靠数据库自身事务处理能力,而事务本身是传统关系型数据库的基石.简单来说事务就是一 ...
- mybatis 使用事务处理
mybatis默认开启事务 以前使用JDBC的时候,如果要开启事务,我们需要调用conn.setAutoCommit(false)方法来关闭自动提交,之后才能进行事务操作,否则每一次对数据库的操作都会 ...
- Mybatis批量事务处理
/** * 批量提交数据 * @param sqlSessionFactory * @param mybatisSQLId SQL语句在Mapper XML文件中的ID * @param commit ...
随机推荐
- HDU 1160 FatMouse's Speed(DP)
题意 输入n个老鼠的体重和速度 从里面找出最长的序列 是的重量递增时速度递减 简单的DP 令d[i]表示以第i个老鼠为所求序列最后一个时序列的长度 对与每一个老鼠i 遍历全部老鼠j 当 ...
- 解决javah生成.h头文件找不到找不到android.support.v7.app.AppCompatActivity的问题
问题描写叙述: 在使用Android Studio进行JNI开发时,须要使用javah生成C或C++的头文件,可是可能会遇到: 错误: 无法訪问android.support.v7.app.AppCo ...
- WAMP的端口修改
wamp集成了开源的利器mysql+apache+php,真的是有越来越火的趋势了,可是有些人,安装php的集成开发环境WAMP的时候,出现端口被占用了,无法连接服务器的时候, 这时,如果要修改WAM ...
- 大话设计模式C++实现-第14章-观察者模式
一.UML图 关键词:Subject维护一个Observer列表.Subject运行Notify()时就运行列表中的每一个Observer的Update(). 二.概念 观察者模式:定义了一种一对多的 ...
- 清理一下电脑垃圾,打开Eclipse发现左边的所有项目消失了
使用360清理一下电脑垃圾,打开Eclipse发现左边的所有项目消失了,但在相应的workspace能够找到项目,这个问题已经是第三次遇到了(预计是被360清理掉Eclipse的一些部署或配置文件所导 ...
- jquery源码学习笔记二:jQuery工厂
笔记一里记录,jQuery的总体结构如下: (function( global, factory ) { //调用factory(工厂)生成jQuery实例 factory( global ); }( ...
- 大学生程序设计邀请赛(华东师范大学)B. 分词 DP
B. 分词 有一句句子因为粘贴的时候出现了一点问题空格全部丢失了.现在给一本字典,每个词都对应这个词出现的频率(每十亿).根据这个频率,我们可以根据下面的公式算出这个词带来的收益 P(word): ...
- ISA总线
ISA总线: (Industry Standard Architecture:工业标准体系结构)是为PC/AT电脑而制定的总线标准,为16位体系结构,只能支持16位的I/O设备,数据传输率大约是16M ...
- Module in powershell
https://docs.microsoft.com/en-us/powershell/module/powershellget/install-module?view=powershell-6 ht ...
- 路由器的LAN、WAN、WLAN的区别
路由器的LAN.WAN.WLAN的区别 好多朋友在群内问我路由器如何配置,本来还耐心解答,但是他竟然连LAN.WAN都分不清,瞬间就没了帮助的热情.借这篇经验,小编简单讲一下路由常见的LAN.WAN. ...