事务是一个最小的逻辑执行单元,整个事务不能分开执行,要么同时执行,要么同时放弃执行。
Mybatis的事务管理分为两种形式:JDBC
和MANAGED
Mybatis 事务管理机制
事务概述
事务是一个最小的逻辑执行单元,整个事务不能分开执行,要么同时执行,要么同时放弃执行。
事务具备的四个特性(ACID
):
- 原子性:事务是应用中不可再分的最小逻辑执行体。
- 一致性:事务执行的结果,必须使数据库的状态从一种一致状态,变到另一种一致状态,一致性是通过原子性来保证的。
- 隔离性:并发执行的事务之间互不影响。
- 持续性:事务一旦提交,保存到物理数据库中。
数据库的事务而言,具有以下几个动作:创建、提交、回滚、关闭
。
事务管理
Mybatis的事务管理分为两种形式:
JDBC的事务管理
即利用java.sql.Connection
对象完成对事务的提交(commit()
),回滚(rollback()
)和关闭(close()
)等操作。
<!-- 配置环境:数据源,事务,配置多个环境 default:设置当前默认使用环境。
type="JDBC" 指直接简单使用了JDBC的提交和回滚设置;
type="MANAGED" 指让容器实现对事务的管理。
<transactionManager>的type决定我们用什么类型的事务管理机制 -->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理 -->
<transactionManager type="JDBC" />
<!-- 数据源连接池 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
MANAGED的事务管理
此种机制,Mybatis自身不会去实现事务管理,即提交和回滚时是什么都没有做,而是让容器如WebLogic,JBOSS等来实现对事务的管理。
更多内容请访问:IT源点
注意:本文归作者所有,未经作者允许,不得转载