跳转到内容

使用配置

MyBatis-Plus 提供了丰富的配置选项,以满足不同用户的需求。这些配置中,一部分继承自 MyBatis 原生支持的配置,另一部分则是 MyBatis-Plus 特有的扩展配置。

使用方式

Spring Boot 配置

在 Spring Boot 项目中,可以通过 application.ymlapplication.properties 文件来配置 MyBatis-Plus。

mybatis-plus:
configuration:
# MyBatis 配置
map-underscore-to-camel-case: true
global-config:
# 全局配置
db-config:
# 数据库配置
id-type: auto

Spring MVC 配置

在传统的 Spring MVC 项目中,可以通过 XML 配置文件来配置 MyBatis-Plus。

<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath*:mapper/**/*.xml"/>
<property name="typeAliasesPackage" value="com.your.domain"/>
<!-- 其他配置 -->
</bean>

Base

configLocation

  • 类型String
  • 默认值null

指定 MyBatis 配置文件的位置。如果有单独的 MyBatis 配置文件,应将其路径配置到 configLocation

配置示例

mybatis-plus:
config-location: classpath:/mybatis-config.xml

mapperLocations

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

指定 MyBatis Mapper 对应的 XML 文件位置。如果在 Mapper 中有自定义方法,需要配置此项。

配置示例

