文章目录
- 一、MyBatsPlus 依赖添加
- 二、MyBatsPlus 自动生成 SQL 原理
- 三、MyBatsPlus 常用注解
- 四、@TableId 注解中的 type 枚举
- 五、@TableField 的使用场景
MyBatsPlus
简称
MP
是一个
MyBatis
增强工具,在
MyBatis
的基础上只做增强不做改变。
如果有对如何使用
SpringBoot
整合MyBatisPlus
框架不清楚的,可以点击 超详细的SpringBoot项目整合MyBatisPlus框架步骤示例,并附带浏览器和Junit测试结果示例代码
一、MyBatsPlus 依赖添加
1、引入 MyBatsPlus
依赖,代替 MyBatis
。
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
2、定义 mapper
接口并继承 BaseMapper
。
@Mapper
public interface UserMapper extends BaseMapper<User> {
// 这里的BaseMapper是一个MyBatisPlus中提供的超类
// 这个类里面附带了增删改查等一系列的常用方法
// TbUserMapper中一些常见的操作就可以直接继承过来进行使用
}
二、MyBatsPlus 自动生成 SQL 原理
MyBatsPlus
通过扫描实体类,并基于反射的方式获取实体类信息作为数据库表信息。
MyBatsPlus
自动生成 SQL
语句原理如下:
- 类名驼峰转下划线做为表名
- 例如:
UserInfo
表转成数据库表,表名变成user_info
。
- 例如:
- 属性名为
id
的字段作为主键。 - 变量名驼峰转下划线作为表的字段名。
在 MyBatsPlus
的实现原理中,要遵守约定大于配置。若实体类中的名字或者属性名等不符合约定,则需自己使用注解对其进行配置。
三、MyBatsPlus 常用注解
@TableName
:指定数据库表的名字。@TableId
:指定数据库表中主键字段。@TableField
:指定数据库表中普通字段。
四、@TableId 注解中的 type 枚举
@TableId(type = IdType.AUTO)
: 数据库主键ID
自增长。@TableId(type = IdType.INPUT)
: 通过set
方法手动输入。@TableId(type = IdType.ASSIGN_ID)
: 分配ID
,IdentifierGenerator
接口的nextId
方法生成,默认雪花算法。@TableId(type = IdType.ASSIGN_UUID)
: 使用UUID
。@TableId(type = IdType.None)
:不使用主键。
五、@TableField 的使用场景
- 员变量名与数据库字段名不一致。需要使用
@TableField(“对应数据库字段名”)
。 - 成员变量名以
is
的开头,且是布尔值,需手动添加。 - 成员变量名与数据库关键字冲突的情况,使用转义字符(`)加载字段名两边,在双引号之内,字段两边。
- 成员变量不是数据库表中的字段。
@TableField(exist = false)
。