Der nächste Schritt besteht darin, die gesendeten Daten abzufragen und die Ergebnisse tabellarisch anzuzeigen. Dazu verwenden wir die folgende Software:
QueryBuilder - UI-Komponente zum Erstellen von Abfragen
Datentabellen- Zum Anzeigen der Abfrageergebnisse in Tabellenform.
Die folgende Benutzeroberfläche wurde erstellt, um die Abfrage der gesendeten Daten zu ermöglichen. Nur die im JSON-Schema als erforderlich markierten Elemente werden für die Abfrage zur Verfügung gestellt. Im folgenden Screenshot werden alle Übermittlungen abgefragt, bei denen der Versandpref SMS ist.
Die Beispielbenutzeroberfläche zur Abfrage der gesendeten Daten verwendet nicht alle in QueryBuilder verfügbaren erweiterten Funktionen. Es wird empfohlen, sie selbst auszuprobieren.
Die aktuelle Version dieses Tutorials unterstützt nicht die Abfrage mehrerer Spalten.
Wenn Sie ein Formular zur Durchführung Ihrer Abfrage auswählen, wird ein GET-Aufruf an /bin/getdatakeysfromschema. Dieser GET-Aufruf gibt die erforderlichen Felder zurück, die mit dem Formularschema verknüpft sind. Die erforderlichen Felder werden dann in der Dropdown-Liste von QueryBuilder ausgefüllt, damit Sie die Abfrage erstellen können.
Das folgende Codefragment führt einen Aufruf der Methode getRequiredColumnsFromSchema des JSONSchemaOperations-Dienstes durch. Wir übergeben die Eigenschaften und erforderlichen Elemente des Schemas an diesen Methodenaufruf. Das Array, das von diesem Funktionsaufruf zurückgegeben wird, wird dann zum Ausfüllen der Dropdown-Liste "Query Builder"verwendet
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;
}
Wenn auf die Schaltfläche "GetResult"geklickt wird, wird Get aufgerufen an “/bin/querydata”. Die von der QueryBuilder-Benutzeroberfläche erstellte Abfrage wird über den Abfrageparameter an das Servlet übergeben. Das Servlet massiert diese Abfrage in eine SQL-Abfrage, die zum Abfragen der Datenbank verwendet werden kann. Wenn Sie beispielsweise alle Produkte mit dem Namen "Maus"abrufen möchten, lautet die Abfragezeichenfolge von Query Builder . $.productname = 'Mouse'
. Diese Abfrage wird dann in die folgende
SELECT * von aemformswithjson . formsubmissions, wobei JSON_EXTRACT( formsubmissions .formdata,"$.productName ")= 'Maus'
Das Ergebnis dieser Abfrage wird dann zurückgegeben, um die Tabelle in der Benutzeroberfläche zu füllen.
Führen Sie die folgenden Schritte aus, um dieses Beispiel auf Ihrem lokalen System auszuführen