mybatis事务总结

原创 2016年08月28日 19:22:13
在 MyBatis 中有两种事务管理器类型(也就是 type=”[JDBC|MANAGED]”):
  JDBC –  这个配置直接简单使用了JDBC 的提交和回滚设置。它依赖于从
到的连接来管理事务范围。 
  MANAGED –  这个配置几乎没做什么。它从来不提交或回滚一个连接。
容器来管理事务的整个生命周期(比如 Spring 或 JEE应用服务器的上下文
情况下它会关闭连接。然而一些容器并不希望这样,因此如果你需要从连
它,将 closeConnection 属性设置为 false。例如: 
<transactionManager type="MANAGED"> 
<property name="closeConnection" value="false"/> 
</transactionManager> 
这两种事务管理器都不需要任何属性。然而它们都是类型别名,要替换使用它
放置将你自己的类的完全限定名或类型别名,它们引用了你对 TransacFactory 接
。 
public interface TransactionFactory { 
void setProperties(Properties props); 
Transaction newTransaction(Connection conn, boolean autoC

任何在 XML 中配置的属性在实例化之后将会被传递给 setProperties()方法。你
要创建一个事务接口的实现,这个接口也很简单: 
public interface Transaction { 
Connection getConnection(); 
void commit() throws SQLException; 
void rollback() throws SQLException; 
void close() throws SQLException; 

使用这两个接口,你可以完全自定义 MyBatis 对事务的处理。 


sessionFactoryopenSession多个重载方法中有以下两个方法:

SqlSession openSession()
SqlSession openSession(boolean autoCommit)

不带参数的openSession()方法默认不开启autoCommit。openSession(boolean autoCommit)根据参数是true还是false来判断是否开启autoCommit。如果没有开启autoCommit,那么在insert、update、delete操作后,需要显式地调用commit()方法;如果开启了autoCommit,那么每个执行的sql语句都被看作一个事务来处理,且不需要显式地调用commit()方法。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Mybatis事务(一)事务管理方式

Mybatis管理事务是分为两种方式: (1)使用JDBC的事务管理机制,就是利用java.sql.Connection对象完成对事务的提交 (2)使用MANAGED的事务管理机制,这种机制myb...

Spring Transaction + MyBatis SqlSession事务管理机制研究学习

原文地址:Spring Transaction + MyBatis SqlSession事务管理机制研究学习 线上的系统中,使用的是Spring+Mybatis+Mysql搭建的框架,由于客户需要,...

mybatis事务配置

今天弄mybatis-pring的事务遇到一个问题,有问题的spring-mybatis.xml配置如下: <beans xmlns="http://www.springframework.org/...

在使用mybatis时进行批删除或批添加用到的service层事务的理解

事务重洗理解:在执行批添加或批删除时  如果有10条数据需要处理,关系表和主键表  ,关系表操作完毕之后,在操作主键表时报错了,就需要将关系表数据复原,需要回滚事务(callback),而在这时,一个...

mybatis 事务内部获取自增主键

mybatis事务内部获取自增主键: 我用的是mysql数据库,用的是spring集成mybatis, 纠结这个问题一年多了,试了很多种方法。以下是需要注意的: 首先mapper.xml代码 ...

Mybatis遇到的问题汇总 mybatis事务探索

1.select不需要commit 2.insert返回自增id为什么老是返回1

MyBatis-Spring-SqlSession

使用 SqlSession 在 MyBatis 中,你可以使用 SqlSessionFactory 来创建 SqlSession。一旦你获得一个 session 之后,你可以使用它来执行映射语句,提...

关于mybatis支持写多条sql语句,支持事务

在这种情况之下需要配置mysql,来达到支持多条sql执行的情况。 连接mysql的字符串配置dataBase.url=jdbc\:mysql\://127.0.0.1\:3306/justjack...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)