MyBatis 事务管理

通常来讲,事务具备4个特性:

原子性:事务是应用中最小的执行单位,就如原子是自然界最小颗粒,具有不可再分的特征一样。

一致性:事务执行的结果,必须使数据库从一种一致性状态,变到另一种一致性状态。

隔离性:各个事务的执行互不干扰,任意一个事物的内部操作对其他并发的事务,都是隔离的,即并发执行的事务之间不会互相影响。

持续性:事务一旦提交,对数据所做的任何改变都要记录到永久存储器中,通常就是保存到物理数据库。

Transaction接口

Transaction接口有两个实现类,分别是JdbcTransactionManagedTransaction。同时MyBatis还设计了TransactionFactory接口和两个实现类JdbcTransactionFactoryManagedTransactionFactory用来获取事务的实例对象。

对数据库的事务而言,应该具有以下几个动作:创建、提交、回滚、关闭。MyBatis将事务抽象成了Transaction接口。该接口的源代码如下:

public interface Transaction{
    //获取数据库连接
    Connection getConnection() throws SQLException;
    //提交
    void commit() throws SQLException;
    //回滚
    void rollback() throws SQLException;
    //关闭数据库连接
    void close() throws SQLException;
}

MyBatis的事务管理分为两种形式:

使用JDBC的事务管理机制:利用java.sql.connection对象完成对事务的提交、回滚、关闭等操作。

使用Managed的事务管理机制:对于这种机制,MyBatis自身不会去实现事务管理,而是让容器实现对事务的管理。

事务的配置创建和使用

一般会在mybatis-config.xml中定义类似如下的信息:

<environments default="mysql">
		<environment id="mysql">
			<!-- 指定事务管理类型 -->
			<transactionManager type="jdbc"/>
			<!-- 配置数据库连接 -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/>
				<property name="username" value="root"/>
				<property name="password" value="root"/>
			</dataSource>
		</environment>
</environments>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云淡风轻58

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值