Utilisation du plan de travail pour configurer le support des instructions SQL statiques dans le code pureQuery

Une fois que vous avez créé des interfaces qui déclarent les méthodes annotées, vous pouvez commencer à configurer et créer des modules DB2 contenant les instructions SQL à exécuter en mode statique.

Avant de commencer

Vous ne pouvez pas exécuter SQL de manière statique si vous utilisez une base de données Oracle.

Avant toute définition d'accès, assurez-vous que les conditions ci-après sont réunies.
  • L'ensemble de privilèges de l'utilisateur qui appelle l'utilitaire pureQuery StaticBinder doit inclure l'un des droits suivants :
    • Le droit SYSADM
    • Le droit DBADM
    • Si le module n'existe pas, le privilège BINDADD ainsi que l'un des privilèges suivants :
      • Le privilège CREATEIN
      • DB2 for z/OS : le droit PACKADM pour la collection ou pour toutes les collections
      • DB2 Database for Linux, UNIX, and Windows : le droit IMPLICIT_SCHEMA pour la base de données si le nom de schéma du module n'existe pas
    • DB2 for z/OS : si le module existe, le privilège BIND pour ce module
    • DB2 Database for Linux, UNIX, and Windows : si le module existe :
      • Le privilège ALTERIN pour le schéma
      • Le privilège BIND pour le module
  • DB2 for Linux, UNIX, and Windows : l'utilisateur doit également disposer de tous les privilèges nécessaires pour compiler les instructions SQL statiques de l'application. Les privilèges accordés aux groupes ne permettent pas de vérifier les autorisations pour les instructions statiques. Si l'utilisateur dispose du droit SYSADM mais sans privilèges explicites pour la définition des accès, le gestionnaire de la base de données DB2 accorde automatiquement un droit DBADM explicite.

Procédure

Pour utiliser le plan de travail afin de configurer le support des instructions SQL statiques dans le code pureQuery :

  1. Pour regrouper les instructions SQL de plusieurs interfaces dans un module DB2 distinct, étendez l'une des interfaces avec une autre interface.
  2. Editez le fichier Default.genProps en spécifiant la collection, les noms racine et les versions des modules DB2 à créer.
  3. Affichez les instructions SQL de vos interfaces et les informations associées.
    Lorsque vous sélectionnez le dossier de votre projet dans l'explorateur de modules ou l'un des fichiers de votre projet Java, la vue Structure SQL est remplie.

    Si la vue ne s'ouvre pas, sélectionnez Fenêtre > Afficher la vue > Autre. Dans la fenêtre Afficher la vue, sélectionnez Autre > Structure SQL.

    A ce stade, la vue se limite à l'affichage des modules dont les accès n'ont pas été définis, dans la mesure où vous n'avez pas encore procédé à cette définition.

  4. Editez le fichier Default.bindProps en spécifiant les options déterminant la façon dont les accès des instructions SQL doivent être définis dans les modules DB2.
  5. Définissez les accès des instructions SQL présentes dans les interfaces de votre projet Java en effectuant l'une des opérations suivantes :
    • Pour définir les accès de toutes les interfaces d'un projet Java, cliquez avec le bouton droit de la souris sur le projet et sélectionnez pureQuery > Lier l'application pureQuery.
    • Pour définir les accès d'une ou de plusieurs interfaces dans un projet Java, cliquez avec le bouton droit de la souris sur les interfaces de votre choix puis sélectionnez pureQuery > Lier.
    La fenêtre Sélectionner la connexion s'ouvre pour vous permettre de choisir la base de données DB2 à utiliser. Vous pouvez sélectionner une base qui n'est pas associée à votre projet Java.
    Avertissement : Vous ne pouvez pas effectuer l'opération de définition d'accès si vous travaillez hors ligne. Vous devez être connecté à la base de données DB2 pour laquelle vous allez définir les accès.
  6. Affichez les modules DB2 ainsi que les instructions SQL qu'ils contiennent. Sélectionnez le dossier du projet et consultez la page SQL de la vue Structure SQL pour vérifier que vous avez créé les modules DB2 que vous souhaitiez créer.

    Pour vérifier que le module a été créé dans la base de données, cliquez dessus avec le bouton droit de la souris dans la vue Structure SQL, puis sélectionnez Afficher dans l'explorateur de sources de données.

    Avant d'exécuter votre code pureQuery, vous pouvez recréer des modules DB2 avec d'autres options ou créer de nouvelle versions de modules.

  7. Exécutez votre application de telle sorte que les instructions SQL dont les accès sont définis soient exécutées en mode statique.

Résultats

Vous pouvez utiliser la vue Structure SQL pour identifier et résoudre les incidents liés à vos instructions SQL.

Si vous modifiez une ou plusieurs instructions SQL dans une interface ou si vous ajoutez des instructions à une interface : Vous pouvez changer les versions des modules DB2 contenant ces instructions ou vous pouvez créer de nouvelles versions de modules.

Si vous prévoyez de déployer votre application dans un fichier JAR : Dans le plan de travail, la ligne defaultOptions du fichier Default.bindProps s'applique à toutes les interfaces de votre projet, sauf en ce qui concerne les interfaces pour lesquelles vous spécifiez les options individuellement dans ce fichier. Avant déploiement de votre application dans un fichier JAR, assurez-vous que le fichier Default.bindProps comporte une entrée pour chacune des interfaces contenant les instructions SQL dont vous voulez définir les accès. L'utilitaire pureQuery StaticBinder, que vous devez exécuter depuis une ligne de commande de la base de données sur laquelle vous déployez votre application, opère uniquement sur les interfaces qui sont répertoriés dans le fichier Default.bindProps.

Pour ajouter les interfaces :
  1. Dans le dossier pureQueryFolder de votre projet, cliquez sur le fichier Default.bindProps avec le bouton droit de la souris puis sélectionnez pureQuery > Ajouter ou supprimer des entrées.
  2. Dans la fenêtre Ajouter ou supprimer des entrées, ajoutez toutes les interfaces nécessaires.

Si vous pensez être amené à revoir les noms racines des modules, les ID collection et les versions de vos modules DB2 après déploiement de l'application, vous devez également vous assurer que votre fichier Default.genProps contient une entrée pour chacune des interface sur lesquelles porte la ligne defaultOptions. Vous pouvez également ajouter des entrées à ce fichier par clic droit de la souris depuis la fenêtre Ajouter ou supprimer des entrées.


Commentaires