目前,关系型数据库已经成为 Java 应用的标配,由于 JDBC 操作数据库的复杂性,我们通常会选择一款持久层框架,而作为半自动化 ORM 框架的 MyBatis 则成了我们的首选,而 Spring 又成了 Java 事实上的标准,它让我们开发 Java 应用更快、更容易、更安全,因此我们通常会将 MyBatis 与 Spring 整合在一起使用。
MyBatis 脱离 Spring 环境已经可以使用了,那为什么又要将它与 Spring 整合在一起呢?这里我总结出两点:
- 配置简化,和 Spring 整合在一起后复杂的 xml 配置可以忽略或少量配置。
- 加入 Spring 事务管理,将 MyBatis 异常转换为 Spring 中的异常。
快速入门
MyBatis 与 Spring 的整合可以分为两块。一块是直接与 Spring Framework 整合,整合后我们就可以在 Spring 的事务管理下使用 MyBatis,此时还需要少量的配置。另一块是与 SpringBoot 整合,整合后几乎可以忽略所有的 MyBatis 配置,极个别配置在 application.properties 添加即可。
本文只介绍如何与Spring整合。
为了将 MyBatis 应用到 Spring,MyBatis 官方提出了一个子项目 mybatis-spring,需要先将其引入到项目中:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
sqlSessionFactory 配置及使用
sqlSession 是 Mybatis 执行 sql 的入口,它又非线程安全,因此我们可以在 Spring 环境下配置一个线程安全的 sqlSessionFactory 作为 bean。按照非 Spring 环境下的方式创建 sqlSessionFactory 也并无不可,然而为了简化配置及加入 Spring 的事务管理,mybatis-spring 项目中提供了一个 sqlSessionfactorybean,这是一个 Spring 的 factorybean,最终 Spring 容器创建的是一个从 sqlSessionfactorybean 获取到的 sqlSessionFactory,因此我们配置 sqlSessionfactorybean 作为 bean 即可。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。