MybatisPlus-基本配置-进阶配置

1,158 阅读2分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

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

  • mapUnderscoreToCamelCase(驼峰自动映射)

  •   类型: boolean
  •   默认值: true

是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN(下划线命名)

到经典Java属性名aColumn(驼峰命名) 的类似映射。

注意:

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

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

示例(SpringBoot):

#关闭自动驼峰映射,该参数不能和mybatis-plus.config-location同时存在 
mybatis-plus.configuration.map-underscore-to-camel-case=false 

这个时候再次查询

注意 这两个全局配置只能有一个

为了方便测试 我们先注释掉一个 来验证关闭自动驼峰映射 发现userName没有数据,因为没有被映射到

如果改为true就又好了

cacheEnabled(开启缓存)

类型: boolean

默认值: true

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

示例:SpringBoot

# 关闭缓存 默认开启
mybatis-plus.configuration.cache-enabled=false 

DB策略配置

这个我们见过 就是在实体类中使用ID生成策略的时候用过

如果有多个实体都需要这么配置,那么像这么一个一个的配比较麻烦,这时候我们就可以使用全局配置ID生成策略了

  • idType(主键生成策略)
  •   类型: com.baomidou.mybatisplus.annotation.IdType
  •   默认值: ID_WORKER
  •   全局默认主键类型,设置后,即可省略实体对象中的@TableId(type = IdType.AUTO)配置。
  •   不仅仅支持自增,也支持uuid,idWorker等其他策略,具体看需求
  •   示例:

SpringBoot:

# 全局ID生成策略(自增)
mybatis-plus.global-config.db-config.id-type=auto

配置完之后,我们把实体类注释掉,重新新增一个数据,看看是否有效

通过控制台发现,是没问题的,正常ID自增

SpringMVC:

<!--这里使用MP提供的sqlSessionFactory,完成了Spring与MP的整合--> 
<bean id="sqlSessionFactory" 
class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean"> 
<property name="dataSource" ref="dataSource"/> 
<property name="globalConfig"> 
<bean class="com.baomidou.mybatisplus.core.config.GlobalConfig"> 
<property name="dbConfig"> 
<bean 
class="com.baomidou.mybatisplus.core.config.GlobalConfig$DbConfig"> 
<property name="idType" value="AUTO"/> 
</bean> 
</property> 
</bean> 
</property> 
</bean> 
  • tablePrefix(表名前缀)
  •   类型: String
  •   默认值: null

表名前缀,全局配置后可省略@TableName()配置。

还记得在实体里面我们的一个配置吗 @TableName( "tb_user" )

这个和id自增策略一个道理 如果多个实体就要写多个 那么我们不如写一个全局的,前提是我们的表需要保持一个命名规则,必须都是tb_xx开头的

SpringBoot:

 # 全局的表名前缀
mybatis-plus.global-config.db-config.table-prefix=tb_

注释实体注解

测试发现 即使没有指名报名 也成功执行了 说明全局配置有用

SpringMVC:

<bean id="sqlSessionFactory" 
class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean"> 
<property name="dataSource" ref="dataSource"/> 
<property name="globalConfig"> 
<bean class="com.baomidou.mybatisplus.core.config.GlobalConfig"> 
<property name="dbConfig"> 
<bean 
class="com.baomidou.mybatisplus.core.config.GlobalConfig$DbConfig"> 
<property name="idType" value="AUTO"/> 
<property name="tablePrefix" value="tb_"/> 
</bean> 
</property> 
</bean> 
</property> 
</bean>