mybatis non transactional SqlSession的解决

Spring+Mybatis整合事务不起作用之解决方案汇总 前言: 公司最近一个项目用到Spring和Mybatis,发现用起来挺方便,比以前的那个struts+hibernate舒服多了。废话少说,直接摆问题,碰到的问题是,mybatis不在事务中运行,后台日志报 “Closing no transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1 阅读详情

      这个问题有两种解决方案:第一种是通过给方法加上@Transactional注解并且给配置中加入事务扫描<tx:annotation-driven transaction-manager="transactionManager"/>

                                                       第二种是通过配置来实现事务的同步。例如:

     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="datasource"/>
    </bean>
    <!-- - - - - - - spring 事务属性 - - - - - - - -->
    <tx:advice id="transactionAdvice" transaction-manager="transactionManager">
    <tx:attributes>
      <tx:method name="delete*" propagation="REQUIRED"  read-only="false" 
                            rollback-for="Exception" no-rollback-for="RuntimeException"/>
      <tx:method name="insert*" propagation="REQUIRED" read-only="false" 
                            rollback-for="java.lang.RuntimeException"  />
      <tx:method name="update*" propagation="REQUIRED" read-only="false" 
                            rollback-for="java.lang.Exception" />
      <tx:method name="select*" propagation="SUPPORTS"/>
      <tx:method name="save*"  propagation="REQUIRED" read-only="false" rollback-for="Exception" />
      <tx:method name="remove*"  propagation="REQUIRED" read-only="false" rollback-for="Exception" />
      <tx:method name="add*"  propagation="REQUIRED" read-only="false" rollback-for="Exception" />
      <tx:method name="up*"  propagation="REQUIRED" read-only="false" rollback-for="Exception" />
    </tx:attributes>
    </tx:advice>
    <!--******    织入,请修改成实际的业务层包名  *********-->
    <aop:config>
        <aop:advisor advice-ref="transactionAdvice" pointcut="execution(* com.ha.service.*.*(..))"/>
    </aop:config>

   这种方式,出问题的位置在于 <aop:advisor advice-ref="transactionAdvice" pointcut="execution(* com.ha.service.*.*(..))"/>这句话,主要在于pointcut后面的表达式有问题,这个要注意。



Spring Framework +Mybatis时报SqlSession注册错误 SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6fdbe764] was not registered for synchronization because synchronization is not active Closing non transactional SqlSession [org.apache... 阅读详情

相关推荐

新能源车主必看:用高德API+充电站数据制作跨城出行充电规划工具(附完整代码)

本文为新能源车主提供了一份详细的跨城出行充电规划工具构建指南。通过整合高德地图API与充电站数据,手把手教你使用Python开发一个智能规划系统,可自动规划路线并推荐沿途充电站,有效缓解里程焦虑。文章包含完整代码、核心算法解析及可视化实现,帮助车主实现个性化、高效的出行规划。

tgb3456789的博客 899

解决Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@38e46e4

解决Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@38e46e4a]异常 1、我自己解决的方法 作为初学者,当我遇到这个异常时也在网上找解决方法,可都没有解决,最后发现是自己操作的问题 我们都运行过sql文件如图 ,如果我们有sql文件,都是右键运行sql文件。 可有时运行时表会跑到系统自带的数据库,如test库,我们不以为然就去我们程序操作,就会报Closing.

LiloveWen的博客 15万+

分布式光纤传感(DFOS)DTS/DAS/DSS 三合一:10公里管线监测实战与数据解读

本文详细介绍了分布式光纤传感(DFOS)技术在10公里管线监测中的实战应用,通过DTS(温度)、DAS(振动)、DSS(应变)三合一系统,实现对管线健康状态的立体感知。文章涵盖工程部署、数据采集、多物理量数据融合及噪声抑制等关键技术,展示了如何通过一根光纤完成复杂监测任务,显著提升管线安全性和维护效率。

weixin_29168153的博客 315

解决Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlS..(22.11.20)

