JeecgBoot低代碼平臺—默認模糊查詢以及高級查詢規(guī)則
JeecgBoot低代碼開發(fā)平臺,自己封裝了一套查詢過濾器,默認就支持模糊查詢,只是需要前后加上,雖然麻煩,但是這樣是考慮到系統(tǒng)后期數(shù)據(jù)量大默認模糊查詢會導致系統(tǒng)性能問題。當然如果你的系統(tǒng)數(shù)據(jù)量級別達不到這個情況,我們也提供了默認模糊查詢控件,不需要前后輸入
一、查詢過濾器用法
目錄索引:
功能描述
查詢規(guī)則
全匹配查詢
模糊查詢
范圍查詢
包含查詢
等等。。。
查詢過濾器如何集成
更多查詢規(guī)則參考
查詢過濾器
1、功能描述
查詢過濾器可以幫助快速生成查詢條件,不需要編碼通過配置實現(xiàn),支持模糊查詢、匹配查詢、范圍查詢、不匹配查詢等規(guī)則。
2、查詢規(guī)則
說明:頁面查詢字段,需跟后臺Controller中Page的字段對應一致,后臺不需寫代碼自動生成查詢條件SQL; 默認查詢條件是全匹配,想實現(xiàn)模糊查詢需求在查詢值的前后加: *;
查詢匹配方式規(guī)則:?[1].全匹配查詢:查詢數(shù)據(jù)沒有特殊格式,默認為全匹配查詢 [2].模糊查詢:查詢數(shù)據(jù)格式需加星號:{ * } 例如:
?????格式一:?張*????(后模糊匹配)
?????格式二:?*張????(前模糊匹配)
?????格式三:?*張*???(全模糊匹配)
?????格式四:?*張*三*?(更高級匹配)
[3].包含查詢:查詢數(shù)據(jù)格式采用逗號分隔:{ , }
例如:
格式:??張三,李四??
???????(含義:In('張三','李四'))
[4].不匹配查詢:查詢數(shù)據(jù)格式需要加嘆號前綴:{ ! }
例如:
格式:?!張三
?????(含義:不等于'張三')
????特殊說明:查詢不為Null的語法:!null(大小寫沒關系);
?????????????查詢不為空字符串的方法:!(只有一個嘆號);
[5].范圍查詢,支持數(shù)字,時間的范圍查詢,針對范圍查詢頁面會生成兩個查詢控件
1.?如果是單一匹配方式,則頁面查詢控件的name,?跟實體字段命名一樣
2.?如果是范圍匹配方式,則頁面查詢控件需要變成兩個分別名?{*}_begin,{*}_end
{*}_begin:?表示查詢范圍開始值
{*}_end:????表示查詢范圍結(jié)束值?
舉例:
字段名稱?orderDate
查詢開始時間?:?orderDate_begin
查詢結(jié)束時間?:?orderDate_end
3、查詢過濾器如何集成
第一步:頁面實現(xiàn)查詢條件?在線列表的查詢區(qū)域,增加需要的查詢字段,如下圖所示。

效果:

第二步: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>>();
??
??//調(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ī)則參考

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

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

字段名稱 costTime 查詢開始 : costTime_begin 查詢結(jié)束 : costTime_end this.queryParam.costTime_begin = costTime_begin; this.queryParam.costTime_end = costTime_end;
二、JInput 默認模糊查詢組件—Vue2版
特殊查詢組件,默認支持模糊查詢、大于等于查詢、小于等于查詢、不匹配查詢。
1.參數(shù)配置

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版
特殊查詢組件,支持模糊查詢、大于等于查詢、小于等于查詢、不匹配查詢。
參數(shù)定義

效果展示

使用示例
改造用戶管理,賬號支持模糊查詢,配置JInput組件(user.data.ts文件中)
//省略其他代碼
{
??label:?'賬號',
??field:?'username',
??component:?'JInput',
??colProps:?{span:?6},
},
//省略其他代碼
