SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@xxx] was not registered for synchro

2023-11-07

1、报错场景

在搞SpringBoot项目的时候,把Mybatis打印日志的配置打开后,发现每条Sql打印的时候都会在前面打印如下的信息,强迫症受不了,得查查为什么;

Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@521978e4] was not registered for synchronization because synchronization is not active
JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@5bb2b956] will not be managed by Spring
==>  Preparing: select * from xxx where xxx = ? and xxx = ?
==> Parameters: opHQA5gq2qfn1DRl069YOLv1Wv0Q(String), 0(Integer)
<==    Columns: xxx, xxx, xxx, xxx
<==        Row: xxx, xxx, xxx, xxx
<==      Total: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@521978e4]

前面打印的内容意思大概是:这次的SqlSession未注册进来,同步关着呢哎,所以你这玩意Spring不会管理的;

2、问题原因及解决办法

原因就是你现在这个事务吧,不是Spring管理着呢,是你的数据库插件Mybatis或者MybatisPlus给你管理呢,所以Spring给你温馨提醒了一下而已,又没有报错!但是,有一种情况,比如你的方法里面逻辑比较多,增删改查的SQL比较多的话,而你自己又不清楚事务怎么管理的话,推荐你把@Transactional给加到方法上面,让Spring接管起来当前的事务,将来报错更好回滚。

当你把@Transactional加到方法上面时;

@Override
@Transactional
public Boolean xxxx(String xxx, String xxx) {
    Txxx txxx = txxxMapper.xxx(xxx, Integer.parseInt(xxx));
    //...
    return true;
}

再次打印日志的话就变成了这样:

Creating a new SqlSession
Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3ba27661]
JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@57d27e73] will be managed by Spring
==>  Preparing: select * from xxx where xxx = ? and xxx = ?
==> Parameters: opHQA5gq2qfn1DRl069YOLv1Wv1Q(String), 0(Integer)
<==    Columns: xxx, xxx, xxx, xxx
<==        Row: xxx, xxx, xxx, xxx
<==      Total: 1
Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3ba27661]
Transaction synchronization committing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3ba27661]
Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3ba27661]
Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3ba27661]

能看见Spring已经will be managed by Spring帮你管理了;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@xxx] was not registered for synchro 的相关文章

