Utilisation d'objets d'accès aux données pour exécuter des instructions SQL

Vous pouvez lancer une requête sur et mettre à jour les objets de base de données dans pureQuery en appelant des méthodes que vous définissez dans une interface personnalisée.

Une fois que vous avez défini une telle interface, exécutez le générateur pureQuery pour créer une classe implémentant l'interface.

La classe com.ibm.pdq.runtime.factory.DataFactory permet à l'application d'instancier les implémentations des interfaces dans lesquelles vous définissez les méthodes annotées. L'implémentation de l'interface personnalisée renvoyée par la méthode DataFactory.getData() implémente également com.ibm.pdq.runtime.Data.

Lorsque vous initialisez une implémentation d'une interface personnalisée de manière à pouvoir exécuter une instruction SQL sur une base de données, vous devez avoir une connexion à la base de données ouverte.

  1. Créez un java.sql.Connection pour la base de données.
  2. Ensuite, utilisez la méthode DataFactory.getData() pour initialiser une implémentation reliée à la base de données.

Par exemple, vous pouvez initialiser une implémentation avec une logique d'application similaire à ceci :

Connection con = DriverManager.getConnection(...);
CustomerQuery cQuery = 
    DataFactory.getData(CustomerQuery.class, con);

Lorsque vous initialisez une implémentation d'une interface personnalisée de manière à pouvoir exécuter une instruction SQL sur une source de données, la source de données doit être ouverte.

  1. Créez un javax.sql.DataSource pour la source de données.
  2. Ensuite, utilisez la méthode DataFactory.getData() pour initialiser une implémentation reliée à la source de données.

Par exemple, vous pouvez initialiser une implémentation avec une logique d'application similaire à ceci :

import javax.naming.*; 
import javax.sql.*; 
... 
Context ctx=new InitialContext(); 
DataSource ds=(DataSource)ctx.lookup("...");

CustomerQuery cQuery = 
    DataFactory.getData(CustomerQuery.class, ds);

DataFactory crée un java.sql.Connection, puis initialise un objet Data utilisant la connexion pour accéder à la structure de stockage de données sous-jacente. Si l'application a ensuite besoin de la connexion créée de manière implicite, par exemple pour modifier une propriété Connection, elle peut obtenir une référence à celle-ci en utilisant la méthode getConnection() de l'objet Data.

Avertissement : L'unité d'exécution des objets de données n'est pas sécurisée. Ne les partagez pas entre plusieurs unités d'exécution. Utilisez un objet Data uniquement dans la même unité d'exécution que celle dans laquelle il a été créé.

Commentaires