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

这篇具有很好参考价值的文章主要介绍了解决Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlS..(22.11.20)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

解决过程:

1、初始方案

在我们没有开启事务的时候,如果使用mybatis,我们会在日志中看到如下的内容:“Closing non transactional SqlSession”,这种情况说明没有开启Spring的事务管理,因此才会关闭一个非事务的SqlSession。

那么如何开启事务管理呢?最简单的方式就是添加下面两条配置:

<!-- 配置事务管理器 -->
    <bean id="transactionManager"
          class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
          p:dataSource-ref="dataSource" />

    <!-- 指明使用注解的方式来管理事务 -->
    <tx:annotation-driven transaction-manager="transactionManager" />
<!-- 配置事务管理器 -->
    <bean id="transactionManager"
          class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
          p:dataSource-ref="dataSource" />

    <!-- 指明使用注解的方式来管理事务 -->
    <tx:annotation-driven transaction-manager="transactionManager" />

然后我们在需要加事务管理的Service中添加@Transactional注解,我们就会在日志中看到如下效果了:

Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@368214f9]
[DEBUG][2017/08/22 10:38:34132][org.mybatis.spring.SqlSessionUtils$SqlSessionSynchronization.beforeCommit(SqlSessionUtils.java:284)]
Transaction synchronization committing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@368214f9]
[DEBUG][2017/08/22 10:38:34132][org.mybatis.spring.SqlSessionUtils$SqlSessionSynchronization.beforeCompletion(SqlSessionUtils.java:310)]
Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@368214f9]
[DEBUG][2017/08/22 10:38:34133][org.mybatis.spring.SqlSessionUtils$SqlSessionSynchronization.beforeCompletion(SqlSessionUtils.java:315)]
Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@368214f9]
[DEBUG][2017/08/22 10:38:34133][org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:759)]
Initiating transaction commit

但是用这个方法并没有解决我的问题,通过以下方法解决

2、我自己解决的方法

当我遇到这个异常时也在网上找解决方法,可没有解决,最后发现是自己操作的问题
closing non transactional sqlsession [org.apache.ibatis.session.defaults.def,遇到的bug,spring boot,mybatis

我们都运行过sql文件 如图 ,如果我们有sql文件,都是右键运行sql文件。

可有时运行时表会跑到系统自带的数据库,如springboot-vue库,这时我们去程序操作,就会报Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@38e46e4a]

最后发现把系统数据库的表删除,重新建个数据库放表就解决问题了。这是我遇到这个异常的解决方法、希望对初学者有所帮助。文章来源地址https://www.toymoban.com/news/detail-660785.html

3、重新建个数据库放表就解决问题了

到了这里,关于解决Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlS..(22.11.20)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包