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

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

使用 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.lryc.cn/news/136067.html

相关文章:

  • go gorm belong to也就是多对一的情况
  • 亚马逊云科技 云技能孵化营——机器学习心得
  • Django实现音乐网站 ⒀
  • PySide6学习笔记--基础环境的安装配置
  • 算法通关村第九关——中序遍历与搜索树
  • 测试框架pytest教程(5)运行失败用例-rerun failed tests
  • 【车载开发系列】UDS当中的时间参数
  • PDF中的表格怎么转换为Excel?这两个工具一定得收藏!
  • ssh scp sshpass
  • leetcode 1996. 游戏中弱角色的数量(排序的魅力)
  • 从头到尾说一次 Spring 事务管理(器) | 京东云技术团队
  • php 系列题目,包含查看后端源代码
  • 令牌桶C语言代码实现
  • Mybatis 建立依赖失败:报错Dependency ‘mysql:mysql-connector-java:8.0.28‘ not found
  • 多线程+隧道代理:提升爬虫速度
  • 使用@Configuration和@Bean给spring容器中注入组件
  • 信号波形解读
  • Centos 解决 XXX不在 sudoers 文件中。此事将被报告。的错误
  • 雪花算法和uuid的区别
  • docker之DockerFile与网络
  • 知识蒸馏开山之作(部分解读)—Distilling the Knowledge in a Neural Network
  • centos 7 安装 docker-compose curl 设置代理
  • 3D姿态相关的损失函数
  • ChatGPT取代人类仍然是空想?有没有一种可能是AI在迷惑人类
  • 基于swing的旅游管理系统java jsp旅行团信息mysql源代码
  • Windows wsl2支持systemd
  • NLP - 如何解决ModuleNotFoundError: No module named ‘jieba‘的问题
  • Windows10上VS2022单步调试FFmpeg 4.2源码
  • 【tkinter 专栏】菜单组件
  • 【LeetCode-经典面试150题-day10】