JeecgBoot 低代碼平臺 — 默認模糊查詢以及高級查詢規(guī)則(jeecgboot代碼生成器)

JeecgBoot 低代碼平臺 — 默認模糊查詢以及高級查詢規(guī)則(jeecgboot代碼生成器)

JeecgBoot 低代碼開發(fā)平臺,自己封裝了一套查詢過濾器,默認就支持模糊查詢,只是需要前后加上 *,雖然麻煩,但是這樣是考慮到系統(tǒng)后期數(shù)據(jù)量大默認模糊查詢會導(dǎo)致系統(tǒng)性能問題。當然如果你的系統(tǒng)數(shù)據(jù)量級別達不到這個情況,我們也提供了默認模糊查詢控件,不需要前后輸入 *

一、查詢過濾器用法

目錄索引:

  • 功能描述
  • 查詢規(guī)則全匹配查詢模糊查詢范圍查詢包含查詢等等
  • 查詢過濾器如何集成
  • 更多查詢規(guī)則參考

查詢過濾器

1、功能描述

查詢過濾器可以幫助快速生成查詢條件,不需要編碼通過配置實現(xiàn),支持模糊查詢、匹配查詢、范圍查詢、不匹配查詢等規(guī)則。

2、查詢規(guī)則

說明: 頁面查詢字段,需跟后臺 Controller 中 Page 的字段對應(yīng)一致,后臺不需寫代碼自動生成查詢條件 SQL; 默認查詢條件是全匹配,想實現(xiàn)模糊查詢需求在查詢值的前后加: *;

查詢匹配方式規(guī)則: [1]. 全匹配查詢:查詢數(shù)據(jù)沒有特殊格式,默認為全匹配查詢 [2]. 模糊查詢:查詢數(shù)據(jù)格式需加星號:{ * } 例如:

格式一: 張* (后模糊匹配) 格式二: *張 (前模糊匹配) 格式三: *張* (全模糊匹配) 格式四: *張*三* (更高級匹配)

[3]. 包含查詢:查詢數(shù)據(jù)格式采用逗號分隔:{ , }
例如:

格式: 張三,李四 (含義:In('張三','李四'))

[4]. 不匹配查詢:查詢數(shù)據(jù)格式需要加嘆號前綴:{ ! }
例如:

格式: !張三 (含義:不等于'張三') 特殊說明:查詢不為Null的語法:!null(大小寫沒關(guān)系); 查詢不為空字符串的方法:!(只有一個嘆號);

[5]. 范圍查詢,支持數(shù)字,時間的范圍查詢,針對范圍查詢頁面會生成兩個查詢控件

1. 如果是單一匹配方式,則頁面查詢控件的name, 跟實體字段命名一樣2. 如果是范圍匹配方式,則頁面查詢控件需要變成兩個分別名 {*}_begin,{*}_end{*}_begin: 表示查詢范圍開始值{*}_end: 表示查詢范圍結(jié)束值 舉例:字段名稱 orderDate查詢開始時間 : orderDate_begin查詢結(jié)束時間 : orderDate_end

3、查詢過濾器如何集成

第一步:頁面實現(xiàn)查詢條件 在線列表的查詢區(qū)域,增加需要的查詢字段,如下圖所示。

JeecgBoot 低代碼平臺 — 默認模糊查詢以及高級查詢規(guī)則(jeecgboot代碼生成器)

效果:

JeecgBoot 低代碼平臺 — 默認模糊查詢以及高級查詢規(guī)則(jeecgboot代碼生成器)

第二步:controller 層處理 Controller 中對應(yīng)的處理邏輯中追加如下代碼:

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>>(); //調(diào)用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、更多查詢規(guī)則參考

查詢模式

用法

說明

模糊查詢

支持左右模糊和全模糊 需要在查詢輸入框內(nèi)前或后帶 * 或是前后全部帶 *

取非查詢

在查詢輸入框前面輸入!則查詢該字段不等于輸入值的數(shù)據(jù)

(數(shù)值類型不支持此種查詢,可以將數(shù)值字段定義為字符串類型的)