“Closing non transactional SqlSession”,这种情况试一下重新建库建表

qq_48602526的博客 2万+

点云体素化算法研究-3.Voxelization 三维模型体素化

体素(voxel)即体积元素的简称,是数字数据在三维空间分割上的最小的单位。体素化就是通过创建三维体素网格来表示三维物体,是一种将无序点云变为有序点云的降采样的空间数据结构方法,便于实现点云的空间卷积。激光雷达(LiDAR)| Open3D:第五节 表面重建-体素化。

周陽讀書 2067

基于树莓派4B与NCNN的YOLOv8高效部署实战:无GPU环境下的C++加速优化全流程指南**

本文详细介绍了在树莓派4B上基于NCNN框架部署YOLOv8目标检测模型的全流程。内容包括:从PyTorch模型导出NCNN格式文件、树莓派环境配置(OpenCV和NCNN编译)、C++实现代码解析(含模型加载、推理及后处理),以及实际部署测试结果。在树莓派4B上达到约2FPS,并提供INT8量化、多线程等优化建议。该方案为无GPU设备提供了轻量化目标检测的实用部署方案,适合边缘计算场景。

FJN110的博客 917

7.Closing non transactional SqlSession 导致事务失败问题

        博主在研究Spring事务源码,编写测试代码时,出现了Closing non transactional SqlSession 导致事务失败的问题,于是写下这篇文章,记录一下这个问题。 前提         已经通过配置方式...

扛麻袋的少年的博客 5万+

下拉式菜单设计——Power BI

Power BI导航设计:多级下拉菜单

weixin_41542593的博客 5434

Closing non transactional SqlSession

在执行sql的时候,出现Closing non transactional SqlSession 找了很长时间才发现是什么原因。 解决方式: 1. 启动类添加注解 @EnableTransactionManagement 2. 方法添加注解 @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) spring的事物传播 propagation = Propagation.R...

yang_zzu的博客 3万+

OpenClaw进阶实战(二十五):抖音企业号——私信回复与视频评论分析

本文介绍了抖音企业号自动化运营的技术方案,重点解决私信互动效率低和风控严格两大挑战。文章分析了抖音集成的三大技术壁垒(视频复杂性、风控体系、封闭API)并对比了三种技术路径的优缺点。针对不同规模的运营主体,推荐官方API+RPA混合架构或真机RPA+AI辅助的方案。 详细讲解了环境准备步骤,包括抖音Skill安装、Cookie获取和配置文件设置。核心实现部分展示了私信自动回复功能的安全合规实现,包含意图分类、优先级排序、延迟发送等防封禁机制,并提供了完整的Python代码示例。该方案通过模拟人工操作、限制日

PeterPan的博客 159

触摸芯片RM1015B基本使用方法

RM1015B触摸芯片使用指南:该芯片采用4通道设计(实际使用3通道),通过I2C接口通信(设备地址0x2B)。硬件设计需注意中断/复位引脚复用,需上拉处理。软件配置包括初始化、中断处理和定时器扫描,通过设置各通道阈值(0-300W)调节灵敏度,值越小越灵敏。调试时可调用rm1015B_debug_func()输出波形数据。典型应用场景包括接近检测和手势识别,中断触发后需在8ms内响应。特别注意不同通道的寄存器映射关系及校准流程,确保检测准确性。

云淡风轻 176

Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSql]三更草堂博客项目,友联接口问题

三更友联页面不显示解决

KinozHao个人博客 6038

【人工智能之深度学习】15. 工业时序预测实战:LSTM与TCN融合的装备故障预警系统设计与实现

摘要:工业装备故障预警是智能制造领域的核心技术之一,其通过分析传感器时序数据实现故障提前预测,可显著降低运维成本并提升设备可靠性。本文针对工业时序数据多源异构、非平稳性、噪声干扰及样本不平衡等挑战,提出一种LSTM与TCN融合的故障预警架构——利用TCN捕捉局部时序特征,结合注意力增强LSTM建模长期依赖关系,通过门控机制实现特征自适应融合。以3MW风电齿轮箱为研究对象,设计包含数据预处理、特征工程、模型训练及部署的完整流程,实验结果表明,该融合模型准确率达94.6%,故障预测提前量较单一模型提升30%以上

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1441

