当前位置:网站首页>SqlSession [[email protected]]
SqlSession [[email protected]]
2022-08-03 02:24:00 【市井榴芒】
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
帮你管理了;
边栏推荐
猜你喜欢
随机推荐
C语言实验十三 指针(三)
Summary of some interviews
QCheckBox、margin、border、pandding、QHoxLayout、QSplitter、QSpacerItem
Incorrect datetime value: '2022-01-01' for function str_to_date
用 SQL 做数据分析的十大常用功能,附面试原题解答!!
五大靠谱的婚恋相亲APP详细特点缺点分析!
面试题整理1
lombok 下的@Builder和@EqualsAndHashCode(callSuper = true)注解
Wei Dongshan Digital Photo Frame Project Learning (5) Transplantation of libjpeg-turbo
C语言实验十二 指针(二)
Disable the token and update the token function without awareness
程序员写代码日常 | 每日趣闻
韦东山 数码相框 项目学习(五)libjpeg-turbo的移植
Linux定时任务脚本执行时mysqldump备份异常的问题
什么样的存储服务,才能成为企业数字化创新“加速器”?
大厂标配 | 百亿级并发系统设计 | 学完薪资框框涨
【云原生】灰度发布、蓝绿发布、滚动发布、灰度发布解释
易购数码类电商商城网页设计与实现项目源码
monkey 压测
JVM internal structure and various modules operation mechanism