in 查詢

若傳入的數(shù)據(jù)帶,(逗號) 則表示該查詢?yōu)?in 查詢

in 查詢

數(shù)字類型字段多值查詢,需要將字段加上后綴 “_MultiString”,其他規(guī)則同上

例如實體字段:tableType,頁面接受參數(shù)字段 tableType_MultiString

多選字段模糊查詢

例如 現(xiàn)在 name 傳入值,a,b,c, 那么結(jié)果 sql 就是 name like '% a%' or name like '% b%' or name like '% c%'

上述 4 有一個特例,若某一查詢字段前后都帶逗號 則會將其視為走這種查詢方式,該查詢方式是將查詢條件以逗號分割再遍歷數(shù)組 將每個元素作 like 查詢 用 or 拼接,

  • 高級值規(guī)則用法 (查詢內(nèi)容,帶有查詢規(guī)則符號)

查詢模式

用法

舉例

<

小于查詢。 查詢內(nèi)容值規(guī)則:"lt 空格 內(nèi)容"

輸入值: “l(fā)t 100”

<=

小于等于查詢。 查詢內(nèi)容值規(guī)則:"le 空格 內(nèi)容"

輸入值: “l(fā)e 100”

>

大于查詢。 查詢內(nèi)容值規(guī)則:"gt 空格 內(nèi)容"

輸入值: “gt 100”

>=

大于等于查詢。 查詢內(nèi)容值規(guī)則:"ge 空格 內(nèi)容"

輸入值: “ge 100”

  1. 范圍匹配方式,則頁面查詢控件需要變成兩個分別名 {}_begin,{}_end {}_begin: 表示查詢范圍開始值 {}_end: 表示查詢范圍結(jié)束值

舉例:

JeecgBoot 低代碼平臺 — 默認模糊查詢以及高級查詢規(guī)則(jeecgboot代碼生成器)

字段名稱 costTime 查詢開始 : costTime_begin 查詢結(jié)束 : costTime_end this.queryParam.costTime_begin = costTime_begin; this.queryParam.costTime_end = costTime_end;

二、JInput 默認模糊查詢組件 —Vue2 版

特殊查詢組件,默認支持模糊查詢、大于等于查詢、小于等于查詢、不匹配查詢。

1. 參數(shù)配置

參數(shù)

類型

必填

說明

placeholder

string

placeholder

trim

boolean

是否自動去空格 默認 false

type

string

查詢類型 ['like','ne','ge','le'] 分別是模糊,不等于,大于,小于,默認 like, 如果不想添加任何規(guī)則,請設(shè)置 type="", 即能走等于查詢(默認 like)

2. 使用示例 改造用戶管理,賬號支持模糊查詢 2.1 組件導(dǎo)入

//省略其他代碼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 測試

JeecgBoot 低代碼平臺 — 默認模糊查詢以及高級查詢規(guī)則(jeecgboot代碼生成器)

三、JInput 默認模糊查詢組件 —Vue3 版

特殊查詢組件,支持模糊查詢、大于等于查詢、小于等于查詢、不匹配查詢。

參數(shù)定義

參數(shù)

類型

必填

說明

placeholder

string

placeholder

trim

boolean

是否自動去空格 默認 false

type

string

查詢類型 ['like','ne','ge','le'] 分別是模糊,不等于,大于,小于,默認 like, 如果不想添加任何規(guī)則,請設(shè)置 type="", 即能走等于查詢(默認 like)

disabled

Boolean

是否禁用,默認值 false

效果展示

JeecgBoot 低代碼平臺 — 默認模糊查詢以及高級查詢規(guī)則(jeecgboot代碼生成器)

使用示例

改造用戶管理,賬號支持模糊查詢,配置 JInput 組件(user.data.ts 文件中)

//省略其他代碼{ label: '賬號', field: 'username', component: 'JInput', colProps: {span: 6},},//省略其他代碼

JeecgBoot 低代碼平臺 — 默認模糊查詢以及高級查詢規(guī)則(jeecgboot代碼生成器)

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部