通俗易懂讲解MyBatis会话管理基础,帮助新手快速理解并解决‘closing non transactional sqlsession‘问题。

掌握SqlSession的正确使用方式是MyBatis入门的关键。SqlSession是重量级对象,必须及时关闭异常情况下也要确保资源释放框架提供的自动管理功能要合理使用最近我在InsCode(快马)平台上实践这些概念时,发现它的一键部署功能特别方便,可以直接看到代码运行效果,还能实时调试,对新手学习MyBatis很有帮助。平台内置的代码编辑器也很友好,不用配置环境就能开始练习,大大降低了学习门槛。

NightshadeRaven21的博客 817

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4f93bf0a]

如图所示,我的global-config(全局配置)位于confiuration下,这将导致我的全局配置无法正常使用,我们只需通过减少global-config前面的方格便能把父类换掉,换成更上一级的mybatis-plus。解决思路:找到自己的yml文件,看看是不是自己的全局配置相应的代码,位置没有放好,要分好子父区别。问题发生原因:更改原有的注解代码,试用全局配置来测试方法。谁知就开始报错了,问题如上图。这样这个问题就解决了。

2301_78922930的博客 4015

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

mybatis:Creating a new SqlSession Closing non transactional SqlSession

Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@42607e80] was not registered for synchronization because synchronization is not active JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@56ebc6bb] w.

yzh_1346983557的博客 4万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@58d6f367]

具体错误提示

m0_71932548的博客 1197

spring中"Closing non transactional SqlSession"的处理

在我们没有开启事务的时候,如果使用mybatis,我们会在日志中看到如下的内容:"Closing non transactional SqlSession",这种情况说明没有开启Spring的事务管理,因此才会关闭一个非事务的SqlSession。   那么如何开启事务管理呢?最简单的方式就是添加下面两条配置: <bean id="transactionManager"

辛星,前进的路上. 13万+

Creating a new SqlSession 或者 Closing non transactional SqlSession

Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@126562] was not registered for synchronization because synchronization is not active JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@119285] will not be managed by

zcxbd的博客 2278

MyBatis SqlSession原理梳理

工作中,需要学习一下MyBatis sqlSession的产生过程,翻看了mybatis-spring的源码,阅读了一些mybatis的相关doc,对mybatis sqlSession有了一些认知和理解,这里简单的总结和整理一下。 首先, 通过翻阅源码,我们来整理一下mybatis进行持久化操作时重要的几个类: SqlSessionFactoryBuilder:build方...

FeelTouch Labs 1525

mybatis报错:Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSessi

使用mybatis报错,根据控制台打印日志,得出执行sql语句正确无误,说明sql没问题,查看下一行参数赋值,也没问题,推断出是事务的问 题所在,我的解决方案:在对应的service中添加添加注解:@Transactional ,重新启动,报错解决,amazing的是当我删掉这个注解,重 新启动时,又没有报错,持续amazing中。 其他解决方案点击这里参考 添加注解示例: ...

木泽锐 2万+

Spring整合mybatis中的sqlSession是如何做到线程隔离的?

项目中常常使用mybatis配合spring进行数据库操作,但是我们知道,数据的操作是要求做到线程安全的,而且按照原来的jdbc的使用方式,每次操作完成之后都要将连接关闭,但是实际使用中我们并没有这么干。 更让人疑惑的点是,spring中默认使用单例形式来加载bean,而往往我们也不会改变这种默认,所以,是所有线程共享数据连接? 让我们来看看真相! 自然是要个栗子的: 我...

KHOST的博客 387
上一篇: 自己对于mybatis的association的理解
下一篇: Cannot create PoolableConnectionFactory (Communications link failure due to underlying exception 解决
超越自己看到的
博客等级 码龄12年 28粉丝 168原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值