MyBatis-Plus学习笔记-1
本文最后更新于:2023年5月13日 下午
快速入门
假设我们现在有一个映射数据库中user
表的实体类User
:
1 |
|
要使用MyBatis-Plus
进行CRUD
操作,就在Mapper
文件夹下编写对应的Mapper
类:
1 |
|
然后在启动类中添加@MapperScan
注解,扫描Mapper
文件夹即可。
1 |
|
注解
@TableName
- 描述:表名注解,标识实体类对应的表
- 使用位置:实体类
一般来说只需要知道value
属性(即表名)就行了。用法:@TableName(value="sys_user")
,@TableName("sys_user")
@TableId
- 描述:主键注解
- 使用位置:实体类主键字段
用法:1
2@TableId
private Long id;
TableField
- 描述:字段注解(非主键)
用法:1
2@TableField("nickname")
private String name;
CRUD接口
建议转到文档看:CRUD接口
Chain
query
1 |
|
update
1 |
|
ActiveRecord模式
说明:
- 实体类只需继承Model类即可进行强大的CRUD操作
- 需要项目中已注入对应实体的BaseMapper
用法:
- 继承Model
1
2
3class User extends Model<User>{
// fields...
} - 调用CRUD方法
1
2User user = new User();
user.insert();
Db类
说明:
- 使用静态调用的方式,执行CRUD方法,避免
Service
循环注入。 - 需要项目中已注入对应实体的BaseMapper
- 对于参数为Wrapper的,需要在Wrapper中传入Entity或者EntityClass供寻找对应的Mapper
- 不建议在循环中调用,如果是批量保存,建议将数据构造好后使用 Db.saveBatch(数据) 保存
用法参见:测试用例
条件构造器
AbstractWrapper
用于生成sql
的where
条件,entity
属性也用于生成sql
的where
条件。同时也是QueryWrapper(LambdaQueryWrapper)
和UpdateWrapper(LambdaUpdateWrapper)
的父类。
方法参照:条件构造器
使用方法
继续使用最开始提到的User
实体类,假设id
对应数据库中的uid
字段。
QueryWrapper
1 |
|
引入lambda
来避免硬编码
1 |
|
LambdaQueryWrapper
上面的简化版本,使用方法:
1 |
|
简化再简化:
1 |
|
UpdateWrapper
既然都有查询用的wrapper
那肯定也有更新用的wrapper
啦,使用方法:
1 |
|
LambdaUpdateWrapper
那其实用法和上面的lambda
查询差不多
1 |
|
希望本文章能够帮到您~
MyBatis-Plus学习笔记-1
https://map1e-g.github.io/2023/05/09/mybatis-plus-1/