MybatisPlus3.X使用配置
本文讲解了MyBatis-Plus
在使用过程中的配置选项,其中,部分配置继承自MyBatis
原生所支持的配置
基本配置
本部分配置包含了大部分用户的常用配置,其中一部分为 MyBatis 原生所支持的配置
使用方式
Spring Boot:
mybatis-plus:
......
configuration:
......
global-config:
......
db-config:
......
Spring MVC:
<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
<property name="configuration" ref="configuration"/> <!-- 非必须 -->
<property name="globalConfig" ref="globalConfig"/> <!-- 非必须 -->
......
</bean>
<bean id="configuration" class="com.baomidou.mybatisplus.core.MybatisConfiguration">
......
</bean>
<bean id="globalConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig">
<property name="dbConfig" ref="dbConfig"/> <!-- 非必须 -->
......
</bean>
<bean id="dbConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig.DbConfig">
......
</bean>
configLocation
类型:
String
默认值:
null
MyBatis 配置文件位置,如果您有单独的 MyBatis 配置,请将其路径配置到 configLocation
中.MyBatis Configuration 的具体内容请参考MyBatis 官方文档
mapperLocations
类型:
String[]
默认值:
[]
MyBatis Mapper 所对应的 XML 文件位置,如果您在 Mapper 中有自定义方法(XML 中有自定义实现),需要进行该配置,告诉 Mapper 所对应的 XML 文件位置
warning Maven 多模块项目的扫描路径需以 classpath*:
开头 (即加载多个 jar 包下的 XML 文件)
typeAliasesPackage
类型:
String
默认值:
null
MyBaits 别名包扫描路径,通过该属性可以给包中的类注册别名,注册后在 Mapper 对应的 XML 文件中可以直接使用类名,而不用使用全限定的类名(即 XML 中调用的时候不用包含包名)
typeAliasesSuperType
类型:
Class
默认值:
null
该配置请和 typeAliasesPackage 一起使用,如果配置了该属性,则仅仅会扫描路径下以该类作为父类的域对象
typeHandlersPackage
类型:
String
默认值:
null
TypeHandler 扫描路径,如果配置了该属性,SqlSessionFactoryBean 会把该包下面的类注册为对应的 TypeHandler
tip TypeHandler 通常用于自定义类型转换。
typeEnumsPackage
类型:
String
默认值:
null
枚举类 扫描路径,如果配置了该属性,会将路径下的枚举类进行注入,让实体类字段能够简单快捷的使用枚举属性
checkConfigLocation
类型:
boolean
默认值:
false
启动时是否检查 MyBatis XML 文件的存在,默认不检查
executorType
类型:
ExecutorType
默认值:
simple
通过该属性可指定 MyBatis 的执行器,MyBatis 的执行器总共有三种:
ExecutorType.SIMPLE:该执行器类型不做特殊的事情,为每个语句的执行创建一个新的预处理语句(PreparedStatement)
ExecutorType.REUSE:该执行器类型会复用预处理语句(PreparedStatement)
ExecutorType.BATCH:该执行器类型会批量执行所有的更新语句
configurationProperties
类型:
Properties
默认值:
null
指定外部化 MyBatis Properties 配置,通过该配置可以抽离配置,实现不同环境的配置部署
configuration
类型:
Configuration
默认值:
null
原生 MyBatis 所支持的配置,具体请查看 Configuration
globalConfig
类型:
GlobalConfig
默认值:
null
MyBatis-Plus 全局策略配置,具体请查看 GlobalConfig
Configuration
本部分(Configuration)的配置大都为 MyBatis 原生支持的配置,这意味着您可以通过 MyBatis XML 配置文件的形式进行配置。
mapUnderscoreToCamelCase
类型:
boolean
默认值:
true
是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN(下划线命名) 到经典 Java 属性名 aColumn(驼峰命名) 的类似映射。
tip 注意 此属性在 MyBatis 中原默认值为 false,在 MyBatis-Plus 中,此属性也将用于生成最终的 SQL 的 select body
如果您的数据库命名符合规则无需使用 @TableField
注解指定数据库字段名
defaultEnumTypeHandler
类型:`Class
默认值:
org.apache.ibatis.type.EnumTypeHandler
默认枚举处理类,如果配置了该属性,枚举将统一使用指定处理器进行处理
tip
org.apache.ibatis.type.EnumTypeHandler : 存储枚举的名称
org.apache.ibatis.type.EnumOrdinalTypeHandler : 存储枚举的索引
com.baomidou.mybatisplus.extension.handlers.EnumTypeHandler : 枚举类需要实现IEnum接口或字段标记@EnumValue注解.
com.baomidou.mybatisplus.extension.handlers.EnumAnnotationTypeHandler: 枚举类字段需要标记@EnumValue注解
aggressiveLazyLoading
类型:
boolean
默认值:
true
当设置为 true 的时候,懒加载的对象可能被任何懒属性全部加载,否则,每个属性都按需加载。需要和 lazyLoadingEnabled 一起使用。
autoMappingBehavior
类型:
AutoMappingBehavior
默认值:
partial
MyBatis 自动映射策略,通过该配置可指定 MyBatis 是否并且如何来自动映射数据表字段与对象的属性,总共有 3 种可选值:
AutoMappingBehavior.NONE:不启用自动映射
AutoMappingBehavior.PARTIAL:只对非嵌套的 resultMap 进行自动映射
AutoMappingBehavior.FULL:对所有的 resultMap 都进行自动映射
autoMappingUnknownColumnBehavior
类型:
AutoMappingUnknownColumnBehavior
默认值:
NONE
MyBatis 自动映射时未知列或未知属性处理策略,通过该配置可指定 MyBatis 在自动映射过程中遇到未知列或者未知属性时如何处理,总共有 3 种可选值:
AutoMappingUnknownColumnBehavior.NONE:不做任何处理 (默认值)
AutoMappingUnknownColumnBehavior.WARNING:以日志的形式打印相关警告信息
AutoMappingUnknownColumnBehavior.FAILING:当作映射失败处理,并抛出异常和详细信息
cacheEnabled
类型:
boolean
默认值:
true
全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存,默认为 true。
callSettersOnNulls
类型:
boolean
默认值:
false
指定当结果集中值为 null 的时候是否调用映射对象的 Setter(Map 对象时为 put)方法,通常运用于有 Map.keySet() 依赖或 null 值初始化的情况。
通俗的讲,即 MyBatis 在使用 resultMap 来映射查询结果中的列,如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段,这就导致在调用到该字段的时候由于没有映射,取不到而报空指针异常。
当您遇到类似的情况,请针对该属性进行相关配置以解决以上问题。
warning 基本类型(int、boolean 等)是不能设置成 null 的。
configurationFactory
类型:
Class
默认值:
null
指定一个提供 Configuration 实例的工厂类。该工厂生产的实例将用来加载已经被反序列化对象的懒加载属性值,其必须包含一个签名方法static Configuration getConfiguration()
。(从 3.2.3 版本开始)
GlobalConfig
banner
类型:
boolean
默认值:
true
是否控制台 print mybatis-plus 的 LOGO
sqlParserCache(Deprecated 3.1.1,直接开启缓存)
类型:
boolean
默认值:
false
是否缓存 Sql 解析,默认不缓存
workerId
类型:
Long
默认值:
null
机器 ID 部分(影响雪花ID)
datacenterId
类型:
Long
默认值:
null
数据标识 ID 部分(影响雪花ID)(workerId 和 datacenterId 一起配置才能重新初始化 Sequence)
enableSqlRunner
类型:
boolean
默认值:
false
是否初始化 SqlRunner(com.baomidou.mybatisplus.extension.toolkit.SqlRunner)
sqlInjector
类型:
com.baomidou.mybatisplus.core.injector.ISqlInjector
默认值:
com.baomidou.mybatisplus.core.injector.DefaultSqlInjector
SQL注入器(starter 下支持@bean
注入)
superMapperClass
类型:
Class
默认值:
com.baomidou.mybatisplus.core.mapper.Mapper.class
通用Mapper父类(影响sqlInjector,只有这个的子类的 mapper 才会注入 sqlInjector 内的 method)
metaObjectHandler
类型:
com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
默认值:
null
元对象字段填充控制器(starter 下支持@bean
注入)
dbConfig
类型:
com.baomidou.mybatisplus.annotation.DbConfig
默认值:
null
MyBatis-Plus 全局策略中的 DB 策略配置,具体请查看 DbConfig
DbConfig
dbType(Deprecated 3.1.1,这个属性没什么用)
类型:
com.baomidou.mybatisplus.annotation.DbType
默认值:
OTHER
数据库类型,默认值为未知的数据库类型
如果值为OTHER
,启动时会根据数据库连接 url 获取数据库类型;如果不是OTHER
则不会自动获取数据库类型
idType
类型:
com.baomidou.mybatisplus.annotation.IdType
默认值:
ID_WORKER
全局默认主键类型
tablePrefix
类型:
String
默认值:
null
表名前缀
schema(since 3.1.1)
类型:
String
默认值:
null
schema
columnFormat(since 3.1.1)
类型:
String
默认值:
null
字段 format(since 3.1.1),例: %s
,(对主键无效)
tableUnderline
类型:
boolean
默认值:
true
表名、是否使用下划线命名,默认数据库表使用下划线命名
columnLike(Deprecated 3.1.1)
类型:
boolean
默认值:
false
是否开启 LIKE 查询,即根据 entity 自动生成的 where 条件中 String 类型字段 是否使用 LIKE,默认不开启
capitalMode
类型:
boolean
默认值:
false
是否开启大写命名,默认不开启
keyGenerator
类型:
com.baomidou.mybatisplus.core.incrementer.IKeyGenerator
默认值:
null
表主键生成器(starter 下支持@bean
注入)
logicDeleteValue
类型:
String
默认值:
1
逻辑已删除值,(逻辑删除下有效)
logicNotDeleteValue
类型:
String
默认值:
0
逻辑未删除值,(逻辑删除下有效)
fieldStrategy(Deprecated 3.1.2,将用下面三个新的取代)
类型:
com.baomidou.mybatisplus.annotation.FieldStrategy
默认值:
NOT_NULL
字段验证策略
tip 说明: 该策略约定了如何产出注入的sql,涉及insert
,update
以及wrapper
内部的entity
属性生成的 where 条件
insertStrategy(since 3.1.2)
类型:
com.baomidou.mybatisplus.annotation.FieldStrategy
默认值:
NOT_NULL
字段验证策略之 insert
tip 说明: 在 insert 的时候的字段验证策略 目前没有默认值,等 {@link #fieldStrategy} 完全去除掉,会给个默认值 NOT_NULL 没配则按 {@link #fieldStrategy} 为准
updateStrategy(since 3.1.2)
类型:
com.baomidou.mybatisplus.annotation.FieldStrategy
默认值:
NOT_NULL
字段验证策略之 update
tip 说明: 在 update 的时候的字段验证策略 目前没有默认值,等 {@link #fieldStrategy} 完全去除掉,会给个默认值 NOT_NULL 没配则按 {@link #fieldStrategy} 为准
selectStrategy(since 3.1.2)
类型:
com.baomidou.mybatisplus.annotation.FieldStrategy
默认值:
NOT_NULL
字段验证策略之 select
tip 说明: 在 select 的时候的字段验证策略: wrapper 根据内部 entity 生成的 where 条件 目前没有默认值,等 {@link #fieldStrategy} 完全去除掉,会给个默认值 NOT_NULL 没配则按 {@link #fieldStrategy} 为准
MybatisPlus3.X使用配置的更多相关文章
- springboot2、mybatis-plus3 一行配置实现打印sql最终填充的参数值
在application.yml中添加: # 配置slq打印日志 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.st ...
- SpringBoot2.0+Mybatis-Plus3.0+Druid1.1.10 一站式整合
SpringBoot2.0+Mybatis-Plus3.0+Druid1.1.10 一站式整合 一.先快速创建一个springboot项目,其中pom.xml加入mybatis-plus 和druid ...
- Mybatis-Plus3.0入门手册
Mybatis-Plus3.0入门手册 ref: https://blog.csdn.net/moshowgame/article/details/81008485 Mybatis-Plus简介 ...
- SpringBoot + MybatisPlus3.x 代码生成
主要参考另外两篇博文,这里表示感谢 参考一(mybatisplus3.x分页) : https://www.jianshu.com/p/2ec9337dc2b0 参考二(mybatisplus2.x升 ...
- Mybatis逆向工程和新版本MybatisPlus3.4逆向工程的使用
Mybatis和MybatisPlus3.4的使用 目录 Mybatis和MybatisPlus3.4的使用 1 RESTFUL 2 逆向工程 2.1 tkMybatis逆向工程 2.1.1 导入依赖 ...
- 配置android sdk 环境
1:下载adnroid sdk安装包 官方下载地址无法打开,没有vpn,使用下面这个地址下载,地址:http://www.android-studio.org/
- Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记
以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...
- react-router 组件式配置与对象式配置小区别
1. react-router 对象式配置 和 组件式配置 组件式配置(Redirect) ----对应---- 对象式配置(onEnter钩子) IndexRedirect -----对应-- ...
- 总结:Mac前端开发环境的搭建(配置)
新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...
随机推荐
- hbase、pig、hive配置与应用
------------------HBASE---------- [root@iClient~]#sudo yum install hbase #iClient安装Hbase客户端 [root@cM ...
- json与java对象的转换,以及struts2对json的支持,实现ajax技术
这两天学的东西有点多,今天抽个时间写下来,以此作为激励,这两天学了json,ajax,jQuery 一.使用第三方的工具java转换为json类型 首先就是java类型转换为json对象,首先要导入第 ...
- .net core 3.0 Signalr - 09 待改进&交流
## 个人心得 写博客真的比写代码累,膜拜那些坚持写博客的大佬! 有时候零散的片段比较多,没写之前感觉有千千万万要写的东西,实际写的时候发现, 好像这个没啥说的,然后就帖了个图,或者一笔带过了 ## ...
- Spring Boot 2.x基础教程:Swagger接口分类与各元素排序问题详解
之前通过Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档一文,我们学习了如何使用Swagger为Spring Boot项目自动生成API文档,有不少用户留言问了关于文档 ...
- Scala 学习笔记之函数(2)
class OldStudent extends Student { def filterName(s: String, f: String => String) = { if (s != nu ...
- ELK 学习笔记之 elasticsearch 基本查询
elasticsearch 基本查询: 基本查询: term查询: terms查询: from和size查询: match查询: match_all查询: match_phrase查询: multi_ ...
- php数字函数
is_numeric() 检查变量是否包含一个合法数字 round() 取整数,四舍五入 round(数字, 小数位) ceil() 向上取整 floor() 向下取整 range() 生成范围 ...
- kafka-0.10.2.1:Producer生产时无法自动创建Topic
集群环境: CenterOS 1台 Kafka:0.10.2.1版本. 今天在测试环境下,我们的Kafka集群工作不正常,具体现象为,使用confulentkafka向kafka集群生产消息失败,且并 ...
- redis之spring应用
前言 读本文之前,需要大家对redis有所了解,大家可以去看一下我之前分享的redis安装及简单使用这一随笔,而本文我将跟大家分享学习一下redis与spring的集成.当然,首先需要打开我们的red ...
- 洛谷 1552 [APIO2012]派遣
题目背景 在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿. 题目描述 在这个帮派里,有一名忍者被称之为Master.除了Master以外,每名忍者都有且仅有一个上级.为保密 ...