查詢過濾器
===
**目錄索引:**
- 功能描述
- 查詢條件如何實現
- 查詢過濾器高級特性
1. 組合條件查詢
2. 字段范圍查詢
3. 日期字段的數據格式化
- 查詢規則
# 查詢過濾器
## 一、功能描述
查詢過濾器可以幫助快速生成查詢條件,不需要編碼通過配置實現,支持模糊查詢、匹配查詢、范圍查詢、不匹配查詢等規則。
## 二、查詢條件如何實現
**第一步:頁面采用UI標簽實現**
對需要實現查詢的字段,增加屬性 query="true",頁面自動生成查詢框,如下圖所示。

配置后頁面效果如下(查詢條件自動生成):

**第二步:controller層處理**
Controller中對應的處理邏輯中追加如下代碼:
```
CriteriaQuery cq = new CriteriaQuery(TSUser.class, dataGrid);
//查詢條件組裝器
HqlGenerateUtil.installHql(cq, user);
```
## 三、查詢過濾器高級特性
datagrid中的查詢過濾器默認是單條件查詢,即在設置多個dgCol的query=”true”之后,查詢條件中同時只能有一個條件被使用,生成的頁面效果如圖7-3所示。

圖7-3默認查詢過濾器效果
當然,可以通過datagrid和dgCol的參數設置來達到更高級的查詢過濾功能,如組合查詢條件和值范圍查詢。
### 1.組合條件查詢
設置<t:datagrid>標簽的queryMode=”group”(參數默認為”single”,即單條件查詢),在頁面生成時,會生成一個組合查詢條件輸入面板。生成的頁面效果如圖7-4所示。

圖7-4組合查詢過濾器效果
### 2.字段范圍查詢
設置<t:dgCol>標簽的queryMode=”group”,在頁面生成時,會生成一個范圍輸入框。生成的頁面效果如圖7-5所示。

圖7-5字段范圍查詢效果
字段范圍查詢會為該字段生成兩個輸入框,name分別為“字段名_begin”和“字段名_end”,具體的查詢邏輯查詢過濾器自已經動組裝實現,不需要再編碼。
### 3.日期字段的數據格式化
在datagrid中,對于日期字段,可以通過設置<d:dgCol>的formatter屬性配置格式化方式,實現對日期數據的格式化,如:
```
<t:dgCol title="創建日期" field="createTime" formatter="yyyy-MM-dd hh:mm:ss" query="true" queryMode="group"></t:dgCol>
```
對于日期的格式化常用表達式:yyyy-MM-dd hh:mm:ss 或者 yyyy-MM-dd
## 四、查詢規則
**說明:**頁面查詢字段,需跟后臺Action(或Controller)中Page的字段對應一致,后臺不需寫代碼自動生成HQL查詢條件;
默認查詢條件是全匹配,想實現模糊查詢需求在查詢值的前后加: \*;
**查詢匹配方式規則:**
[1].全匹配查詢:查詢數據沒有特殊格式,默認為全匹配查詢
[2].模糊查詢:查詢數據格式需加星號:{ \* }
例如:
```
格式一: 張* (后模糊匹配)
格式二: *張 (前模糊匹配)
格式三: *張* (全模糊匹配)
格式四: *張*三* (更高級匹配)
```
[3].包含查詢:查詢數據格式采用逗號分隔:{ , }
例如:
```
格式: 張三,李四
(含義:In('張三','李四'))
```
[4].不匹配查詢:查詢數據格式需要加嘆號前綴:{ ! }
例如:
```
格式: !張三
(含義:不等于'張三')
特殊說明:查詢不為Null的語法:!null(大小寫沒關系);
查詢不為空字符串的方法:!(只有一個嘆號);
```
[5].范圍查詢,支持數字,時間的范圍查詢,針對范圍查詢頁面會生成兩個查詢控件
```
1. 如果是單一匹配方式,則頁面查詢控件的name, 跟實體字段命名一樣
2. 如果是范圍匹配方式,則頁面查詢控件需要變成兩個分別名 {*}_begin,{*}_end
{*}_begin: 表示查詢范圍開始值
{*}_end: 表示查詢范圍結束值
舉例:
字段名稱 orderDate
查詢開始時間 : orderDate_begin
查詢結束時間 : orderDate_end
```
- 總體介紹
- 快速了解
- 平臺優勢
- 技術支持
- 社區榮譽
- 開發環境準備
- JEECG私服Maven
- 代碼結構說明
- 入門開發環境搭建
- 開發工具
- 代碼生成器使用
- GUI代碼生成器
- Online代碼生成器
- P3插件代碼生成器
- 代碼生成器配置
- 功能介紹
- 權限開發手冊
- Online開發權限
- Online表單訪問規則
- 列表按鈕權限控制
- 列表數據權限控制
- 頁面表單權限控制(一對多表)
- 頁面表單權限控制(單表)
- 其他
- 二級管理員手冊
- 接口權限配置
- 平臺權限設計總覽
- 編碼開發方式
- 列表按鈕權限用法
- 列表數據權限用法
- 數據權限自定義SQL
- 表單權限用法
- UI標簽庫文檔
- AuthFilter(頁面權限標簽)
- Autocomplete(自動補全標簽)
- BaseTag(樣式和JS引入標簽)
- Choose(彈出選擇標簽)
- ComboTree(下拉樹形選擇框)
- Datagrid(數據列表標簽)
- DepartSelectTag(部門樹選擇標簽)
- DictSelect(數據字典下拉選擇框)
- FormValidation(表單提交及驗證標簽)
- HasPermissionTag(頁面權限標簽)
- Menu(左側菜單生成標簽)
- MutiLang(國際化標簽)
- OrgSelectTag(部門樹列表選擇標簽)
- SelectZTree(Ztree樹控件)
- Tabs(選項卡父標簽)
- TreeSelectTag樹分類標簽
- Upload(上傳標簽)
- UserSelectTag(用戶選擇標簽)
- WebUploader(上傳標簽)
- 查詢構造器
- 查詢過濾器
- 高級查詢構造器
- 專題功能介紹
- 國際化使用
- 多數據源使用
- 定時任務
- 平臺JWT接口文檔
- 消息中心
- Online在線開發
- Online二次開發
- Online代碼生成
- Online唯一性校驗配置
- Online查詢機制(數據權限)
- Online樹形表單配置
- Online表單填值規則
- Online表單對外接口
- Online表單控件
- Online表單配置
- Online表單高級應用
- Online報表開發
- Online圖形報表配置
- Online數據報表配置
- Online移動報表配置
- 自定義表單設計
- 自定義表單權限
- 列表空間權限控制
- 功能介紹
- 常規控件權限控制
- 自定義表單配置
- 自定義表單二次開發
- 自定義表單控件
- 自定義表單數據源
- 自定義表單模板
- 自定義表單配置
- 自定義表單高級應用
- 表單數據維護
- 附錄小技巧
- datagrid擴展屬性用法
- Formvalid新增屬性tiptype的使用
- JEECG單點集成文檔
- Jeecg定時任務開發
- JEECG常見問題貼
- Redis與Ehcache切換文檔
- Toolbar自定義js參數規則
- UI標簽規則
- 列表多表頭的設計
- 列表拓展字段展示
- 列表自定義查詢條件
- 員工入職開發規范文檔V1.0
- 數據列表合計功能
- 登錄權限攔截器排除方法
- 組織機構導入功能使用說明
- 表單字段重復校驗方法
- JEECG新技術
- 新版UI技術方案