通用查询
# 通用查询
本项目对 MyBatisPlus 的查询进行了封装,现可以通过 @CsMpQuery 注解实现简单的查询
简单查询:等于(默认)、大于等于、小于等于、左模糊、右模糊、中模糊、多字段模糊、NOT_EQUAL 、BETWEEN 、NOT_NULL。
# 参数说明
| 字段名称 | 字段描述 | 默认值 |
|---|---|---|
| propName | 对象的属性名,如果字段名称与实体字段一致,则可以省略 | "" |
| type | 查询方式,默认为 | EQUAL |
| blurry | 多字段模糊查询,值为实体字段名称 | "" |
# 使用方式
1、创建一个查询类 QueryCriteria
@Data
public class QueryCriteria {
// 等于
@CsMpQuery
private String a;
// 左模糊
@CsMpQuery(type = Query.Type.LEFT_LIKE)
private String b;
// 右模糊
@CsMpQuery(type = Query.Type.RIGHT_LIKE)
private String c;
// 大于等于
@CsMpQuery(type = Query.Type.GREATER_THAN, propName = "createTime")
private Timestamp startTime;
// 小于等于
@CsMpQuery(type = Query.Type.LESS_THAN, propName = "createTime")
private Timestamp endTime;
// BETWEEN
@CsMpQuery(type = Query.Type.BETWEEN)
private List<Timestamp> startTime;
// 多字段模糊查询,blurry 为字段名称
@CsMpQuery(blurry = "a,b,c")
private String blurry;
// IN 查询
@CsMpQuery(type = Query.Type.IN)
private List<String> d;
// NOT_EQUAL 不等于
@CsMpQuery(type = Query.Type.NOT_EQUAL)
private String g;
// NOT_NULL 不为空
@CsMpQuery(type = Query.Type.NOT_NULL)
private String g;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
2、在控制器中使用
public ResponseEntity query(CsPageArgs<QueryCriteria> args){
return new ResponseEntity(service.queryAll(args), HttpStatus.OK);
}
1
2
3
2
3
3、Service 中查询
@Override
public ResponseEntity<CsPageResult<实体>> queryAll(CsPageArgs<QueryCriteria> args){
QueryWrapper<Object> queryWrapper = CsMpQUtil.build(args.getArgs());
IPage<实体> page repository.selectByArgs(queryWrapper, args.getPage());
return CsPageUtil.toPage(page);
}
1
2
3
4
5
6
2
3
4
5
6
提示
如果需要添加一个字段查询,只需要在查询类 QueryCriteria 中添加就可以了,可节省大量时间。
源码可以查看 cutejava-framework 模块中的 cn.odboy.framework.mybatisplus.config.CsMpQuery 与 cn.odboy.framework.mybatisplus.core.CsMpQUtil
帮助我们改善此页面! (opens new window)