介绍
- Wrapper : 条件构造抽象类,最顶端父类
- AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件
- QueryWrapper : Entity 对象封装操作类,不是用lambda语法
- UpdateWrapper : Update 条件封装,用于Entity对象更新操作
- AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
- LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper
- LambdaUpdateWrapper : Lambda 更新封装Wrapper
QueryWrapper 使用
//写数据库字段
QueryWrapper<Object> wrapperQW = new QueryWrapper<>()
.ge("age",20);
//写实体属性,而不是数据库字段
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>()
.ge(User::getAge, 20);
1、ge (>=) 、gt (>)
.gt("age",20);
le (<=)、lt (<).le("age",20);
2、eq(=).eq("age",20);
、ne (!=).ne("age",20);
3、like(%ng%)、likeLeft(%ng)、likeRight(ng%).like("name", "e")
- like %keyword% :索引失效,也无法使用反向索引。
- like %keyword :索引失效,使用全表扫描。但可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转函数索引,不走全表扫描。
- like keyword% :
.like("name", "e")
索引有效。
4、orderByDesc、orderByAsc
.orderByAsc(User::getId);
默认升序(asc)/desc