JeecgBoot低代码开发平台,本人封装了一套查问过滤器,默认就反对含糊查问,只是须要前后加上,尽管麻烦,然而这样是思考到零碎前期数据量大默认含糊查问会导致系统性能问题。当然如果你的零碎数据量级别达不到这个状况,咱们也提供了默认含糊查问控件,不须要前后输出

一、查问过滤器用法

目录索引:

  • 性能形容
  • 查问规定

    1. 全匹配查问
    2. 含糊查问
    3. 范畴查问
    4. 蕴含查问
    5. 等等。。。
  • 查问过滤器如何集成
  • 更多查问规定参考

查问过滤器

1、性能形容

查问过滤器能够帮忙疾速生成查问条件,不须要编码通过配置实现,反对含糊查问、匹配查问、范畴查问、不匹配查问等规定。

2、查问规定

阐明:页面查问字段,需跟后盾Controller中Page的字段对应统一,后盾不需写代码主动生成查问条件SQL;

     默认查问条件是全匹配,想实现含糊查问需要在查问值的前后加: \*;

查问匹配形式规定:
[1].全匹配查问:查问数据没有非凡格局,默认为全匹配查问
[2].含糊查问:查问数据格式需加星号:{ * }
例如:

     格局一: 张*    (后含糊匹配)     格局二: *张    (前含糊匹配)     格局三: *张*   (全含糊匹配)     格局四: *张*三* (更高级匹配)

[3].蕴含查问:查问数据格式采纳逗号分隔:{ , }
例如:

格局:  张三,李四         (含意:In('张三','李四'))

[4].不匹配查问:查问数据格式须要加叹号前缀:{ ! }
例如:

格局: !张三     (含意:不等于'张三')    非凡阐明:查问不为Null的语法:!null(大小写没关系);             查问不为空字符串的办法:!(只有一个叹号);

[5].范畴查问,反对数字,工夫的范畴查问,针对范畴查问页面会生成两个查问控件

1. 如果是繁多匹配形式,则页面查问控件的name, 跟实体字段命名一样2. 如果是范畴匹配形式,则页面查问控件须要变成两个别离名 {*}_begin,{*}_end{*}_begin: 示意查问范畴开始值{*}_end:    示意查问范畴完结值 举例:字段名称 orderDate查问开始工夫 : orderDate_begin查问完结工夫 : orderDate_end

3、查问过滤器如何集成

第一步:页面实现查问条件
在线列表的查问区域,减少须要的查问字段,如下图所示。

成果:

第二步:controller层解决
Controller中对应的解决逻辑中追加如下代码:

QueryWrapper<?> queryWrapper = QueryGenerator.initQueryWrapper(?, req.getParameterMap());

代码示例:

    @GetMapping(value = "/list")    public Result<IPage<JeecgDemo>> list(JeecgDemo jeecgDemo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,                                          @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,            HttpServletRequest req) {        Result<IPage<JeecgDemo>> result = new Result<IPage<JeecgDemo>>();                //调用QueryGenerator的initQueryWrapper        QueryWrapper<JeecgDemo> queryWrapper = QueryGenerator.initQueryWrapper(jeecgDemo, req.getParameterMap());                Page<JeecgDemo> page = new Page<JeecgDemo>(pageNo, pageSize);        IPage<JeecgDemo> pageList = jeecgDemoService.page(page, queryWrapper);        result.setSuccess(true);        result.setResult(pageList);        return result;    }

4、更多查问规定参考

查问模式用法阐明
含糊查问反对左右含糊和全含糊 须要在查问输入框内前或后带*或是前后全副带*
取非查问在查问输入框后面输出! 则查问该字段不等于输出值的数据(数值类型不反对此种查问,能够将数值字段定义为字符串类型的)
in查问若传入的数据带,(逗号) 则示意该查问为in查问
in查问数字类型字段多值查问,须要将字段加上后缀“_MultiString”,其余规定同上例如实体字段:tableType,页面承受参数字段 tableType_MultiString
多选字段含糊查问例如 当初name传入值 ,a,b,c, 那么后果sql就是 name like '%a%' or name like '%b%' or name like '%c%'上述4 有一个特例,若某一查问字段前后都带逗号 则会将其视为走这种查问形式 ,该查问形式是将查问条件以逗号宰割再遍历数组 将每个元素作like查问 用or拼接,
  • 高级值规定用法 (查问内容,带有查问规定符号 )
查问模式用法举例
<小于查问。 查问内容值规定:"lt+ 空格 + 内容"输出值: “lt 100”
<=小于等于查问。 查问内容值规定:"le+ 空格+ 内容"输出值: “le 100”
>大于查问。 查问内容值规定:"gt+ 空格+ 内容"输出值: “gt 100”
>=大于等于查问。 查问内容值规定:"ge+ 空格+ 内容"输出值: “ge 100”
  1. 范畴匹配形式,则页面查问控件须要变成两个别离名 {}_begin,{}_end
    {*}_begin: 示意查问范畴开始值
    {*}_end: 示意查问范畴完结值

举例:

字段名称 costTime
查问开始 : costTime_begin
查问完结 : costTime_end
this.queryParam.costTime_begin = costTime_begin;
this.queryParam.costTime_end = costTime_end;

二、JInput 默认含糊查问组件—Vue2版

非凡查问组件,默认反对含糊查问、大于等于查问、小于等于查问、不匹配查问。

1.参数配置

参数类型必填阐明
placeholderstringplaceholder
trimboolean是否主动去空格 默认false
typestring查问类型['like','ne','ge','le'] 别离是含糊,不等于,大于,小于,默认like,如果不想增加任何规定,请设置type="",即能走等于查问(默认like)

2.应用示例
革新用户治理,账号反对含糊查问
2.1 组件导入

//省略其余代码import JInput from '@/components/jeecg/JInput'export default {  name: "UserList",  mixins: [JeecgListMixin],  components: {    SysUserAgentModal,    UserModal,    PasswordModal,    JInput  },//省略其余代码

2.2 替换输入框

<a-col :md="6" :sm="12">  <a-form-item label="账号">    <!--<a-input placeholder="请输出账号查问" v-model="queryParam.username"></a-input>-->    <j-input placeholder="请输出账号含糊查问" v-model="queryParam.username"></j-input>  </a-form-item></a-col>

2.3 测试

三、JInput默认含糊查问组件—Vue3版

非凡查问组件,反对含糊查问、大于等于查问、小于等于查问、不匹配查问。

参数定义

参数类型必填阐明
placeholderstringplaceholder
trimboolean是否主动去空格 默认false
typestring查问类型['like','ne','ge','le'] 别离是含糊,不等于,大于,小于,默认like,如果不想增加任何规定,请设置type="",即能走等于查问(默认like)
disabledBoolean是否禁用,默认值false

成果展现

应用示例

革新用户治理,账号反对含糊查问,配置JInput组件(user.data.ts文件中)

//省略其余代码{  label: '账号',  field: 'username',  component: 'JInput',  colProps: {span: 6},},//省略其余代码