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

Mybatis系列之设置自动提交事务

@

目录

业务描述:最近遇到业务很复杂的方法,有通过Spring的@Transactional注解开启事务的,不过在ie11出现bug,console日志打印已经update成功的SQL,方法很长,执行成功后,发现数据没有修改,这个和console日志打印不符合,问题比较难排查,然后通过网上资料个自己尝试fix bug,不过具体原因没有想清,浏览器本身就和事务处理没关系,为什么在不同浏览器会不同效果,所以本博客记录一下,方便以后自己回顾

通过网上资料和自己尝试,初步判断是事务没提交导致的,网上资料搜索到Mybatis SqlSession默认是不自动提交事务的,所以尝试开启Mybatis SqlSession自动提交事务


import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Service; /** * 获取Spring上下文 */ @Service public class ApplicationContextHolder implements ApplicationContextAware { private static ApplicationContext ctx; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { ctx = applicationContext; } public static ApplicationContext getApplicationContext() { return ctx; } @SuppressWarnings("unchecked") public static <T> T getBean(String beanName) { return (T) ctx.getBean(beanName); } public static <T> T getBean(Class<T> clazz) { return ctx.getBean(clazz); } /** * 设置Mybatis自动提交事务 * @Author mazq * @Date 2020/05/29 13:51 * @return org.apache.ibatis.session.SqlSession */ public static SqlSession getSqlSession(){ SqlSessionFactory sqlSessionFactory = (SqlSessionFactory)ctx.getBean("sqlSessionFactory"); return sqlSessionFactory.openSession(true); } }

然后在对应dao类后面加上代码:

// Mybatis自动提交事务
                    SqlSession mybatisSqlSession = ApplicationContextHolder.getSqlSession();
                    mybatisSqlSession.commit();

未经允许不得转载:搜云库技术团队 » Mybatis系列之设置自动提交事务

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

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

联系我们联系我们