MybatisPlus——常见配置

本文详细介绍了MybatisPlus的配置项,包括别名扫描包、mapper映射文件位置、驼峰命名规则、缓存、主键策略、更新策略等,以及各个配置选项的作用和默认值。
摘要由CSDN通过智能技术生成

MybatisPlus——常见配置

MybatisPlus的配置继承了Mybatis原生配置和一些自己特有的配置

mybatis-plus:
  type-aliases-package: com.example.demo.entity #别名扫描包
  mapper-locations: classpath*:mapper/*.xml #mapper映射文件
  configuration:
    map-underscore-to-camel-case: true #开启驼峰命名
    cache-enabled: false #禁用缓存
  global-config:
    db-config:
      id-type: auto #主键策略,默认为自增
      update-strategy: not_null #更新策略,默认为空,只更新非空字段

 以下配置内容选自mybatisplus官网

使用配置 | MyBatis-Plus

configLocation

  • 类型:String
  • 默认值:null

#mapperLocations

  • 类型:String[]
  • 默认值:["classpath*:/mapper/**/*.xml"]

MyBatis Mapper 所对应的 XML 文件位置,如果您在 Mapper 中有自定义方法(XML 中有自定义实现),需要进行该配置,告诉 Mapper 所对应的 XML 文件位置

注意

Maven 多模块项目的扫描路径需以 classpath*: 开头 (即加载多个 jar 包下的 XML 文件)

  • 类型:String
  • 默认值:null

MyBaits 别名包扫描路径,通过该属性可以给包中的类注册别名,注册后在 Mapper 对应的 XML 文件中可以直接使用类名,而不用使用全限定的类名(即 XML 中调用的时候不用包含包名)

#typeAliasesSuperType

  • 类型:Class<?>
  • 默认值:null

该配置请和 typeAliasesPackage 一起使用,如果配置了该属性,则仅仅会扫描路径下以该类作为父类的域对象

#typeHandlersPackage

  • 类型:String
  • 默认值:null

TypeHandler 扫描路径,如果配置了该属性,SqlSessionFactoryBean 会把该包下面的类注册为对应的 TypeHandler

提示

TypeHandler 通常用于自定义类型转换。

#typeEnumsPackage

  • 类型:String
  • 默认值:null

枚举类 扫描路径,如果配置了该属性,会将路径下的枚举类进行注入,让实体类字段能够简单快捷的使用枚举属性

注意

从 3.5.2 开始该配置无效,无需要配置即可使用 "通用枚举" 功能

#checkConfigLocation Spring Boot Only

  • 类型:boolean
  • 默认值:false

启动时是否检查 MyBatis XML 文件的存在,默认不检查

#executorType Spring Boot Only

  • 类型:ExecutorType
  • 默认值:simple

通过该属性可指定 MyBatis 的执行器,MyBatis 的执行器总共有三种:

  • ExecutorType.SIMPLE:该执行器类型不做特殊的事情,为每个语句的执行创建一个新的预处理语句(PreparedStatement)
  • ExecutorType.REUSE:该执行器类型会复用预处理语句(PreparedStatement)
  • ExecutorType.BATCH:该执行器类型会批量执行所有的更新语句

#configurationProperties

  • 类型:Properties
  • 默认值:null

指定外部化 MyBatis Properties 配置,通过该配置可以抽离配置,实现不同环境的配置部署

#configuration

  • 类型:Configuration
  • 默认值:null

原生 MyBatis 所支持的配置,具体请查看 Configuration

#globalConfig
  • 类型:com.baomidou.mybatisplus.core.config.GlobalConfig
  • 默认值:GlobalConfig::new

MyBatis-Plus 全局策略配置,具体请查看 GlobalConfig

#Configuration

本部分(Configuration)的配置大都为 MyBatis 原生支持的配置,这意味着您可以通过 MyBatis XML 配置文件的形式进行配置。

#mapUnderscoreToCamelCase

  • 类型:boolean
  • 默认值:true

是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN(下划线命名) 到经典 Java 属性名 aColumn(驼峰命名) 的类似映射。

注意

此属性在 MyBatis 中原默认值为 false,在 MyBatis-Plus 中,此属性也将用于生成最终的 SQL 的 select body

如果您的数据库命名符合规则无需使用 @TableField 注解指定数据库字段名

#defaultEnumTypeHandler

  • 类型:Class<? extends TypeHandler>
  • 默认值:org.apache.ibatis.type.EnumTypeHandler

默认枚举处理类,如果配置了该属性,枚举将统一使用指定处理器进行处理

提示

  • org.apache.ibatis.type.EnumTypeHandler : 存储枚举的名称
  • org.apache.ibatis.type.EnumOrdinalTypeHandler : 存储枚举的索引
  • com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler : 枚举类需要实现 IEnum 接口或字段标记@EnumValue 注解.(3.1.2 以下版本为 EnumTypeHandler)
  • com.baomidou.mybatisplus.extension.handlers.EnumAnnotationTypeHandler: 枚举类字段需要标记@EnumValue 注解

