如果不配置默认查询条件是全匹配,想实现模糊查询需求在查询值的前后加:
*
Jeecg-boot支持不编码通过配置实现 模糊查询
、 匹配查询
、 范围查询
、 不匹配查询
等规则,
但是页面查询字段,需跟后台 Controller
中 Page
的字段对应一致,就可以不需写后台代码自动生成查询条件SQL。
例如:想实现模糊查询需求在查询值的前后加: *
查询规则
1、全匹配查询:
查询数据没有特殊格式,默认为全匹配查询
2、模糊查询:
查询数据格式需加星号:{ *
}
- 后模糊匹配:
张*
- 前模糊匹配:
*张
- 全模糊匹配:
*张*
- 更高级匹配:
*张*三*
3、包含查询:
查询数据格式采用逗号分隔:{ ,
}
例如:张三,李四
(含义:In('张三','李四')
)
4、不匹配查询:
查询数据格式需要加叹号前缀:{ !
}
例如:!张三
(含义:不等于’张三’)
特殊说明:
- 查询不为Null的语法:
!null
(大小写没关系); - 查询不为空字符串的方法:
!
(只有一个叹号);
5、范围查询
支持数字,时间的范围查询,针对范围查询页面会生成两个查询控件
- 如果是单一匹配方式,则页面查询控件的
name
, 跟实体字段命名一样 - 如果是范围匹配方式,则页面查询控件需要变成两个分别名
{*}_begin
,{*}_end
{*}_begin
表示查询范围开始值{*}_end
表示查询范围结束值
举例:
字段名称 orderDate
查询开始时间 : orderDate_begin
查询结束时间 : orderDate_end
注意部分
- 数值类型不支持此种
取非查询
,可以将数值字段定义为字符串类型的在查询; - 数字类型字段多值查询,需要将字段加上后缀
_MultiString
,其他规则同理;
- 因为后端的实体字段也需要增加后缀,例如:实体类中为:
tableType
,页面接受参数字段就是tableType_MultiString
高级值规则
- 小于查询:查询内容值规则:”lt+ 空格 + 内容”;
🌰:输入值:lt 100
- 小于等于查询: 查询内容值规则:”le+ 空格+ 内容”;
🌰:输入值:le 100
- 大于查询:查询内容值规则:”gt+ 空格+ 内容”;
🌰:输入值:gt 100
- 大于等于查询: 查询内容值规则:”ge+ 空格+ 内容”;
🌰:输入值:ge 100
高级规则暂时发现不能在 integer
类型中使用,加上 _MultiString
虽然不会报错了,但是返回的数据错误。
- 后端小哥和我说虽然你这边不报错并且又返回值,但是他那边报错了。
自定义排序
额外传入两个字段即可:
column
: 排序依据字段order
: 排序方式 [asc
|desc
] (默认asc
)
文章所使用后端框架版本 v2.2.0
(发布日期:2020-05-06)
不知道后续开发团队会不会更新说明文档。
附
- 查询过滤器用法 · Jeecg-boot 开发文档
- Online报表排序 · Jeecg-boot 开发文档
- 因为查询过滤器已经重构多次,版本最好选择
2.2.x
以上,1.x
版本只有全匹配/模糊查询/包含查询/不匹配查询。