MyBatis基础之SqlSession

SqlSession 线程安全问题

当你翻看 SqlSession 的源码时,你会发现它只是一个接口。我们通过 MyBatis 操作数据库,实际上就是通过 SqlSession 获取一个 JDBC 链接,然后操作数据库。

SqlSession 接口有 3 个实现类:

# 实现类
1 DefaultSqlSession
2 SqlSessionManager
3 SqlSessionTemplate(在 mybatis-spring 包中)

其中

  • DefaultSqlSession 的注释中很直接地标识:Note that this class is not Thread-Safe.

  • SqlSessionManager 最终用到的也是 SqlSession ,因此它也是 not Thread-Safe

  • SqlSessionTemplate 倒是线程安全的,但是它在 mybatis-spring 包中,是用在 mybatis 和 spring 整合中的,暂时用不上。

因此,SqlSession 不应该是单例的,于此同时,依赖于 session 的 Mapper 要么也应该是多例的,要么就要用上 ThreadLocal !

相关推荐
期待のcode2 小时前
MyBatis-Plus的Wrapper核心体系
java·数据库·spring boot·后端·mybatis
期待のcode6 小时前
Springboot数据层开发—Springboot整合JdbcTemplate和Mybatis
spring boot·后端·mybatis
在坚持一下我可没意见7 小时前
Spring 开发小白学习过程中常用通用配置文件,即拿即用!(持续更新中)
java·数据库·后端·学习·spring·tomcat·mybatis
m0_740043737 小时前
SpringBoot03-Mybatis框架入门
java·数据库·spring boot·sql·spring·mybatis
计算机学姐1 天前
基于SSM的生鲜食品商城系统【2026最新】
java·vue.js·后端·mysql·java-ee·tomcat·mybatis
梁bk1 天前
苍穹外卖项目总结(一)[MyBatis-Plus,文件上传,Redis]
数据库·redis·mybatis
小坏讲微服务1 天前
Spring Boot 4.0 + MyBatis-Plus 实战响应式编程的能力实战
java·spring boot·后端·mybatis
缘来是庄2 天前
invalid comparison
java·spring boot·mybatis
小二·2 天前
MyBatis基础入门《十》Spring Boot 整合 MyBatis:从单数据源到多数据源实战
spring boot·后端·mybatis
爱学习的小可爱卢2 天前
JavaEE进阶——MyBatis动态SQL与图书管理系统实战
spring·mybatis