MyBatis-Plus YAML配置全过程

 更新时间:2026年06月16日 09:16:48   作者:Full Stack Developme  
这段配置示例详细介绍了MyBatis-Plus的核心配置项,包括基础配置、分页插件配置、多环境配置等,帮助开发者快速搭建高效的数据访问层,重点配置项如全局主键类型、逻辑删除字段、分页插件配置等,确保配置灵活且高效

一、基础配置示例

# application.yml
mybatis-plus:
  # 全局配置
  global-config:
    # 是否打印banner
    banner: true
    # 数据库相关配置
    db-config:
      # 主键类型 (AUTO:数据库自增, INPUT:手动输入, ASSIGN_ID:雪花算法, ASSIGN_UUID:UUID)
      id-type: auto
      # 表名是否使用下划线命名 (默认:true)
      table-underline: true
      # 逻辑删除字段名
      logic-delete-field: deleted
      # 逻辑删除值(默认:1)
      logic-delete-value: 1
      # 逻辑未删除值(默认:0)
      logic-not-delete-value: 0
      # 插入时是否自动填充字段
      insert-strategy: not_null
      # 更新时是否自动填充字段
      update-strategy: not_null
      # 查询时是否自动填充字段
      where-strategy: not_null
      # 数据库类型
      db-type: mysql
    # 刷新mapper
    refresh-mapper: true
  # 配置mapper.xml文件位置
  mapper-locations: 
    - classpath*:/mapper/**/*.xml
    - classpath*:/mybatis/mapper/*.xml
  # 实体类包路径(用于别名)
  type-aliases-package: com.example.demo.entity
  # TypeHandler包路径
  type-handlers-package: com.example.demo.handler
  # 配置MyBatis基础配置
  configuration:
    # 开启驼峰命名转换
    map-underscore-to-camel-case: true
    # 开启二级缓存
    cache-enabled: true
    # 开启延迟加载
    lazy-loading-enabled: true
    # 积极懒加载(false表示按需加载)
    aggressive-lazy-loading: false
    # 开启sql日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    # 默认执行器(REUSE:重用预处理语句)
    default-executor-type: reuse
    # 是否开启自动映射
    auto-mapping-behavior: partial
    # 是否允许JDBC生成主键
    use-generated-keys: true
  # 配置类型处理器包
  type-enums-package: com.example.demo.enums

二、分页插件配置

mybatis-plus:
  # 分页插件配置
  configuration:
    # 分页方言
    call-setters-on-nulls: true
  # 全局分页配置
  global-config:
    db-config:
      # 分页大小
      pagination-interceptor:
        # 默认每页条数
        default-page-size: 10
        # 最大每页条数
        max-limit: 1000

三、多环境配置示例

# application-dev.yml (开发环境)
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    banner: true
    db-config:
      logic-delete-value: 1
      logic-not-delete-value: 0
# application-prod.yml (生产环境)
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
  global-config:
    banner: false
    db-config:
      logic-delete-value: 1
      logic-not-delete-value: 0

四、完整配置参数说明表

配置项说明默认值可选值
global-config.banner是否打印bannertruetrue/false
global-config.refresh-mapper是否刷新mapperfalsetrue/false
global-config.db-config.id-type全局主键类型ASSIGN_IDAUTO, INPUT, ASSIGN_ID, ASSIGN_UUID, NONE
global-config.db-config.table-underline表名、字段名下划线转驼峰truetrue/false
global-config.db-config.logic-delete-field逻辑删除字段名deleted自定义字段名
global-config.db-config.logic-delete-value逻辑删除值1任意值
global-config.db-config.logic-not-delete-value逻辑未删除值0任意值
global-config.db-config.db-type数据库类型UNKNOWNMYSQL, ORACLE, SQLSERVER, POSTGRE_SQL等
mapper-locationsMapper XML文件位置classpath:/mapper/**/.xml自定义路径
type-aliases-package实体类包路径null包路径
type-handlers-packageTypeHandler包路径null包路径
configuration.map-underscore-to-camel-case驼峰命名转换truetrue/false
configuration.cache-enabled二级缓存开关truetrue/false
configuration.lazy-loading-enabled延迟加载开关falsetrue/false
configuration.log-impl日志实现StdOutImpl, Slf4jImpl等
configuration.default-executor-type默认执行器类型SIMPLESIMPLE, REUSE, BATCH
configuration.auto-mapping-behavior自动映射行为PARTIALNONE, PARTIAL, FULL