注意

从 3.5.2 开始 默认枚举处理器为 CompositeEnumTypeHandler 会对定义为mp通用枚举的枚举(实现IEnum了或加了EnumValue注解) 在内部使用MybatisEnumTypeHandler处理枚举 其他的枚举使用内部属性 defaultEnumTypeHandler(默认为org.apache.ibatis.type.EnumTypeHandler)进行处理 此配置仅改变 CompositeEnumTypeHandler#defaultEnumTypeHandler的值

#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:当作映射失败处理,并抛出异常和详细信息

#localCacheScope

  • 类型:String
  • 默认值:SESSION

Mybatis 一级缓存,默认为 SESSION。

  • SESSION session 级别缓存,同一个 session 相同查询语句不会再次查询数据库
  • STATEMENT 关闭一级缓存

单服务架构中(有且仅有只有一个程序提供相同服务),一级缓存开启不会影响业务,只会提高性能。 微服务架构中需要关闭一级缓存,原因:Service1 先查询数据,若之后 Service2 修改了数据,之后 Service1 又再次以同样的查询条件查询数据,因走缓存会出现查处的数据不是最新数据

#cacheEnabled

  • 类型:boolean
  • 默认值:true

开启 Mybatis 二级缓存,默认为 true。

#callSettersOnNulls

  • 类型:boolean
  • 默认值:false

指定当结果集中值为 null 的时候是否调用映射对象的 Setter(Map 对象时为 put)方法,通常运用于有 Map.keySet() 依赖或 null 值初始化的情况。

通俗的讲,即 MyBatis 在使用 resultMap 来映射查询结果中的列,如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段,这就导致在调用到该字段的时候由于没有映射,取不到而报空指针异常。

当您遇到类似的情况,请针对该属性进行相关配置以解决以上问题。

注意

基本类型(int、boolean 等)是不能设置成 null 的。

#configurationFactory

  • 类型:Class<?>
  • 默认值:null

指定一个提供 Configuration 实例的工厂类。该工厂生产的实例将用来加载已经被反序列化对象的懒加载属性值,其必须包含一个签名方法static Configuration getConfiguration()。(从 3.2.3 版本开始)

#GlobalConfig

  • 类型:boolean
  • 默认值:true

是否控制台 print mybatis-plus 的 LOGO

#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注入)

#identifierGenerator(since 3.3.0)

  • 类型:com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator
  • 默认值:com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator

Id 生成器(starter 下支持@bean注入)

#dbConfig

  • 类型:com.baomidou.mybatisplus.core.config.GlobalConfig$DbConfig
  • 默认值:null

MyBatis-Plus 全局策略中的 DB 策略配置,具体请查看 DbConfig

#DbConfig

#idType

  • 类型:com.baomidou.mybatisplus.annotation.IdType
  • 默认值:ASSIGN_ID

全局默认主键类型

#tablePrefix

  • 类型:String
  • 默认值:null

表名前缀

#schema

  • 类型:String
  • 默认值:null

schema

#columnFormat

  • 类型:String
  • 默认值:null

字段 format,例: %s,(对主键无效)

#tableFormat (since 3.5.3.2 +)

  • 类型:String
  • 默认值:null

字段 format,例: %s

#propertyFormat(since 3.3.0)

  • 类型:String
  • 默认值:null

entity 的字段(property)的 format,只有在 column as property 这种情况下生效例: %s,(对主键无效)

#tableUnderline

  • 类型:boolean
  • 默认值:true

表名是否使用驼峰转下划线命名,只对表名生效

#capitalMode

  • 类型:boolean
  • 默认值:false

大写命名,对表名和字段名均生效

#keyGenerator

  • 类型:com.baomidou.mybatisplus.core.incrementer.IKeyGenerator
  • 默认值:null

表主键生成器(starter 下支持@bean注入)

#logicDeleteField

  • 类型:String
  • 默认值:null

全局的 entity 的逻辑删除字段属性名,(逻辑删除下有效)

#logicDeleteValue

  • 类型:String
  • 默认值:1

逻辑已删除值,(逻辑删除下有效)

#logicNotDeleteValue

  • 类型:String
  • 默认值:0

逻辑未删除值,(逻辑删除下有效)

#insertStrategy

  • 类型:com.baomidou.mybatisplus.annotation.FieldStrategy
  • 默认值:NOT_NULL

字段验证策略之 insert,在 insert 的时候的字段验证策略

#updateStrategy

  • 类型:com.baomidou.mybatisplus.annotation.FieldStrategy
  • 默认值:NOT_NULL

字段验证策略之 update,在 update 的时候的字段验证策略

#whereStrategy

  • 类型:com.baomidou.mybatisplus.annotation.FieldStrategy
  • 默认值:NOT_NULL

字段验证策略之 select,在 select 的时候的字段验证策略既 wrapper 根据内部 entity 生成的 where 条件

 

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L.2626

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值