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/