![41babfbad3b83a7f611079b422697ed6.png](https://i-blog.csdnimg.cn/blog_migrate/f1a911c09a970ba0934fa0657681a17e.jpeg)
Mybatis 事务是非常的重要,在myBatis中,就可以用事务了,这样就不用再
去考虑JDBC的事务编写。让程序更加方便高效。
1. 事务(Transaction)
(a) 事务是数据库操作的最小单元, 有 ACID 的特性. 应该保证一个事务的的 SQL 语句要么同时
成功, 要么都不成功.
(b) MyBatis 中配置了事务管理器, type 属性设置为 JDBC.表示 MyBatis 采用和原生 JDBC
相同的事务管理机制.
(c) 在 MyBatis 执行的开始时, 将自动提交功能关闭了. 所以,在执行 DML 操作时, 需要手动提
交事务.
2. 简单提取工具类
package
3. 新增(insert)
mapper 文件中, 通过<insert>定义新增语句. 注意, 由于DML 操作的返回值都是 int 类型, 所
以, 不需要定义resultType 属性.
SQL插入xml文件编写
<!-- 新增 -->
Java测试类
@Test
public void testIns() {
SqlSession session = MyBatisUtil.getSession();
User user = new User();
user.setUsername("小明");
user.setPassword("123");
int num = session.insert("com.bjsxt.mapper.UserMapper.insUser",
user);
if(num > 0) {
// 提交事务
session.commit();
System.out.println("SUCCESS!");
} else {
// 回滚事务
session.rollback();
System.out.println("FAILED!");
}
// 关闭资源
session.close();
}
4. 修改(update) 和删除(delete)
4.1 修改
SQL语句更新的xml文件编写
<!-- 修改 -->
Java 修改测试类
@Test
4.2 删除
SQL语句删除的xml文件编写
<!-- 删除 -->
<delete id="delUser" parameterType="int">
delete from t_user where id=#{0}
</delete>
Java 删除测试类
@Test