@

目录

业务描述:最近遇到业务很复杂的方法,有通过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系列之设置自动提交事务的更多相关文章

  1. mybatis设置自动提交事务

    我们想要mybatis帮助我们自动提交事务其实很简单,只需要在SqlSessionFactory对象的openSession方法中设置参数为true就可以了,mybatis工具类如下: public ...

  2. mybatis中autoCommit自动提交事务

    今天学习了下mybatis, 对其中的autoCommit自动提交事务比较好奇, 研究了下,把配置和代码都放上 mapper.xml如下: <?xml version="1.0&quo ...

  3. 设置mysql InnoDB存储引擎下取消自动提交事务

    mysql 存储引擎中最长用的有两种,MyISAM 存储引擎和InnoDB存储引擎. 1.MyISAM 存储引擎 不支持事务,不支持外键,优势是访问速度快: 2.InnoDB存储引擎 支持事务,一般项 ...

  4. 深入浅出Mybatis系列(五)---配置详解之settings设置

    settings 中的设置是非常关键的,它们会改变 MyBatis 的运行时行为.下表描述了设置中各项的意图.默认值等. 设置参数 描述 有效值 默认值 cacheEnabled 该配置影响的所有映射 ...

  5. MyBatis 系列五 之 延迟加载、一级缓存、二级缓存设置

    MyBatis的延迟加载.一级缓存.二级缓存设置 首先我们必须分清延迟加载的适用对象 延迟加载 MyBatis中的延迟加载,也称为懒加载,是指在进行关联查询时,按照设置延迟加载规则推迟对关联对象的se ...

  6. Mybatis工具类(自动提交事务)

    public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { //获取工 ...

  7. Mybatis系列全解(六):Mybatis最硬核的API你知道几个?

    封面:洛小汐 作者:潘潘 2020 年的大疫情,把世界撕成几片. 时至今日,依旧人心惶惶. 很庆幸,身处这安稳国, 兼得一份安稳工. · 东家常讲的一个词:深秋心态 . 大势时,不跟风.起哄, 萧条时 ...

  8. Mybatis系列全解(三):Mybatis简单CRUD使用介绍

    封面:洛小汐 作者:潘潘 在理解中执行,在执行中理解,学习技术也循此道. 前言 上一篇文章 <Mybatis系列全解(二):Mybatis简介与环境搭建> ,我们对 Mybatis 做了初 ...

  9. 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap

    上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select ...

  10. 深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete

    上篇文章<深入浅出Mybatis系列(六)---objectFactory.plugins.mappers简介与配置>简单地给mybatis的配置画上了一个句号.那么从本篇文章开始,将会介 ...

随机推荐

  1. jdk11.0.2下载安装-环境配置

    下载 JDK下载地址https://www.oracle.com/technetwork/java/javase/downloads/index.html 然后同意,选择自己适合的版本 PS: 1.z ...

  2. 以STM32为例的MCU启动过程

    以STM32为例的MCU启动过程 在面试的时候,好多位面试官问过这个问题,即从上电后,到第一行main函数语句的执行,软件部分都在做什么.这次看了微控制器是如何启动的? |STM32 为例演示微控制器 ...

  3. netcore 使用mongodb

    docker 安装mongodb:docker pull mongo 运行容器 docker run -d -p 27017:27017 --name mongo01 -v /docker/mongo ...

  4. pytorch入门 - 修改huggingface大模型配置参数

    介绍 Hugging Face的Transformers库提供了大量预训练模型,但有时我们需要修改这些模型的默认参数来适应特定任务. 本文将详细介绍如何修改BERT模型的最大序列长度(max_posi ...

  5. AI 赋能编程,Coding新范式

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:佳岚 前言 AI 的大趋势: 24.25 年是 AI 应用 ...

  6. kubernetes集群之资源配额(Resource Quotas)

    一.简单介绍 资源配额(Resource Quotas)是用来限制用户资源用量的一种机制. 它的工作原理为: 资源配额应用在Namespace上,并且每个Namespace最多只能有一个Resourc ...

  7. 分布式事务TCC

    大家好,今天想和大家一起聊聊分布式事务. 今天主要说主要内容如下: * 分布式事务TCC 我们知道布式式事物TCC代表Try.Confirm.Cancel,就是尝试.确认.取消.这个是互联网上比较常见 ...

  8. 两步实现让antd与IDE和睦相处的处理案例

    导读: Web IDE的开发从来是整个大数据平台开发中非常繁复和笨重的一环,从零搭建一个 Web IDE 通常意味着大量的殚精竭虑和苦思冥想,时间成本更是不可计数.两个UI组件库一起用更是bug的代名 ...

  9. ABC295(D~G)

    Tasks - AtCoder Beginner Contest 295 这篇是超级抽象的简要tj,看不懂不要骂我这个蒟蒻QWQ D - Three Days Ago (atcoder.jp) \(f ...

  10. .NET Core如何通过认证机制访问Kafka?

    大家好,我是Edison. 最近有一个ASP.NET Core使用认证机制访问Kafka的需求,加之我们又使用了CAP这个开源项目使用的Kafka,于是网上寻找了一番发现对应资料太少,于是调查了一番, ...