简介
实体类无注解化设置,表字段如下规则,主键叫id可无注解大写小写如下规则。
- 驼峰命名[无需要处理]
- 全局配置:下划线命名dbCoolumnUnderline 设置true,大写isCapitalMode设置true
注解说明
1. @TableName
- com.biaomidou.mybatisplus.annotations.TableName
- 描述类
值 | 描述 |
---|---|
value | 表名(默认空) |
resultMap | xml字段映射resultMap ID |
2. @TableId
- com.baomidou.mybatisplus.annotations.TableId
- 描述属性
值 | 描述 |
---|---|
value | 字段值(属性和字段相同可省略) |
type | 主键ID策略类型(默认INPUT,全局开启的是ID_WORKER) |
MP 支持一下 4 中主键策略
值 | 描述 |
---|---|
IdType.AUTO | 数据库ID 自增 |
IdType.INPUT | 用户输入ID |
IdType.ID_WORKER | 全局唯一ID,内容为空自动填充(默认配置) |
IdType.UUID | 全局唯一ID,内容为空自动填充 |
表及字段命名策略选择
在MP中,建议 数据库表名 和 表字段名 采用驼峰命名方式,如果采用下划线命名方式,请开启全局下划线开关,如果表字段名命名方式不一致请注解指定,我们建议最好保持一致。
这些做的原因是为了避免在对实体类时产生性能损耗,这样字段不用做映射就能直接和实体类对应。当然如果项目不用考虑这点性能损耗,那么你采用下划线也是没问题的。只需要在生成代码的是配置dbColumnUnderline属性就可以。
3. @TableField
值 | 描述 |
---|---|
value | 字段值(驼峰命名方式,该值可无) |
exist | 是否为数据库表字段(true/存在,false/不存在,默认true) |
全局策略配置
全局策略配置后整个项目都使用,且全局策略需要在sqlSessionFactory中注入全局策略配置。
全局策略配置就是一个普通的bean
1. 全局主键策略
<property name="idType" value="2" />
2. 全局表前缀策略配置
<property name="tablePrefix" value="tbl_" />
3. 表字段和Bean属性命名不一致
<!-- 2.3+ dbColumnUnderline 默认是true,字段是下划线命名,属性是驼峰命名,自动实现下划线和驼峰转换 -->
<property name="dbColumnUnderline" value="true" />
范例
<!-- MyBatisPlus 全局策略配置
GlobalConfig 这个类是全局缓存类,不是全局配置类
-->
<bean id="globalConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig">
<!-- 全局主键策略(value 是枚举中的key) -->
<property name="idType" value="2" />
<!-- ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 3.0 以前的属性 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ -->
<!-- 2.3+ dbColumnUnderline 默认是true,字段是下划线命名,属性是驼峰命名,自动实现下划线和驼峰转换 -->
<property name="dbColumnUnderline" value="true" />
<!-- 全局表前缀策略配置 -->
<property name="tablePrefix" value="tbl_" />
</bean>
引用全局策略配置
<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 注入全局策略配置 -->
<property name="globalConfig" ref="globalConfig"></property>
</bean>
</bean>