目录
? ? ? ? MyBatisPlus官方提供了starter,其中集成了Mybatis和MybatisPlus的所有功能,并且实现了自动装配效果。因此我们可以用MybatisPlus的starter替换Mybatis的starter。(如果不替换,同时添加两个依赖会报错)
MybatisPlus的starter:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
将自定义的Mapper继承MybatisPlus提供的BaseMapper接口:
//在<>中填入需要进行CRUD的实体类型
public interface UserMapper extends BaseMapper<User> { }
通过继承接口,可以使用?BaseMapper 中大量现有的方法,而不需要我们自己编写,方便快捷。
思考1:MybatisPlus是怎么通过传入的实体类类型,自动找到数据库对应的表,并且对其进行CRUD的操作呢?
答1:MybatisPlus会通过MP约定,寻找数据库中对应的表。
约定1.类名驼峰转下划线作为表名
约定2.名为id的字段作为主键
约定3.变量名驼峰转下划线作为表的字段名
思考2:如果自己使用的表名或属性名不符合MP约定,应该怎么做才能让MybatisPlus识别到?
答2:使用注解
注意:一定要让MybatisPlus知道哪个属性代表id字段,否则无法进行CRUD,会导致报错;
作用:用来指定表名
作用:用来指定表中的关键字段(id)信息
可以通过设置type的值来选择合适的id策略:
idType.AUTO:数据库自增加;
idType.INPUT:通过set方法自行输入;
idType.ASSIGN _ID(默认选择):自动分配 ID,接口ldentifierGenerator的方法nextld来生成id默认实现类为DefaultldentifierGenerator雪花算法。
作用:用来指定表中的普通字段信息
常用场景:
1.成员变量名与数据库字段名不一致
2.成员变量名以is开头,且是布尔值
3.成员变量名与数据库关键字冲突
4.成员变量不是数据库字段
MybatisPlus是如何获取实现CRUD的数据库表信息的?
1.默认以类名驼峰转下划线作为表名
2.默认把名为id的字段作为主键
3.默认把变量名驼峰转下划线作为表的字段名
MybatisPlus的常用注解有哪些?
1.@TableName: 指定表名称及全局配置
2.@Tableld: 指定id字段及相关配置
3.@TableField: 指定普通字段及相关配置
ldType的常见类型有哪些?
AUTO、ASSIGN ID、INPUT
使用@TableField的常见场景是?
1.成员变量名与数据库字段名不一致
2.成员变量名以is开头,且是布尔值
3.成员变量名与数据库关键字冲突
4.成员变量不是数据库字段
具体可参考官方文档:MybatisPlus使用配置?
MyBatisPlus使用的基本流程
1.引入起步依赖
2.自定义Mapper继承BaseMapper
3.在实体类上添加注解声明表信息
4.在application.yml 单根据需要添加配置