环境
springboot 2.3.0
mysql: 8
1. 引入依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
查找新版
https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter
2.application.yml配置
mybatis:
# config-location: classpath:mybatis/mybatis-config.xml
type-aliases-package: com.lwp.example.springbootmybatis.model
mapper-locations: classpath:mapper/**/*.xml
configuration:
map-underscore-to-camel-case: true
---
spring:
profiles: default
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
# mysql8 jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai
# jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
# mysql5 jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 123456
# 默认
type: com.zaxxer.hikari.HikariDataSource
hikari:
# 不配置默认与maximum-pool-size相同
minimum-idle: 5
# 连接池最大连接数,默认是10
maximum-pool-size: 20
connection-test-query: SELECT 1
打印sql到console中,生产环境不打开
# 开发时开启,生产环境可以关闭
mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
3.Applicantion启动类增加注解
可以使用 @MapperScan 或 @MapperScans
@SpringBootApplication
//@MapperScan("com.demo.*.mapper")
//@MapperScan("com.demo.**.mapper")
@MapperScans(
@MapperScan(basePackages = "com.lwp.example.springbootmybatis.**.mapper")
)
public class SpringBootMybatisApplication implements CommandLineRunner {
public static void main(String[] args) {
SpringApplication.run(SpringBootMybatisApplication.class, args);
}
}
@MapperScans 多个路径
@MapperScan
单个包
@MapperScan("com.mysiteforme.admin.dao")
多个包
@MapperScan({"com.mysiteforme.admin.dao","com.zipon.tpf.dao"})
其他
(1)跨xml使用
当前xml中的 BaseResultMap
com.lwp.example.springbootmybatis.mapper.AuthorMapper下的BaseResultMap
com.lwp.example.springbootmybatis.mapper.AuthorMapper.BaseResultMap
(2)配置多个xml文件,避免覆盖生成的文件添加内容,独立一个自定义文件
一个mapper(namespace)对应多个xml文件
多个文件使用相同的namespace即可