mybatis-plus在yml中配置

文章介绍了Mybatis-Plus在项目中的详细配置,包括在pom.xml中的依赖引入,以及在yml配置文件中的各种设置,如类型别名包扫描、MapperXML位置、自动驼峰命名规则、主键类型、字段策略、逻辑删除配置、执行器类型、缓存和自动映射等,这些配置用于优化数据库操作和实体类映射。

mybatis-plus在yml中的详细配置

pom配置
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>
正常使用基础配置
mybatis-plus:
  # 包扫描路径(当前项目的实体类所在位置。别名包扫描路径,通过该属性可以给包中的类注册别名,多个路径用逗号分割)
  type-aliases-package: com.xxx.xxx.xxx.model.entity
  # xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置)
  mapper-locations: classpath:mapper/*.xml
  configuration:
    # 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射
    map-underscore-to-camel-case: true
    # 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段
    # 允许在resultType="map"时映射null值
    call-setters-on-nulls: true
    # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用(包括执行结果)
    # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
      # 主键类型 AUTO:"数据库ID自增" 
      # INPUT:"用户输入ID",
      # ID_WORKER:"全局唯一ID (数字类型唯一ID)", 
      # UUID:"全局唯一ID UUID";
      id-type: auto
      # 字段策略 IGNORED:"忽略判断"  NOT_NULL:"非 NULL 判断")  NOT_EMPTY:"非空判断"
      field-strategy: NOT_EMPTY
      # 数据库类型
      db-type: MYSQL
      # 逻辑删除配置
      # 删除前
      logic-not-delete-value: 0
      # 删除后
      logic-delete-value: 1
      # 数据库表名的前缀
      table-prefix: t_
扩展配置
mybatis-plus:
  # 如果配置了该属性,则仅仅会扫描路径下以该类作为父类的域对象
  type-aliases-super-type: com.xxx.xxx
  # 枚举类 扫描路径,如果配置了该属性,会将路径下的枚举类进行注入,让实体类字段能够简单快捷的使用枚举属性
  type-enums-package: com.xxx.xxx.model
  # 项目启动会检查xml配置存在(只在开发时打开)
  check-config-location: true
  # SIMPLE:该执行器类型不做特殊的事情,为每个语句的执行创建一个新的预处理语句,REUSE:改执行器类会复用预处理语句,BATCH:该执行器类型会批量执行所有的更新语句
  executor-type: REUSE
  configuration:
    # 全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存,默认为 true
    cache-enabled: true
    # 懒加载
    aggressive-lazy-loading: true
    # MyBatis 自动映射策略,通过该配置可指定 MyBatis 是否并且如何来自动映射数据表字段与对象的属性
    # none:不启用自动映射 
    # partial:只对非嵌套的 resultMap 进行自动映射 
    # full:对所有的 resultMap 都进行自动映射
    auto-mapping-behavior: partial
    # MyBatis 自动映射时未知列或未知属性处理策略,通过该配置可指定 MyBatis 在自动映射过程中遇到未知列或者未知属性时如何处理
    # none:不做任何处理 (默认值)
    # warning:以日志的形式打印相关警告信息 
    # failing:当作映射失败处理,并抛出异常和详细信息
    auto-mapping-unknown-column-behavior: none
    # 是否允许映射结果为多个数据集
    multiple-result-sets-enabled: false
  global-config:
    db-config:
      # 表名下划线命名默认为true
      table-underline: false
      # 是否开启大写命名,默认不开启
      capital-mode: false
<think>我们在处理用户查询时,需要注意用户要求的是在yml文件中配置MyBatis-Plus的方法。根据提供的引用,我们可以总结如下: 引用[1]中展示了在yml配置文件中配置MyBatis-Plus的一部分示例,包括: - config-location: 指定MyBatis的全局配置文件 - mapper-locations: 指定mapper.xml文件的位置 - type-aliases-package: 指定实体类别名所在的包 引用[2]提到了通过配置类来注册插件(如乐观锁插件),但用户询问的是yml配置,因此我们主要关注yml中的配置项。 引用[3]提供了MyBatis-Plus的依赖,但用户已经进入配置阶段,所以重点不在依赖。 引用[4]提到了一些整合中的问题,特别是PostgreSQL的命名空间(schema)设置问题,这提示我们在配置数据库时可能需要指定schema。 因此,针对用户在yml文件中配置MyBatis-Plus的需求,我们可以整理如下: 1. 基本配置:在yml配置MyBatis-Plus的相关属性,包括全局配置文件、mapper文件位置、实体类别名包等。 2. 插件配置:通常插件是在配置类中通过@Bean注入的,但某些配置可能可以通过yml进行(例如分页插件的部分属性)。不过,乐观锁等插件还是需要在配置类中注册,这点需要注意。 3. 数据库相关配置:如数据库驱动、url、用户名、密码等,这些是标准配置。同时,对于PostgreSQL,可能需要指定schema(如引用[4]所述)。 但是,用户没有指定数据库类型,所以我们可以给出通用的配置,并指出不同数据库可能需要注意的地方。 下面是一个典型的MyBatis-Plusyml(或properties)文件中的配置示例,以yml格式展示: ```yaml # 数据源配置 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver # 根据数据库类型更换 url: jdbc:mysql://localhost:3306/db_name?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 username: root password: root # mybatis-plus配置 mybatis-plus: # 如果使用mybatis-config.xml(通常不使用,因为MyBatis-Plus推荐使用application.yml配置),则指定位置 # config-location: classpath:mybatis-config.xml # 指定mapper.xml文件的位置,多个路径用逗号分隔 mapper-locations: classpath*:/mapper/**/*.xml # 实体类别名包路径 type-aliases-package: com.example.entity # 全局配置 global-config: db-config: # 主键类型 AUTO:"数据库ID自增", INPUT:"用户输入ID", ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID"; id-type: auto # 表名前缀 table-prefix: t_ # 是否开启大写命名,默认不开启 capital-mode: false # 逻辑删除配置 # 逻辑删除字段名 logic-delete-field: deleted # 逻辑删除值(删除后的值) logic-delete-value: 1 # 逻辑未删除值 logic-not-delete-value: 0 configuration: # 开启驼峰命名自动映射 map-underscore-to-camel-case: true # 日志实现,可选:slf4j, log4j, log4j2, jdk-logging, commons-logging, stderr(控制台输出), no_logging log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` 注意点: 1. 引用[1]中提到了`mapUnderscoreToCamelCase`,在MyBatis-Plus中,这个配置在`configuration`下,我们这里配置为`true`,表示开启下划线转驼峰。 2. 引用[4]中提到PostgreSQL的命名空间问题,如果使用PostgreSQL且表不在默认的public schema下,可以在数据源url中指定,例如:`jdbc:postgresql://localhost:5432/db_name?currentSchema=your_schema`,或者在`mybatis-plus`配置中指定`schema`(但根据引用[4]的上下文,似乎是在生成代码时设置,在运行时的配置可能需要通过数据源url指定,或者在mapper文件中指定表名前加上schema)。 3. 关于插件配置,如分页插件、乐观锁插件,通常需要在配置类中通过@Bean注册。例如,引用[2]展示了乐观锁插件的配置类。 因此,如果用户需要配置插件,我们还需要提醒他们在配置类中注册。例如,配置分页插件和乐观锁插件: ```java @Configuration public class MyBatisPlusConfig { /** * 分页插件 */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 根据数据库类型选择 return interceptor; } /** * 乐观锁插件(现在MyBatis-Plus 3.4.0以上版本,乐观锁插件已经整合在MybatisPlusInterceptor中) * 所以可以这样配置: */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); // 分页插件 interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 乐观锁插件 interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); return interceptor; } } ``` 需要注意的是,在同一个MybatisPlusInterceptor中可以添加多个插件。 总结:用户询问的是yml中的配置,我们主要给出yml配置的部分,同时提醒用户插件配置需要在Java配置类中完成。 最后,根据用户要求,我们生成相关问题: §§相关问题§§ 1. MyBatis-Plusyml中如何配置逻辑删除? 2. 如何配置MyBatis-Plus的分页插件? 3. MyBatis-Plus支持哪些数据库?如何配置不同的数据库? 4. 如何在MyBatis-Plus配置多数据源? </think>基于引用内容,以下是 MyBatis-Plus 在 YAML 文件中的详细配置方法及示例: ### 一、核心配置项(YAML 格式) ```yaml mybatis-plus: # 1. 指定MyBatis全局配置文件 config-location: classpath:mybatis-config.xml # 2. 配置Mapper XML文件路径 mapper-locations: classpath*:mybatis/mapper/*.xml # 3. 实体类别名包扫描 type-aliases-package: com.example.entity # 4. 全局配置 global-config: db-config: # 开启下划线转驼峰命名 map-underscore-to-camel-case: true # 逻辑删除字段配置 logic-delete-field: deleted logic-delete-value: 1 logic-not-delete-value: 0 # 5. MyBatis原生配置 configuration: # 自动映射行为配置 auto-mapping-behavior: full # 日志实现类 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` ### 二、关键配置说明 1. **别名配置**(配合 `@Alias` 注解) ```java @Alias("user") // 实体类注解 public class User {...} ``` XML 使用别名: ```xml <select id="findById" resultType="user"> ... </select> ``` 2. **插件配置**(需在 Java 配置类声明) ```java @Configuration public class MyBatisPlusConfig { @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); // 乐观锁插件 } } ``` 3. **多数据源注意事项** PostgreSQL 需指定命名空间(引用[4]): ```yaml spring: datasource: url: jdbc:postgresql://host/db?currentSchema=your_schema # 关键参数 ``` ### 三、完整配置示例 ```yaml spring: datasource: driver-class-name: org.postgresql.Driver url: jdbc:postgresql://localhost:5432/test_db username: postgres password: 123456 mybatis-plus: mapper-locations: classpath*:mapper/**/*.xml type-aliases-package: com.example.entity configuration: map-underscore-to-camel-case: true ``` > **注意**: > - 插件(如分页/乐观锁)需通过 `@Bean` 注入(引用[2]) > - PostgreSQL 需在 URL 中指定 `currentSchema`(引用[4]) > - 实体类需用 `@Alias` 定义短名称(引用[1])
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值