五、常用组合配置示例

1. MySQL开发环境配置

mybatis-plus:
  mapper-locations: classpath*:/mapper/**/*.xml
  type-aliases-package: com.example.entity
  global-config:
    db-config:
      id-type: auto
      logic-delete-field: deleted
      logic-delete-value: 1
      logic-not-delete-value: 0
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    cache-enabled: false

2. Oracle生产环境配置

mybatis-plus:
  mapper-locations: classpath*:/mapper/oracle/**/*.xml
  type-aliases-package: com.example.entity
  global-config:
    db-config:
      id-type: input
      db-type: oracle
      logic-delete-field: is_deleted
      logic-delete-value: Y
      logic-not-delete-value: N
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
    cache-enabled: true

六、注意事项

  1. 配置优先级:XML配置 > YAML配置 > 默认配置

  2. 逻辑删除:需要在实体类对应字段添加 @TableLogic 注解

  3. 分页插件:需要单独配置 PaginationInterceptor Bean

  4. 性能优化:生产环境关闭SQL日志输出

  5. 版本兼容:不同版本配置项可能有差异,建议查阅对应版本文档

这个配置涵盖了MyBatis-Plus的大部分常用配置,可以根据实际项目需求进行调整。

七、总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring Boot集成validation实现参数校验功能

    Spring Boot集成validation实现参数校验功能

    Bean Validation 是一个运行时的数据验证框架,在验证之后验证的错误信息会被马上返回,这篇文章主要介绍了Spring Boot集成validation实现参数校验功能,需要的朋友可以参考下
    2024-05-05
  • Java代码块与代码加载顺序原理详解

    Java代码块与代码加载顺序原理详解

    这篇文章主要介绍了Java代码块与代码加载顺序原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Java跳出多重嵌套循环过程解析

    Java跳出多重嵌套循环过程解析

    这篇文章主要介绍了Java跳出多重嵌套循环过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java与Spring boot后端项目Bug超全总结

    Java与Spring boot后端项目Bug超全总结

    Spring Boot是一个开源的 Java 开发框架,它的目的是简化Spring应用程序的开发和部署,下面这篇文章主要给大家介绍了关于Java与Spring boot后端项目Bug的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Springboot配置端口号全过程

    Springboot配置端口号全过程

    Springboot项目可以通过application.yml、application.properties或代码指定端口号,2.x版本以上EmbeddedServletContainerCustomizer已被替代,CMD启动可指定端口号,配置加载顺序依次为yml、properties、命令行
    2026-05-05
  • Java深度优先遍历解决排列组合问题详解

    Java深度优先遍历解决排列组合问题详解

    这篇文章主要介绍了Java深度优先遍历解决排列组合问题详解,深度优先搜索是递归过程,带有回退操作,因此需要使用栈存储访问的路径信息,当访问到的当前顶点没有可以前进的邻接顶点时,需要进行出栈操作,将当前位置回退至出栈元素位置,需要的朋友可以参考下
    2024-01-01
  • Java线程组与未处理异常实例分析

    Java线程组与未处理异常实例分析

    这篇文章主要介绍了Java线程组与未处理异常,结合实例形式分析了java线程组处理异常的相关技巧与操作注意事项,需要的朋友可以参考下
    2019-09-09
  • springboot启动扫描不到dao层接口的解决方案

    springboot启动扫描不到dao层接口的解决方案

    这篇文章主要介绍了springboot启动扫描不到dao层接口的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java中list集合为空或为null的区别说明

    Java中list集合为空或为null的区别说明

    这篇文章主要介绍了Java中list集合为空或为null的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 如何修改jar包中源码的实现方法

    如何修改jar包中源码的实现方法

    这篇文章主要介绍了如何通过重写Java类方法和修改资源文件来改造第三方JAR包,并提供了一个详细的步骤指南,包括准备工作、重写类方法、修改资源文件、重新打包JAR以及验证改造效果,需要的朋友可以参考下
    2025-05-05

最新评论