当前位置: 首页 > news >正文

MyBatis基础之SqlSession

在这里插入图片描述

SqlSession 线程安全问题

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

SqlSession 接口有 3 个实现类:

#实现类
1DefaultSqlSession
2SqlSessionManager
3SqlSessionTemplate(在 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 !

http://www.lryc.cn/news/174014.html

相关文章:

  • 笔记本电脑没有麦克风,声音无法找到输入设备
  • MySQL基础—从零开始学习MySQL
  • 单例模式设计
  • 轻量型服务器能支撑多少人访问?
  • python: Sorting Algorithms
  • Python 安装js环境
  • 2023华为杯数模C题——大规模创新类竞赛评审方案研究
  • 人工神经网络ANN:数学总结
  • RabbitMQ的工作模式——WorkQueues
  • AOJ 0531 坐标离散化
  • Python —— pytest框架
  • IP地址欺骗的危害与后果
  • 系统集成|第十章(笔记)
  • Linux之perf(7)配置
  • 14:00面试,14:06就出来了,问的问题过于变态了。。。
  • JPA的注解@Field指定为Keyword失败,导致查询不到数据
  • 多线程带来的的风险-线程安全
  • Kafka 面试题
  • 离线部署 python 3.x 版本
  • Java 获取豆瓣电影TOP250
  • 笔试面试相关记录(5)
  • 四、C#—变量,表达式,运算符(2)
  • 【WSN】基于蚁群算法的WSN路由协议(最短路径)消耗节点能量研究(Matlab代码实现)
  • JVM的内存分配及垃圾回收
  • Python实现查询一个文件中的pdf文件中的关键字
  • 【计算机网络笔记一】网络体系结构
  • 硕士应聘大专老师
  • Gram矩阵
  • 【数据结构】七大排序算法详解
  • OpenCV之VideoCapture