下一步是查詢提交的資料,並以表格方式顯示結果。 為此,我們將使用下列軟體
QueryBuilder — 用於建立查詢的UI元件
資料表 — 以表格方式顯示查詢結果。
已建立下列UI,以啟用查詢已提交的資料。 只有JSON結構中標示為必要的元素可供查詢。 在下方的螢幕擷取中,我們會查詢所有傳送首頁為SMS的提交。
查詢提交資料的範例UI不會使用QueryBuilder中提供的所有進階功能。 你被鼓勵自己試試。
本教學課程的目前版本不支援查詢多欄。
選擇表單以執行查詢時,會對/bin/getdatakeysfromschema進行GET呼叫。 此GET呼叫會傳回與表單結構相關聯的必要欄位。 接著,必填欄位會填入QueryBuilder下拉式清單中,供您建立查詢。
以下代碼段對JSONSchemaOperations服務的getRequiredColumnsFromSchema方法進行調用。 我們會將架構的屬性和必要元素傳遞至此方法呼叫。 此函式呼叫傳回的陣列隨後將用來填入查詢產生器下拉式清單
public JSONArray getData(String formName) throws SQLException, IOException {
org.json.JSONArray arrayOfDataKeys = new org.json.JSONArray();
JSONObject jsonSchema = jsonSchemaOperations.getJSONSchemaFromDataBase(formName);
Map<String, String> refKeys = new HashMap<String, String>();
try {
JSONObject properties = jsonSchema.getJSONObject("properties");
JSONArray requiredFields = jsonSchema.has("required") ? jsonSchema.getJSONArray("required") : null;
jsonSchemaOperations.getRequiredColumnsFromSchema(properties, arrayOfDataKeys, "", jsonSchema, refKeys,
requiredFields);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return arrayOfDataKeys;
}
按一下GetResult按鈕時,會對"/bin/querydata"發出Get呼叫。 我們會透過查詢參數將QueryBuilder UI建立的查詢傳遞至servlet。 然後,Servlet將此查詢按摩為SQL查詢,以用於查詢資料庫。 例如,如果您正在搜索以檢索名為「Mouse」的所有產品,則查詢生成器的查詢字串將為$.productname = 'Mouse'。 然後,此查詢將轉換為以下內容
從aemformswithjson中選取* 。 JSON_EXTRACT(formsubmissions.formdata,"$.productName ")= 'Mouse'的表單提交
然後會傳回此查詢的結果,以填入UI中的表格。
要使此示例在本地系統上運行,請執行以下步驟