L’étape suivante consiste à interroger les données envoyées et à afficher les résultats sous forme de tableau. Pour ce faire, nous utilisons les logiciels suivants :
QueryBuilder - Composant d’interface utilisateur pour la création de requêtes
Tableaux de données- Pour afficher les résultats de la requête sous forme de tableau.
L’interface utilisateur suivante a été créée pour permettre l’interrogation des données envoyées. Seuls les éléments marqués comme requis dans le schéma JSON sont disponibles pour la requête sur . Dans la capture d'écran ci-dessous, nous demandons que toutes les soumissions pour lesquelles le deliverypref est un SMS soient envoyées.
L’exemple d’interface utilisateur pour interroger les données envoyées n’utilise pas toutes les fonctionnalités avancées disponibles dans QueryBuilder. Nous vous encourageons à les essayer vous-même.
La version actuelle de ce tutoriel ne prend pas en charge l’interrogation de plusieurs colonnes.
Lorsque vous sélectionnez un formulaire pour effectuer votre requête, un appel de GET est effectué à /bin/getdatakeysfromschema. Cet appel de GET renvoie les champs obligatoires associés au schéma des formulaires. Les champs obligatoires sont ensuite renseignés dans la liste déroulante de QueryBuilder pour que vous puissiez créer la requête.
Le fragment de code suivant effectue un appel à la méthode getRequiredColumnsFromSchema du service JSONSchemaOperations. Nous transmettons les propriétés et les éléments requis du schéma à cet appel de méthode. Le tableau renvoyé par cet appel de fonction est ensuite utilisé pour remplir la liste déroulante Query Builder
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;
}
Lorsque l’utilisateur clique sur le bouton GetResult , un appel Get est envoyé à “/bin/querydata”. Nous transmettons la requête créée par l’interface utilisateur de QueryBuilder au servlet via le paramètre de requête . Le servlet convertit ensuite cette requête en requête SQL qui peut être utilisée pour interroger la base de données. Par exemple, si vous recherchez tous les produits nommés “Souris”, la chaîne de requête de Query Builder est $.productname = 'Mouse'
. Cette requête sera ensuite convertie en :
SELECT * depuis aemformswithjson . formenvois où JSON_EXTRACT( formsubmission .formdata,"$.productName ")= 'Souris'
Le résultat de cette requête est alors renvoyé pour renseigner le tableau dans l’interface utilisateur.
Pour que cet exemple s’exécute sur votre système local, procédez comme suit :