x01-MyBatis Spring Boot Starter

一、版本
随着Spring Boot越来越流行,各类框架也开始提供了支持的自动配置启动器,MyBatis也不例外。
当前mybatis-spring-boot-starter最新版本为1.3.2。查看最新版本
通过查阅POM文件可以知道其主要依赖版本为:

<mybatis.version>3.4.6</mybatis.version>
<mybatis-spring.version>1.3.2</mybatis-spring.version>
<spring-boot.version>1.5.10.RELEASE</spring-boot.version>

在使用时,可以依据实际情况升级启动器版本,或覆盖其依赖组件版本,一般情况下启动器中提供了较为稳定的版本。
二、使用
通过Maven或Gradle导入依赖后,通过查阅自动配置指南正确使用启动器

maven
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
</dependency>

gradle
dependencies {
    compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2")
}

配置
1、配置文件,设置相关配置属性名和值,如果需要了解详细,也可以查阅mybatis-spring-boot-autoconfigure中的MybatisProperties配置属性类和Configuration嵌套配置属性类,在org.mybatis.spring.boot.autoconfigure包之下

# MyBatis 配置属性
## MyBatis xml 配置文件位置
## mybatis.config-location=classpath:mybatis-config.xml
## Mapper xml 配置文件位置
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
## 用于搜索类型别名的包。(包名分隔符为,)
mybatis.type-aliases-package=com.example.boot.dao.entity
## 用于搜索类型处理程序的包。(包名分隔符为,)
mybatis.type-handlers-package=com.example.boot.typehandler
## 表明是否检查 Mybatis xml 配置文件位置
mybatis.check-config-location=false 
## org.mybatis.spring.SqlSessionTemplate的执行模式 SIMPLE/REUSE/BATCH
mybatis.executor-type=SIMPLE

# Mybatis 嵌套属性
## 允许在嵌套语句中使用分页(RowBounds)
mybatis.configuration.safe-row-bounds-enabled=false
## 允许在嵌套语句中使用分页(ResultHandler),默认true
mybatis.configuration.safe-result-handler-enabled=true
## 是否开启自动驼峰命名规则映射
mybatis.configuration.map-underscore-to-camel-case=false
## 当开启时,任何方法的调用都会加载该对象的所有属性,禁用时,每个属性会按需加载(加载字段由SQL指定),以提高性能
mybatis.configuration.aggressive-lazy-loading=false
## 是否允许单一语句返回多结果集(需要兼容驱动),默认true
mybatis.configuration.multiple-result-sets-enabled=true
## 允许 JDBC 支持自动生成主键,需要驱动兼容。 
## 如果设置为 true 则这个设置强制使用自动生成主键,尽管一些驱动不能兼容但仍可正常工作(比如 Derby)
mybatis.configuration.use-generated-keys=false
## 使用列标签代替列名
mybatis.configuration.use-column-label=true
## 全局映射器缓存开关
mybatis.configuration.cache-enabled=true
## 指定当结果集中值为 null 的时候是否调用映射对象的 setter(map 对象时为 put)方法,
## 这对于有 Map.keySet() 依赖或 null 值初始化的时候是有用的。注意基本类型(int、boolean等)是不能设置成 null 的
mybatis.configuration.call-setters-on-nulls=false
## 允许使用方法签名中的名称作为语句参数名称。 
## 为了使用该特性,你的工程必须采用Java 8+编译,并且加上-parameters选项
mybatis.configuration.use-actual-param-name=true
## 当返回行的所有列都是空时,MyBatis默认返回null,适用于嵌套的结果集
mybatis.configuration.return-instance-for-empty-row=false
## 延迟加载的全局开关,查询时,关闭关联对象即时加载以提高性能
mybatis.configuration.lazy-loading-enabled=false
## 设置超时时间,它决定驱动等待数据库响应的秒数
mybatis.configuration.default-statement-timeout=5
## 为驱动的结果集获取数量(fetchSize)设置一个提示值
mybatis.configuration.default-fetch-size=10
## 对于批量更新操作缓存SQL以提高性能,默认SIMPLE
mybatis.configuration.default-executor-type=REUSE

2、Java Config
启动器提供了另一种通过Java Config自定义自动配置的可能。实现ConfigurationCustomizer接口的配置类并自定义MyBatis配置。
3、启动器生效时还会检测实现了以下接口的实体:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容