Java查詢

5 Java查詢

Java查詢是指基於Java資料來源中Java查詢物件作為查詢源的一種資料集。創建Java查詢,必須先配置好Java資料來源。

上圖顯示了從Java資料來源到分析報表建立的整個流程,從該流程圖中可以瞭解以下資訊:

  • “Java查詢物件”是“新建Java查詢”的前提。

  • “新建Java查詢”環節是實現用Java查詢新建分析報表的前提。

操作入口

平台管理>平台資源節點及其目錄節點上右鍵選擇 新建查詢>JAVA查詢,或在資源快捷按鈕區域選擇資料集>JAVA查詢,則彈出選擇資料來源視窗,根據需要選擇資料來源,則進入建立“JAVA查詢”介面。

介面介紹

Java查詢”介面主要分為以下幾個區域:

  • 可選資源區:該區列出了Java查詢允許使用的Java查詢物件。使用者只需將Java查詢物件下面的欄位拖拉到欄位區。該區最下方的搜尋引擎可以對該區中的資源快速搜索定位。

  • 欄位區:用於定義輸出欄位。輸出欄位是指使用者最終查詢的資料欄位。

  • 參數綁定區:將Java查詢物件的參數與公共設定中定義的參數進行綁定的操作區。

  • 工作區:該區顯示所有Java查詢級別的相關資源,如:輸出欄位、計算欄位、輸出參數,並通過相應的右鍵功能表對這些資源進行管理。該區與“屬性面板”結合起來用於對這些資源的屬性進行管理。

  • 屬性面板:該區需要與“工作區”結合使用,按一下工作區中的任一資源,即在屬性面板中列出該資源的相關屬性資訊。

  • 工具列:該區列出了所有可用於編輯Java查詢的工具按鈕。工具列中的按鈕從左到右依次說明如下:

按鈕

功能說明

儲存

儲存資料集到預設路徑。

另存為

儲存資料集到使用者指定路徑。

視圖

用於設定隱藏顯示“Java查詢”介面區域,主要有:

資源區:即可選資源區。

屬性區:即工作區和屬性面板區的統稱。

定義多重表頭

對Java查詢的表頭進行重定義。

參數佈局

調整參數在某Java查詢對應的報表中的位置。

Excel模板設定

把當前Java查詢的資料結果填充到使用者自訂的Excel範本中。

進階設定

用於設定當前Java查詢的快取策略:

  • 自動快取:表示採用快取策略。

  1. 即若在未清空快取的前提下,基於當前Java查詢建立的報表在第一次打開並刷新資料後,讀取的資料存儲在快取中;

  2. 再次打開報表刷新資料時會從快取中讀取資料,從而提高資料查詢速度。

  • 禁止快取:表示禁止快取策略。

  • 系統設定:表示採用系統選項>公共設定>自動快取中的設定。

預覽資料

對新建或修改的Java查詢進行預覽。

資料抽取

用於將當前資料集的資料抽取到MPP。

範例:建立Java查詢

下面,我們將基於已創建的Java查詢物件來演示如何建立Java查詢。建立Java查詢,請執行下列操作:

1、在平台管理>平台資源節點及其目錄節點上右鍵選擇新建查詢>JAVA查詢,或在資源快捷按鈕區域選擇資料集>JAVA查詢,打開“選擇Java查詢物件”對話方塊。

2、在“選擇Java查詢物件”對話方塊中選定Java查詢物件“使用者訪問功能權限”,按一下確定按鈕,進入“Java查詢”介面。

3、在資原始目錄區中把該對象下的欄位“功能ID”、“功能別名”、“使用者別名”、“使用者名”拖拉到欄位區。

4、在參數綁定區按一下綁定按鈕,彈出“選擇參數”對話方塊,選定綁定的參數,按一下確定按鈕。如下圖所示:

5、按一下工具列中的儲存按鈕,確定儲存路徑即成功建立Java查詢。

5.1 Java查詢欄位支援分類

5.1.1 需求背景

專案中可能出現Java查詢欄位比較多的情況,數量可能達到幾百或幾千個,這樣在Java查詢物件定義介面中顯示參數及結果集欄位時,瀏覽器介面可能無法回應,另外新建Java查詢介面的資源樹中顯示太多的欄位也不方便查找與使用。因此,需要Java查詢能夠支援查詢欄位按分類顯示。

5.1.2 實現方案

在Java查詢的介面(Synapse.freequery.metadata.IJavaQueryData)中增加支援欄位分類的相關介面,如下所示:

展開原碼

5.1.3 注意事項

在Java查詢物件定義介面中顯示參數及結果集欄位時,通過"表格樹"控制項動態顯示結果集欄位。

1、在同一個Java查詢實現中由方法getOutputFields返回的所有輸出欄位(含所有分類下的輸出欄位)的欄位名稱不能重複。 2、產品會在適當的時機自動呼叫方法setSelectedFields以告知實現類當前Java查詢所選擇的報表欄位。實現類需要根據這些欄位資訊在方法"public GridData getGridData(int from, int count);"中返回對應欄位的資料。 3、實現分類介面後,原介面方法"public List<JavaQueryOutputField> getOutputFields();"可以返回空實現。

5.1.4 實現範例

展開原碼

Last updated

Was this helpful?