文章目录
- SpringBoot 整合 Mybatis
- 什么是 MyBatis-Spring-Boot-Starter
- 关键依赖包
- application 配置
- 启动类
SpringBoot 整合 Mybatis
什么是 MyBatis-Spring-Boot-Starter
mybatis-spring-boot-starter
是 MyBatis 帮助我们快速集成 SpringBoot 提供的一个组件包,使用这个组件可以做到以下几点:
- 几乎可以零配置
- 需要很少的 XML 配置
mybatis-spring-boot-starter 依赖于 MyBatis-Spring 和 SpringBoot,最新版 1.3.2
需要 MyBatis-Spring 1.3
以上,Spring Boot 版本 1.5
以上。
注意
mybatis-spring-boot-starter 是 MyBatis 官方开发的 Starter,而不是 Spring Boot 官方开发的启动包。mybatis-spring-boot-starter 支持 XML 配置和注解配置两种。
关键依赖包
mybatis-spring-boot-starter
的 pom 文件,现在最新版本是 2.1.0
。
<dependency>
<groupId></groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
application 配置
:
-class-name=
=jdbc:mysql://localhost:3306/scott\
?useUnicode=true\
&characterEncoding=utf-8\
&useSSL=true\
&serverTimezone=Asia/Shanghai
=root
=123456
## jdbc-starter 中自带了一个连接池:HikariCP
-timeout=60000
-pool-size=30
-idle=10
-location=classpath:mybatis/
-locations=classpath:mybatis/mapper/*.xml
=INFO
.=DEBUG
=%clr(%5level) \
%clr(|){faint} \
%clr(%-40.40logger{39}){cyan} \
%clr(:){faint} \
%m%n
其中:
配置 | 说明 |
---|---|
-locations |
配置 路径, 中配置 MyBatis 基础属性; |
-locations |
配置 Mapper 对应的 XML 文件路径; |
-aliases-package |
配置项目中实体类包路径; |
.* |
数据源配置。 |
如果你需要使用 Druid 连接池,也可以使用 Druid 官方提供的启动器:
<!-- Druid连接池 -->
<dependency>
<groupId></groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
而连接信息的配置与上面类似,四大连接属性不变,只不过在连接池特有属性上,方式略有不同:
## 初始化连接数
-size=1
## 最小空闲连接
-idle=1
## 最大活动连接
-active=20
Spring Boot 启动时数据源会自动注入到 SqlSessionFactory 中,使用 SqlSessionFactory 构建 SqlSessionFactory,再自动注入到 Mapper 中,最后我们直接使用 Mapper 即可。
启动类
在启动类中添加对 Mapper 包扫描 @MapperScan,SpringBoot 启动的时候会自动加载包径下的 Mapper 。
@SpringBootApplication
@MapperScan("")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
或者直接在 Mapper/DAO 类上面添加注解 @Mapper
,建议使用上面那种,不然每个 mapper 加个注解也挺麻烦的。
如果使用的是 Idea,注入 DAO 时经常会报
could not autowire
,Eclipse 却没有问题,其实代码是正确的,这是 Idea 的误报。可以选择降低 Autowired 检测的级别,不要提示就好。 在 File | Settings | Editor | Inspections 选项中使用搜索功能找到Autowiring for Bean Class
,将 Severity 的级别由之前的 error 改成 warning 即可。