Jeecg-boot 开发挖坑日记11 查询过滤器整理

如果不配置默认查询条件是全匹配,想实现模糊查询需求在查询值的前后加: *

Jeecg-boot支持不编码通过配置实现 模糊查询匹配查询范围查询不匹配查询 等规则,
但是页面查询字段,需跟后台 ControllerPage 的字段对应一致,就可以不需写后台代码自动生成查询条件SQL。

例如:想实现模糊查询需求在查询值的前后加: *

查询规则

1、全匹配查询:

查询数据没有特殊格式,默认为全匹配查询

2、模糊查询:

查询数据格式需加星号:{ * }

  • 后模糊匹配: 张*
  • 前模糊匹配: *张
  • 全模糊匹配: *张*
  • 更高级匹配: *张*三*

3、包含查询:

查询数据格式采用逗号分隔:{ , }
例如:张三,李四 (含义:In('张三','李四'))

4、不匹配查询:

查询数据格式需要加叹号前缀:{ ! }
例如:!张三 (含义:不等于’张三’)

特殊说明:

  • 查询不为Null的语法:!null (大小写没关系);
  • 查询不为空字符串的方法:! (只有一个叹号);

5、范围查询

支持数字,时间的范围查询,针对范围查询页面会生成两个查询控件

  1. 如果是单一匹配方式,则页面查询控件的 name, 跟实体字段命名一样
  2. 如果是范围匹配方式,则页面查询控件需要变成两个分别名 {*}_begin{*}_end
    • {*}_begin 表示查询范围开始值
    • {*}_end 表示查询范围结束值
1
2
3
4
举例:
字段名称 orderDate
查询开始时间 : orderDate_begin
查询结束时间 : orderDate_end

注意部分

  1. 数值类型不支持此种 取非查询 ,可以将数值字段定义为字符串类型的在查询;
  2. 数字类型字段多值查询,需要将字段加上后缀 _MultiString,其他规则同理;
    • 因为后端的实体字段也需要增加后缀,例如:实体类中为: tableType,页面接受参数字段就是 tableType_MultiString

高级值规则

  1. 小于查询:查询内容值规则:”lt+ 空格 + 内容”;
    🌰:输入值:lt 100
  2. 小于等于查询: 查询内容值规则:”le+ 空格+ 内容”;
    🌰:输入值:le 100
  3. 大于查询:查询内容值规则:”gt+ 空格+ 内容”;
    🌰:输入值:gt 100
  4. 大于等于查询: 查询内容值规则:”ge+ 空格+ 内容”;
    🌰:输入值:ge 100

高级规则暂时发现不能在 integer 类型中使用,加上 _MultiString 虽然不会报错了,但是返回的数据错误。

  • 后端小哥和我说虽然你这边不报错并且又返回值,但是他那边报错了。

自定义排序

额外传入两个字段即可:

  • column: 排序依据字段
  • order: 排序方式 [asc|desc] (默认asc)

文章所使用后端框架版本 v2.2.0 (发布日期:2020-05-06)

不知道后续开发团队会不会更新说明文档。