专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

MyBatis的事务管理形式

使用JDBC的事务管理

使⽤ java.sql.Connection对象完成对事务的提交(commit())、回滚(rollback())、关闭(close())

使用MANAGED的事务管理

MyBatis⾃身不会去实现事务管理,⽽让程序的容器如(Spring, JBOSS)来实现对事务的管理

<environment id="development">
 <!-- mybatis使⽤jdbc事务管理⽅式 -->
 <transactionManager type="JDBC"/>
 <dataSource type="POOLED">
 <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
 <property name="url"
value="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false"/>
 <property name="username" value="root"/>
 <property name="password" value="test.net"/>
 </dataSource>
</environment>

  • 事务⼯⼚TransactionFactory 的两个实现类 JdbcTransactionFactory->JdbcTransaction ManagedTransactionFactory->ManagedTransaction

Mysql的Innodb和MyISAM引擎的区别

区别项 Innodb myisam
事务 ⽀持 不⽀持
锁粒度 ⾏锁,适合⾼并发 表锁,不适合⾼并发
是否默认 默认 ⾮默认
⽀持外键 ⽀持外键 不⽀持
适合场景 读写均衡,写⼤于读场景,需要事务 读多写少场景,不需要事务
全⽂索引 可以通过插件实现, 更多使⽤ElasticSearch ⽀持全⽂索引

mybatis事务控制

当表是myisam引擎的时候,没有事务,可以直接插入成功

事务管理记得改为这个mybatis-config.xml

<transactionManager type="JDBC"/>

public class transactionTest {
    public static void main(String[] args) throws IOException {
        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("config/mybatis-config.xml"));
        SqlSession sqlSession = build.openSession(true);
        try {
            VideoMapper videoMapper = sqlSession.getMapper(VideoMapper.class);
            Video video = new Video();
            video.setTitle("测试事务");
            videoMapper.addVideo(video);
            int i = 1/0;
            sqlSession.commit();
        } catch (Exception e) {
            e.printStackTrace();
            sqlSession.rollback();
        }
            sqlSession.close();
    }
}

当出现异常的时候,sqlSession会自动回滚处理

事务管理形式 MANAGED,设置⾮⾃动提交,然后注释 commit, 依旧可以保存成功 不⽤重点关注,公司开发项⽬的事务控制基本是交给Spring,或者使⽤分布式事务

文章永久链接:https://tech.souyunku.com/27210

未经允许不得转载:搜云库技术团队 » MyBatis的事务管理形式

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们