mybatis-plus:
mapper-locations: classpath:/mapper/**.xml

typeAliasesPackage

  • 类型String
  • 默认值null

指定 MyBatis 别名包扫描路径,用于给包中的类注册别名。注册后,在 Mapper 对应的 XML 文件中可以直接使用类名,无需使用全限定类名。

配置示例

mybatis-plus:
type-aliases-package: com.your.domain

typeAliasesSuperType

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

typeAliasesPackage 一起使用,仅扫描指定父类的子类。

配置示例

mybatis-plus:
type-aliases-super-type: com.your.domain.BaseEntity

typeHandlersPackage

  • 类型String
  • 默认值null

指定 TypeHandler 扫描路径,用于注册自定义类型转换器。

配置示例

mybatis-plus:
type-handlers-package: com.your.typehandlers

typeEnumsPackage

  • 类型String
  • 默认值null

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

checkConfigLocation Spring Boot Only

  • 类型boolean
  • 默认值false

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

配置示例

mybatis-plus:
check-config-location: true

executorType Spring Boot Only

  • 类型ExecutorType
  • 默认值simple

指定 MyBatis 的执行器类型,包括 SIMPLEREUSEBATCH

配置示例

mybatis-plus:
executor-type: reuse

configurationProperties

  • 类型Properties
  • 默认值null

指定外部化 MyBatis Properties 配置,用于抽离配置,实现不同环境的配置部署。

配置示例

mybatis-plus:
configuration-properties: classpath:/mybatis-properties.properties

configuration

  • 类型Configuration
  • 默认值null

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

globalConfig

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

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

配置示例

mybatis-plus:
global-config:
db-config:
table-prefix: tbl_
id-type: auto

Configuration

MyBatis-Plus 的 Configuration 配置继承自 MyBatis 原生支持的配置,这意味着您可以通过 MyBatis XML 配置文件的形式进行配置,也可以通过 Spring Boot 或 Spring MVC 的配置文件进行设置。

mapUnderscoreToCamelCase

  • 类型boolean
  • 默认值true

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

配置示例

mybatis-plus:
configuration:
map-underscore-to-camel-case: true

defaultEnumTypeHandler

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

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

配置示例

mybatis-plus:
configuration:
default-enum-type-handler: org.apache.ibatis.type.EnumOrdinalTypeHandler

aggressiveLazyLoading

  • 类型boolean
  • 默认值true

当设置为 true 时,懒加载的对象可能被任何懒属性全部加载,否则,每个属性都按需加载。需要和 lazyLoadingEnabled 一起使用。

配置示例

mybatis-plus:
configuration:
aggressive-lazy-loading: false

autoMappingBehavior

  • 类型AutoMappingBehavior
  • 默认值partial

MyBatis 自动映射策略,通过该配置可指定 MyBatis 是否并且如何来自动映射数据表字段与对象的属性。

  • AutoMappingBehavior.NONE:不启用自动映射
  • AutoMappingBehavior.PARTIAL:只对非嵌套的 resultMap 进行自动映射
  • AutoMappingBehavior.FULL:对所有的 resultMap 都进行自动映射

配置示例

mybatis-plus:
configuration:
auto-mapping-behavior: full

autoMappingUnknownColumnBehavior

  • 类型AutoMappingUnknownColumnBehavior
  • 默认值NONE

MyBatis 自动映射时未知列或未知属性处理策略,通过该配置可指定 MyBatis 在自动映射过程中遇到未知列或者未知属性时如何处理。

  • AutoMappingUnknownColumnBehavior.NONE:不做任何处理 (默认值)
  • AutoMappingUnknownColumnBehavior.WARNING:以日志的形式打印相关警告信息
  • AutoMappingUnknownColumnBehavior.FAILING:当作映射失败处理,并抛出异常和详细信息

配置示例

mybatis-plus:
configuration:
auto-mapping-unknown-column-behavior: warning

localCacheScope

  • 类型String
  • 默认值SESSION

Mybatis 一级缓存,默认为 SESSION。

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

配置示例

mybatis-plus:
configuration:
local-cache-scope: statement

cacheEnabled

  • 类型boolean
  • 默认值true

是否开启 MyBatis 二级缓存。

配置示例

mybatis-plus:
configuration:
cache-enabled: false

callSettersOnNulls

  • 类型boolean
  • 默认值false

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

配置示例

mybatis-plus:
configuration:
call-setters-on-nulls: true

configurationFactory

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

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

配置示例

mybatis-plus:
configuration:
configuration-factory: com.your.config.MyConfigurationFactory

GlobalConfig

GlobalConfig 是 MyBatis-Plus 提供的全局策略配置,它允许开发者对 MyBatis-Plus 的行为进行全局性的定制。

  • 类型boolean
  • 默认值true

控制是否在控制台打印 MyBatis-Plus 的 LOGO。

配置示例

mybatis-plus:
global-config:
banner: false

enableSqlRunner

  • 类型boolean
  • 默认值false

控制是否初始化 SqlRunnercom.baomidou.mybatisplus.extension.toolkit.SqlRunner)。

配置示例

mybatis-plus:
global-config:
enable-sql-runner: true

sqlInjector

  • 类型com.baomidou.mybatisplus.core.injector.ISqlInjector
  • 默认值com.baomidou.mybatisplus.core.injector.DefaultSqlInjector

SQL 注入器,用于注入 MyBatis-Plus 提供的通用方法。Starter 下支持@Bean注入。

配置示例

mybatis-plus:
global-config:
sql-injector: com.baomidou.mybatisplus.core.injector.DefaultSqlInjector
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
return interceptor;
}

superMapperClass

  • 类型Class
  • 默认值com.baomidou.mybatisplus.core.mapper.Mapper.class

通用 Mapper 父类,只有该父类的子类 Mapper 才会注入 sqlInjector 内的方法。

metaObjectHandler

  • 类型com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
  • 默认值null

元对象字段填充控制器,用于自动填充实体类的字段。Starter 下支持@Bean注入。

配置示例

mybatis-plus:
global-config:
meta-object-handler: com.example.MyMetaObjectHandler
@Bean
public MetaObjectHandler metaObjectHandler() {
return new MyMetaObjectHandler();
}

identifierGenerator Since 3.3.0

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

Id 生成器,用于生成实体类的唯一标识。Starter 下支持@Bean注入。

配置示例

mybatis-plus:
global-config:
identifier-generator: com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator
@Bean
public IdentifierGenerator identifierGenerator() {
return new CustomIdentifierGenerator();
}

dbConfig

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

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

配置示例

mybatis-plus:
global-config:
db-config:
table-prefix: tbl_
id-type: ASSIGN_ID

DbConfig

idType

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

全局默认主键类型。

  • IdType.AUTO:使用数据库自增 ID 作为主键。
  • IdType.NONE:无特定生成策略,如果全局配置中有 IdType 相关的配置,则会跟随全局配置。
  • IdType.INPUT:在插入数据前,由用户自行设置主键值。
  • IdType.ASSIGN_ID:自动分配 ID,适用于 LongIntegerString 类型的主键。默认使用雪花算法通过 IdentifierGeneratornextId 实现。 @since 3.3.0
  • IdType.ASSIGN_UUID:自动分配 UUID,适用于 String 类型的主键。默认实现为 IdentifierGeneratornextUUID 方法。 @since 3.3.0

配置示例

mybatis-plus:
global-config:
db-config:
id-type: ASSIGN_ID

tablePrefix

  • 类型:String
  • 默认值:null

表名前缀

配置示例

mybatis-plus:
global-config:
db-config:
table-prefix: tbl_

schema

  • 类型:String
  • 默认值:null

指定数据库的 Schema 名称,通常不用设置。

配置示例

mybatis-plus:
global-config:
db-config:
schema: my_schema

columnFormat

  • 类型:String
  • 默认值:null

用于在生成 SQL 时对字段名进行格式化,例如添加前缀或后缀,对主键无效,例: %s

配置示例

mybatis-plus:
global-config:
db-config:
column-format: %s_field

tableFormat Since 3.5.3.2

  • 类型:String
  • 默认值:null

在生成 SQL 时对表名进行格式化,例: %s

配置示例

mybatis-plus:
global-config:
db-config:
table-format: tbl_%s

propertyFormat Since 3.3.0

  • 类型:String
  • 默认值:null

用于在 Entity 的字段映射到数据库字段时进行格式化,只有在 column as property 这种情况下生效,对主键无效,例: %s

配置示例

mybatis-plus:
global-config:
db-config:
property-format: %s_prop

tableUnderline

  • 类型:boolean
  • 默认值:true

控制表名是否使用驼峰转下划线命名。

配置示例

mybatis-plus:
global-config:
db-config:
table-underline: false

capitalMode

  • 类型:boolean
  • 默认值:false

控制表名和字段名是否使用大写命名。

配置示例

mybatis-plus:
global-config:
db-config:
capital-mode: true

keyGenerator

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

自定义表主键生成器。Starter 下支持@Bean注入。

配置示例

mybatis-plus:
global-config:
db-config:
key-generator: com.example.CustomKeyGenerator
@Bean
public IKeyGenerator keyGenerator() {
return new CustomKeyGenerator();
}

logicDeleteField

  • 类型:String
  • 默认值:null

全局的 Entity 逻辑删除字段属性名,仅在逻辑删除功能打开时有效。

配置示例

mybatis-plus:
global-config:
db-config:
logic-delete-field: deleted

logicDeleteValue

  • 类型:String
  • 默认值:1

逻辑已删除值,仅在逻辑删除功能打开时有效。

配置示例

mybatis-plus:
global-config:
db-config:
logic-delete-value: true

logicNotDeleteValue

  • 类型:String
  • 默认值:0

逻辑未删除值,仅在逻辑删除功能打开时有效。

配置示例

mybatis-plus:
global-config:
db-config:
logic-not-delete-value: false

insertStrategy

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

控制字段在 Insert 时的字段验证策略。

  • FieldStrategy.DEFAULT:遵循全局配置的策略。如果全局配置未指定,默认行为是仅在字段值不为 NULL 时插入该字段。
  • FieldStrategy.ALWAYS:总是插入该字段,无论字段值是否为 NULL。
  • FieldStrategy.NOT_NULL:仅在字段值不为 NULL 时插入该字段。
  • FieldStrategy.NOT_EMPTY:仅在字段值不为空(对于字符串类型)或不为 NULL(对于其他类型)时插入该字段。
  • FieldStrategy.NEVER:从不插入该字段,即使字段值不为 NULL。
  • FieldStrategy.IGNORED: 忽略判断,效果等同于”ALWAYS” @Deprecated

配置示例

mybatis-plus:
global-config:
db-config:
insert-strategy: NEVER

updateStrategy

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

控制字段在 Update 时的字段验证策略。

配置示例

mybatis-plus:
global-config:
db-config:
update-strategy: IGNORED

whereStrategy

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

控制字段在 Update 时的字段验证策略。既 Wrapper 根据内部 Entity 生成的 Where 条件。

配置示例

mybatis-plus:
global-config:
db-config:
where-strategy: ALWAYS
Baomidou

© 2016-2024 Baomidou™. All Rights Reserved.

Power by Astro Starlight | Sponsored by JetBrains

渝ICP备2021000141号-1 | 渝公网安备50011302222097