MyBatis自动配置(MyBatisAutoConfiguration)
数据源配置请参考:https://blog.youkuaiyun.com/ttyy1112/article/details/99305500
事务管理配置请参考:https://blog.youkuaiyun.com/ttyy1112/article/details/98943098
MyBatis自动配置主要实现如下功能:
- 创建SqlSessionFactory Bean。
- 创建SqlSessionTemplate Bean。
- 注册MapperScannerConfigurer BeanDefinition,它实现了BeanDefinitionRegistryPostProcessor接口,会自动将@Mapper注解的类添加到BeanDefinition。
1. 添加starter依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
2. 配置文件示例
# mybatis
mybatis:
type-aliases-package: com.tm.sbia.feature.domain
check-config-location: false
mapper-locations: classpath*:mybatis/**/*mapper.xml
type-handlers-package:
configuration:
# 全局映射器启用缓存
cache-enabled: true
# 查询时,关闭关联对象即时加载以提高性能
lazy-loading-enabled: true
# 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指 定),不会加载关联表的所有字段,以提高性能
aggressive-lazy-loading: false
# 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果
multiple-result-sets-enabled: true
# 允许使用列标签代替列名
use-column-label: true
#允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖
#use-generated-keys: true
# 给予被嵌套的resultMap以字段-属性的映射支持
auto-mapping-behavior: FULL
# 对于批量更新操作缓存SQL以提高性能
#default-executor-type: BATCH
# 数据库超过25000秒仍未响应则超时
default-statement-timeout: 0
# 使用驼峰规则
map-underscore-to-camel-case: true
# 默认的枚举处理类
default-enum-type-handler:
3. MyBatis插件
分页管理: PageHelper
参考
MyBatis-Spring中实现spring事务管理解析
spring事务和myBatis事务的设置
从Spring集成mybatis了解Spring事务
Mybatis插件机制详解
MyBatis 框架学习——Mybatis分页之PageHelper插件