MyBatisPlus--使用配置

基本配置

SpringBoot:

mybatis-plus:
  ......
  configuration:
    ......
  global-config:
    ......
    db-config:
      ...... 

SpringMVC:

<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 中.

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

typeAliasesPackage:

  • 类型:String
  • 默认值:null

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

typeAliasesSuperType:

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

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

typeHandlersPackage:

  • 类型:String
  • 默认值:null

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

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

typeEnumsPackage:

  • 类型:String
  • 默认值:null

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

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:

  • 类型:GlobalConfig
  • 默认值:null

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注解(已经过期)

aggressiveLazyLoading:

  • 类型:boolean
  • 默认值:true

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

autoMappingBehavior:

  • 类型:AutoMappingBehavior
  • 默认值:partial

MyBatis 自动映射策略,通过该配置可指定 MyBatis 是否并且如何来自动映射数据表字段与对象的属性,总共有 3 种可选值:

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

autoMappingUnknownColumnBehavior:

  • 类型:AutoMappingUnknownColumnBehavior
  • 默认值:NONE

MyBatis 自动映射时未知列或未知属性处理策略,通过该配置可指定 MyBatis 在自动映射过程中遇到未知列或者未知属性时如何处理,总共有 3 种可选值:

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

cacheEnabled:

  • 类型:boolean
  • 默认值:true

全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存,默认为 true。

callSettersOnNulls:

  • 类型:boolean
  • 默认值:false

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

configurationFactory:

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

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

GlobalConfig

banner:

  • 类型: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注入)

idGenerator(since 3.3.0):

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

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

dbConfig:

  • 类型:com.baomidou.mybatisplus.annotation.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,(对主键无效)

tableUnderline:

  • 类型:boolean
  • 默认值:true

表名、是否使用下划线命名,默认数据库表使用下划线命名

capitalMode:

  • 类型:boolean
  • 默认值:false

是否开启大写命名,默认不开启

keyGenerator:

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

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

logicDeleteValue:

  • 类型:String
  • 默认值:1

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

logicNotDeleteValue:

  • 类型:String
  • 默认值:0

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

insertStrategy:

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

字段验证策略之 insert

说明:
在 insert 的时候的字段验证策略 目前没有默认值,等 {@link #fieldStrategy} 完全去除掉,会给个默认值 NOT_NULL 没配则按 {@link #fieldStrategy} 为准

updateStrategy:

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

字段验证策略之 update

说明:
在 update 的时候的字段验证策略 目前没有默认值,等 {@link #fieldStrategy} 完全去除掉,会给个默认值 NOT_NULL 没配则按 {@link #fieldStrategy} 为准

selectStrategy(since 3.1.2):

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

字段验证策略之 select

说明:
在 select 的时候的字段验证策略: wrapper 根据内部 entity 生成的 where 条件 目前没有默认值,等 {@link #fieldStrategy} 完全去除掉,会给个默认值 NOT_NULL 没配则按 {@link #fieldStrategy} 为准

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MyBatis Plus 是一个增强的 MyBatis 框架,提供了许多常用的注解来简化操作。以下是一些常用的 MyBatis Plus 注解: - `@TableName`:标注实体类对应的数据库表名。 - `@TableId`:标注实体类中对应的主键字段。 - `@TableField`:标注实体类中对应的数据库字段。 - `@Version`:标注乐观锁字段。 - `@Transient`:标注不需要映射到数据库表中的字段。 - `@KeySequence`:标注使用数据库序列生成主键的实体类。 - `@SqlParser`:标注是否需要 MyBatis Plus 的执行分析插件。 ### 回答2: MyBatisPlus是一个基于MyBatis的轻量级ORM框架,提供了一些常用注解来简化数据库操作。 1. @TableName:用于指定实体类对应的数据库表名,可以在类级别上使用。 2. @TableId:用于指定实体类的主键字段,并可以设置主键生成策略。 3. @TableField:用于指定实体类字段与数据库表字段的映射关系,可以指定字段名、是否进行主键策略等。 4. @Version:用于实现乐观锁,指定实体类中的版本字段。 5. @EnumValue:用于枚举字段与数据库中存储值的映射关系。 6. @TableLogic:用于逻辑删除,实体类中指定一个逻辑删除的字段。 7. @KeySequence:用于指定主键序列的名称,主要用于Oracle数据库。 8. @SqlParser:用于指定在进行SQL解析时的一些属性,如过滤条件等。 9. @SqlJoin:用于指定查询时的多表关联查询。 10. @SqlStatement:用于自定义SQL的注解,可以指定SQL语句和对应的操作类型。 这些注解可以在实体类中使用,通过对实体类进行注解配置MyBatisPlus可以自动根据注解生成对应的SQL语句,简化了数据库操作的编写。同时,这些注解提供了一些额外的功能,如乐观锁、逻辑删除等,方便开发者进行数据库操作和管理。总之,MyBatisPlus的常用注解可以简化开发者对数据库的操作,提高开发效率。 ### 回答3: MyBatisPlus是一个用于简化MyBatis操作的开源框架,它提供了许多常用的注解来增强MyBatis的功能,使开发更加便捷和高效。 1. @TableName注解:用于标识实体类与数据库表之间的映射关系,通过指定表名可以方便地进行CRUD操作。 2. @TableField注解:用于标识实体类中的字段,可以指定字段名、是否为主键、是否为自增等属性,方便进行数据库操作。 3. @TableId注解:用于标识实体类中的主键字段,可以指定主键的生成策略,包括自增、UUID、雪花算法等,简化主键的处理。 4. @Result注解:用于指定查询结果的映射关系,可以通过指定列名、Java属性名等方式进行映射,确保查询结果正确转换为实体对象。 5. @Insert注解:用于标识插入操作,可以直接将实体对象插入到数据库中,提高插入效率。 6. @Update注解:用于标识更新操作,可以根据条件更新实体对象的属性值,避免手动拼接更新语句。 7. @Delete注解:用于标识删除操作,可以根据条件删除数据库中的数据,简化删除数据的操作。 8. @Select注解:用于标识查询操作,可以根据条件查询数据库中的数据,方便地进行数据查询。 总之,MyBatisPlus提供了一系列常用的注解,可以简化开发人员的操作,提高开发效率。使用这些注解,我们可以更加方便地完成数据库操作,减少了手动sql编写的工作量,提高了开发速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值