4Wrapper的使用
4.1Wrapper的类图体系
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e5cs43aj-1607187310991)(E:\新技术学习\java_study\mybatis-plus学习\images\1470521-20200408175328100-117288012.png)]](https://img-blog.csdnimg.cn/20201206005909661.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE4NzAwMjI=,size_16,color_FFFFFF,t_70)
4.2wapper介绍
- Wrapper : 条件构造抽象类,最顶端父类,抽象类中提供4个方法西面贴源码展示
- AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件
- AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
- LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper
- LambdaUpdateWrapper : Lambda 更新封装Wrapper
- QueryWrapper : Entity 对象封装操作类,不是用lambda语法
- UpdateWrapper : Update 条件封装,用于Entity对象更新操作
QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类
用于生成 sql 的 where 条件, entity 属性也用于生成 sql 的 where 条件
注意: entity 生成的 where 条件与 使用各个 api 生成的 where 条件没有任何关联行为
4.3常用方法

4.4方法详情:https://baomidou.com/guide/wrapper.html#abstractwrapper
4.5测试查询
@Test
public void testGetOneByWrapper(){
QueryWrapper<Account> queryWrapper = new QueryWrapper<>();
Map<String,Object> map = new HashMap<>();
map.put("password","b");
map.put("name",null);
queryWrapper.allEq(map, false);
Account account = accountService.getOne(queryWrapper);
System.out.println(account);
}
4.6测试更新
@Test
public void testUpDateByWrapper(){
Account account = new Account(null,"b","bb");
UpdateWrapper<Account> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id",19);
accountService.update(account,updateWrapper);
}
4.7测试的源代码已上传到GitHub中:https://github.com/LJF2402901363/java_study.git
