开发者社区> 问答> 正文

配置连接池之后,每次访问数据库仍然新建SqlSession

以连续的两次访问数据库为例: //第一次 Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4474cc30] was not registered for synchronization because synchronization is not active JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@3881726d] will not be managed by Spring //select * from dual Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4474cc30] //第二次 Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@151d520e] was not registered for synchronization because synchronization is not active JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@3881726d] will not be managed by Spring //select * from dual Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@151d520e]

可以看到每次访问数据库仍然会新建一个SqlSession。dataSource配置已经确保无误。mybatis中也配置了。不知道还有没有其他需要配置的地方。

mysql-connector-java:6.0.5 druid:1.0.29 org.springframework:4.3.6.RELEASE mybatis-spring:1.3.1 mybatis :3.4.2 tomcat:8.5.11 jdk:8 谢谢

原提问者GitHub用户changdy

展开
收起
山海行 2023-07-05 21:06:58 883 0
3 条回答
写回答
取消 提交回答
  • 根据你提供的信息,每次访问数据库都会新建一个SqlSession,即使已经配置了连接池。这可能是由于配置中存在一些问题导致的。

    请确保按照以下建议进行配置和检查:

    1. 确保正确配置了连接池。在Spring配置文件中,检查数据源(dataSource)的相关配置项,确保它指向正确的连接池实例(例如Druid连接池)。确保连接池的相关配置(如最大连接数、最小连接数等)符合需求。

    2. 检查MyBatis的配置。确认MyBatis的配置文件中是否正确配置了与连接池相关的属性。特别要注意SqlSessionFactoryBeandataSource属性,它应该引用正确的连接池数据源。

    3. 检查事务管理器的配置。如果你使用了事务,确保事务管理器(例如DataSourceTransactionManager)被正确地配置,并且事务注解(@Transactional)也被正确地应用在需要事务管理的方法上。

    4. 检查代码中的错误。确保在访问数据库时,正确地使用了SqlSession对象。遵循正确的MyBatis用法,包括正确的打开、使用和关闭SqlSession

    如果以上方法都没有解决问题,建议查阅相关文档和社区资源,寻找类似问题和解决方案的建议。

    2023-07-30 14:36:27
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    使用MyBatis时,如果每次访问数据库都新建一个SqlSession,可能会导致资源的浪费和性能的下降。为了避免这个问题,您可以将SqlSession的创建和释放交给连接池管理,以便更好地利用连接资源。

    如果您使用的是Druid连接池,可以通过配置SqlSessionFactory的DataSource属性,来将SqlSession的创建和释放交给Druid连接池管理。

    2023-07-30 13:06:11
    赞同 展开评论 打赏
  • 参考这个,详见这个说明:https://www.pianshen.com/article/2747380017/

    原回答者GitHub用户pauljy

    2023-07-06 11:53:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载