SpringBoot 整合 Mybatis

SpringBoot 整合 Mybatis

什么是 MyBatis-Spring-Boot-Starter

mybatis-spring-boot-starter 是 MyBatis 帮助我们快速集成 SpringBoot 提供的一个组件包,使用这个组件可以做到以下几点:

  • 几乎可以零配置
  • 需要很少的 XML 配置

mybatis-spring-boot-starter 依赖于 MyBatis-SpringSpringBoot,最新版 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>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.0</version>
</dependency>

application 配置

application.properties:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/scott\
    ?useUnicode=true\
    &characterEncoding=utf-8\
    &useSSL=true\
    &serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
## jdbc-starter 中自带了一个连接池:HikariCP
spring.datasource.hikari.idle-timeout=60000
spring.datasource.hikari.maximum-pool-size=30
spring.datasource.hikari.minimum-idle=10

mybatis.config-location=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

logging.level.root=INFO
logging.level.hemiao3000.gitee.io=DEBUG
logging.pattern.console=%clr(%5level) \
  %clr(|){faint} \
  %clr(%-40.40logger{39}){cyan} \
  %clr(:){faint} \
  %m%n

其中:

配置说明
mybatis.config-locations配置 mybatis-config.xml 路径,
mybatis-config.xml 中配置 MyBatis 基础属性;
mybatis.mapper-locations配置 Mapper 对应的 XML 文件路径;
mybatis.type-aliases-package配置项目中实体类包路径;
spring.datasource.*数据源配置。

如果你需要使用 Druid 连接池,也可以使用 Druid 官方提供的启动器:

<!-- Druid连接池 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.10</version>
</dependency>

而连接信息的配置与上面类似,四大连接属性不变,只不过在连接池特有属性上,方式略有不同:

## 初始化连接数
spring.datasource.druid.initial-size=1
## 最小空闲连接
spring.datasource.druid.min-idle=1
## 最大活动连接
spring.datasource.druid.max-active=20

Spring Boot 启动时数据源会自动注入到 SqlSessionFactory 中,使用 SqlSessionFactory 构建 SqlSessionFactory,再自动注入到 Mapper 中,最后我们直接使用 Mapper 即可。

启动类

在启动类中添加对 Mapper 包扫描 @MapperScan,SpringBoot 启动的时候会自动加载包径下的 Mapper 。

@SpringBootApplication
@MapperScan("com.woniu.dao")
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 即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值