本文已参与「新人创作礼」活动, 一起开启掘金创作之路。
本部分(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>