【官方中文文档】Mybatis-Spring #使用 MyBatis API

news/2024/11/16 18:54:44/

使用 MyBatis API

使用 MyBatis-Spring,你可以继续直接使用 MyBatis 的 API。只需简单地使用 SqlSessionFactoryBean 在 Spring 中创建一个 SqlSessionFactory,然后按你的方式在代码中使用工厂即可。

public class UserDaoImpl implements UserDao {// SqlSessionFactory 一般会由 SqlSessionDaoSupport 进行设置private final SqlSessionFactory sqlSessionFactory;public UserDaoImpl(SqlSessionFactory sqlSessionFactory) {this.sqlSessionFactory = sqlSessionFactory;}public User getUser(String userId) {// 注意对标准 MyBatis API 的使用 - 手工打开和关闭 sessiontry (SqlSession session = sqlSessionFactory.openSession()) {return session.selectOne("org.mybatis.spring.sample.mapper.UserMapper.getUser", userId);}}
}

小心使用此选项,错误地使用会产生运行时错误,更糟糕地,会产生数据一致性的问题。直接使用 API 时,注意以下弊端:

  • 它不会参与到 Spring 的事务管理之中。
  • 如果 SqlSession 使用与 Spring 事务管理器使用的相同 DataSource,并且有进行中的事务,代码会抛出异常。
  • MyBatis 的 DefaultSqlSession 是线程不安全的。如果在 bean 中注入了它,会发生错误。
  • 使用 DefaultSqlSession 创建的映射器也不是线程安全的。如果你将它们注入到 bean 中,会发生错误。
  • 你必须确保总是在 finally 块中来关闭 SqlSession

http://www.ppmy.cn/news/1052867.html

相关文章

利用iconfont与前端组合开发,让项目更加个性化

引言 在前端开发中,图标的使用对项目来说非常重要。传统的图片图标有一定的缺点,比如体积大、无法自由缩放等。iconfont作为一种新的图标使用方式,可以很好地弥补这些缺点。本文将介绍如何利用iconfont与前端技术进行组合,给项目…

LLMs训练的算力优化Computational challenges of training LLMs

当您尝试训练大型语言模型时,您仍然经常遇到的最常见问题之一是内存不足。如果您曾尝试在Nvidia GPU上训练或甚至只是加载模型,那么这个错误消息可能看起来很熟悉。 CUDA,即Compute Unified Device Architecture的缩写,是为Nvid…

PSP - 蛋白质结构预测 AlphaFold2 的结构模版 (Template) 搜索与特征逻辑

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132427617 结构模版 (Template) 是一种已知的蛋白质结构,可以作为 AlphaFold2 蛋白质结构预测的参考,AlphaFold2 可以从多…

面试之快速学习计算机网络-http

1. HTTP常见状态码 2. 3开头重定向,4开头客户端错误,5开头服务端错误 2. HTTP 报文 1. start-line:请求行,可以为以下两者之一: 请求行: GET /hello-world2.html HTTP/1.1状态行:HTTP/1.1 200…

使用Pytorch和OpenCV实现视频人脸替换

“DeepFaceLab”项目已经发布了很长时间了,作为研究的目的,本文将介绍他的原理,并使用Pytorch和OpenCV创建一个简化版本。 本文将分成3个部分,第一部分从两个视频中提取人脸并构建标准人脸数据集。第二部分使用数据集与神经网络一…

每日一学——Vlan配置

VLAN(Virtual Local Area Network)是虚拟局域网的缩写,它是一种将多台主机和网络设备逻辑上划分成不同的局域网的技术。VLAN的实施可以基于端口、MAC地址、协议等多种方式进行。 VLAN的主要功能包括: 分割网络:VLAN可…

VUE 目录介绍

更新升级(npm - i)之后最终目录如下: total 1672 drwxr-xr-x 18 testrose staff 576 8 22 02:53 . drwxr-xr-x 24 testrose staff 768 8 22 02:50 .. -rw-r--r-- 1 testrose staff 402 8 22 02:52 .babelrc -rw…

docker-compose部署服务

1. 安装docker-compose 1.1 手动下载地址 https://github.com/docker/compose/releases shell命令下载 $ sudo curl -L https://github.com/docker/compose/releases/download/2.17.12/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose1.2 添加执行权限 …