在《第一个MyBatis应用:Spring Boot整合MyBatis框架》文章中,SqlSessionFactory仍然是由MyBatis来构建的,通过SqlSessionFactory创建SqlSession,然后通过SqlSession来进行增删查改操作,并没有由Spring容器托管。
实际上,在Spring Boot中使用MyBatis本质就是在Spring框架中集成MyBatis,并没有其他任何高级的东西。只不过在Spring Boot中使用时因为插件封装的关系使得相关的配置可以更简洁一些,但是这种封装对于不熟悉MyBatis的人来讲反而增加了理解的难度。
因此,本文将把如何在Spring Boot中使用MyBatis进行详细介绍,希望对你有帮助。
Spring Cloud Alibaba微服务实战技术专栏,从项目实践出发,包括Spring Cloud Alibaba、Nacos、Gateway、Sentinel、Log日志、分布式全局唯一ID、DDD领域驱动设计等等技术内容,可帮助你对Spring Cloud 微服务技术栈有更加全面和直观的了解。相信你通过本专栏的练习和实践,能够学以致用,提升微服务应用的开发能力。
一、创建Maven示例项目创建Maven示例项目mybatis-second,如图所示:
然后,在pom.xml文件中添加依赖项:
二、配置数据源<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
通过与 Spring Boot的整合,SqlSessionFactory 交由 Spring 来构建。构建时需要在Spring的配置文件中添加数据库连接的四大属性来配置数据源。
在 Spring Boot的application.yml配置文件中添加如下配置。
# 配置数据源
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: xxx
# 整合mybatis
mybatis:
mapper-locations: classpath:mapper*.xml # 注册XML映射器
type-aliases-package: test.springboot.model # 配置Java类型包名
type-handlers-package: test.springboot.handlers # 配置类型处理器包名
executor-type: SIMPLE # 指定执行器类型
configuration:
default-fetch-size: 20
default-statement-timeout: 30
上述配置参数最终是通过
mybatis-spring-boot-autoconfigure.jar加载和配置的。
另外,上述配置参数只是一个配置示例,详细的配置参数列表请参考MyBatis配置官网:
http://www.mybatis.org/mybatis-3/zh/configuration.html。
总结起来,在Spring Boot中使用MyBatis可以使用2种方式:
(1)使用在Spring框架中集成MyBatis的原生集成方式
(2)使用插件
MyBatis-Spring-Boot-Starter集成MyBatis
上述两种方式都可以实现对MyBatis的定制化配置,可以根据个人喜好进行选择。无论如何,要想在Spring Boot中灵活使用好MyBatis,最基础的还是MyBatis和Spring框架本身。