随机推荐

  • 等保差距测评价格

    http www docin com p 526444503 html
  • 3、使用Lucene实现千度搜索

    1 新建Web项目 新建一个Web项目 我命名为SearchEngine 然后导入Java包 除了上篇博客中的Jar包外 我还引入了 IKAnalyzer2012 FF jar 包和struts2的相关包 IKAnalyzer 是用来进行中
  • 【js逆向】常用js Hook脚本--js逆向必备工具

    JS hook 脚本 hook又称钩子 可以在调用系统函数之前 先执行我们的函数 例如 hook eval eval eval 先保存系统的eval函数 eval function s console log s debugger retu
  • 测试工程师在团队中没地位怎么办?

    为什么会出现这样的问题 首先自查 为什么自身 组织在团队中的地位没那么高 影响力没那么大 在一个项目团队中 每一个角色都是不可或缺的 若出现某一个角色地位比较低 不被信任 那这个角色就要检查自己了 从测试的角度来看 如果一个开发同学经常犯错
  • Docker容器与虚拟化技术:Docker compose部署LNMP

    目录 一 理论 1 LNMP架构 2 背景 3 Dockerfile部署LNMP 3 准备Nginx镜像 4 准备MySQL容器 5 准备PHP镜像 6 上传wordpress软件包 7 编写docker compose yml 8 构建与
  • Css不常用的方法

    flex布局换行之后 下面一行的布局会异常 homeItemBox display flex flex wrap wrap justify content flex start homeItem display flex width cal
  • python小记(一)矩阵和向量的拼接

    TOCpython小计 一 python矩阵和向量的拼接 比如用python生成一个长度为17000的向量和一个17000 8的矩阵 那么向量的shape为 17000 矩阵的shape为 17000 8 查了CSDN上很多都是矩阵拼接矩阵
  • 在windows上装oracle11g R2 小麻烦

    发现在windows上装11GR2这么麻烦的 因为下载有两个包 所以 必须要把stage里面的components中的内容copy在一起 或将下载下来的两个包解压到同一个目录下 否则会报错误找不到em ear等文件 大家小心了
  • 如何吧未开源的jar包引入到maven项目中

    需求阐述 在与阿里云视频点播服务整合的时候 需要引入相应的jar包 由于aliyun java vod upload 1 4 14 jar还没有正式开源 所以需要直接把jar包引入到我的maven项目中进行使用 解决方案 1 使用maven
  • C/C++,转义字符,转义字符后加数字,以及八进制,十六进制的表示方法

    转义字符的作用 在C C 中 有一些字符是没办法直接输入或者表示的 此时就需要转移字符了 常用的转义字符 其中 单引号 双引号 问号 反斜杠 都需要转义字符 但是在平时输出的时候 发现 反斜杠和问号都可以正常输出 这是因为C标准允许这么做
  • 京东企业购APP发布4.0版本 并更名为京东慧采

    TechWeb 6月26日消息 京东企业业务正式对外发布京东企业购APP4 0版本 并更名为京东慧采 据了解 本次升级以采购管理移动化 订单过程可视化为核心 围绕账号管理 权限管理 多级审批管理 物流地图 数据分析工具等功能进行了大规模的迭
  • [正能量系列]失业的程序员(二)

    注 本文原型为作者的好友们 全文不完全代表作者本人的意图 本文上一章 失业的程序员 一 意外的失业 闹钟响 迷迷糊糊的我砸了一下开关 竟然把闹钟砸坏了 昨天接到学姐的电话 说是帮我介绍了一个钢管制造厂企业型宣传网站的业务 难度不大主要是美工
  • 群辉做无盘服务器,累了,最后的福利:NAS做家用无盘近完美资源包

    近段时间搞 启无盘搞得身心疲惫 决定要好好休息了 可能不再研究这个了 现在放出比较完美的启动包和脚本 基本上不再需要去手动改配置文件了 能多机做无盘 就看你的 磁盘性能了 T5 u v r T 0 d0 N Z4 c I e K 4 G1
  • 开源协议许可证浅析

    如今开源的软件已经越来越被广泛使用 各种专利纠纷也越来越多 工作上要求对开源协议的理解也很迫切 做技术架构是每一个技术人员最渴望的职责 但要做好初级的技术架构工作首先要对各种各样的开源协议有深入了解 知道什么开源软件是工作在什么协议之下 对
  • vue+ElementUI el-select实现下拉选择表格组件(2023-09-04 TSelectTable组件实现虚拟滚动,解决不分页数据量大渲染DOM过多而卡顿问题)

    2023 09 04 TSelectTable组件实现虚拟滚动 解决不分页数据量大渲染DOM过多而卡顿问题 2023 08 21 解决TSelectTable组件表单编辑回显设置defaultSelectVal 无效 一 最终效果 二 代码
  • 智能语音机器人竞品调研

    一 腾讯云 智能客服机器人 链接地址 智能客服机器人 在线智能客服 智能客服解决方案 腾讯云 二 阿里云 智能语音机器人 链接地址 智能对话机器人 阿里云帮助中心 链接地址 智能外呼机器人的业务架构 智能外呼机器人 阿里云帮助中心 三 火山
  • Java——类****是公共的,应在****的文件中声明

    源代码如下所示 public class HelloWord public static void main String args System out println HelloWord 错误如下图所示 解决方法 将第一行的类名 命名为
  • Pybooks:这十本Python编程语言的入门书籍入门必看!

    这个好像没有在微信发过图文版的 补一个 大部分介绍摘自京东等网站 Python基础教程 评语 Python入门佳作 经典教程的全新修订 10个项目引人入胜 Python基础教程 第2版 修订版 是经典的Python入门教程 层次鲜明 结构严
  • 交换机端口镜像及Wireshake抓包

    1 首先配置交换机 先将交换机断开与其他交换机连接的网线 保证电脑端只与这一个交换机通信 2 之前配置过交换机的 如果记得IP 可以直接通过交换机的IP进行登录 3 如果忘记交换机的IP 则可以重置 交换机上有一个reset按键 重置后 我
  • SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@xxx] was not registered for synchro

    目录 1 报错场景 2 问题原因及解决办法 1 报错场景 在搞SpringBoot项目的时候 把Mybatis打印日志的配置打开后 发现每条Sql打印的时候都会在前面打印如下的信息 强迫症受不了 得查查为什么 Creating a new