> Tech > 3. Accéder à  la base de données System i (2)

3. Accéder à  la base de données System i (2)

Tech - Par iTPro - Publié le 24 juin 2010
email

Voyons l’accès aux bases de données avec l’API JBDC (pour plus d’informations sur les frameworks O/R, voir l’encadré « Pour en savoir plus »).

On l’a vu, la première étape pour accéder à une base de données sur le System i consiste à créer une connexion au

3. Accéder à  la base de données System i (2)

serveur de bases de données. Dans des applications Web, vous devriez obtenir les connexions à partir des sources de données. Les sources de données fournissent l’information de pooling de connexion et de stockage nécessaires pour obtenir une connexion, y compris le nom du driver JDBC, le nom de l’hôte, et l’ID et le mot de passe utilisateur (facultatif). Les sources de données ont beaucoup d’autres propriétés que vous pouvez configurer au moyen d’une interface administrative ou par programme. Pour créer une source de données, procédez ainsi :

1. Sélectionnez un driver JDBC. Si le test s’effectue à partir d’un système distant (par exemple votre PC), sélectionnez le driver Toolbox. Lors du déploiement de votre application sur le System i, remplacez le driver par le driver Native (si l’application et la base de données Java résident sur le même serveur) pour des raisons de performances).

2. Créez une source de données en spécifiant le nom de la source de données et d’autres paramètres tels que les références utilisateur. 3. Définissez les propriétés de source de données en spécifiant le nom du système, le nom de la bibliothèque, les options de trace, et ainsi de suite.

Pour bénéficier du pooling de connexion, vous devez fournir un ID et mot de passe utilisateur uniques (id et mot de passe utilisateur « application ») pour vous connecter au serveur de bases de données. Dans des applications Web, vous configurerez généralement une entrée Java Authentication and Authorization Service (JAAS) et associerez cette entrée à une source de données. Comme avec la source de données, vous pouvez configurer les entrées JAAS dans le descripteur de déploiement d’application J2EE dans WDSc. Si votre stratégie de sécurité ne permet pas l’accès « ID utilisateur application » au serveur hôte, vous pouvez passer l’ID et mot de passe de l’utilisateur final lors de l’obtention d’une connexion à partir du pool de connexion. Dans ce cas, votre pool de connexion sera associé à un utilisateur individuel, et non à l’application. Autrement dit, si 20 utilisateurs utilisent une application, il y aura 20 pools de connexion.

Dans une application Java autonome, on ne peut pas utiliser une source de données, mais on peut stocker l’information de connexion aux bases de données dans un fichier de propriétés. Le fait d’extraire l’information de connexion vers un fichier de propriétés permet d’effectuer des changements sans recompiler le code source. On peut utiliser des pools de connexion dans des applications Java autonomes. Mais ils n’auront peut-être pas un impact aussi positif sur la performance que le pooling de connexion pour des applications côté serveur, parce que les pools de connexion fonctionnent sur le client et sont associés à un ID utilisateur unique. Après vous être connectés au serveur de bases de données, vous pouvez exécuter des instructions SQL pour extraire et mettre à jour les données de la base. Les deux classes Java les plus couramment utilisées pour l’exécution d’instructions SQL sont java.sql.Statement et java.sql.Prepared- Statement.

On préférera PreparedStatement à Statement pour des raisons de performances. Selon le type d’instruction SQL, vous pouvez invoquer la requête par l’une des méthodes suivantes : execute(), executeQuery(), ou executeUpdate(). PreparedStatement Javadoc contient la description détaillée des méthodes mentionnées. En général, on utilise executeQuery() pour des instructions SQL qui renvoient un jeu de résultats, et executeUpdate() pour des instructions insert, update et delete. La figure 3 montre comment extraire des enregistrements d’après une chaîne de recherche et comment mettre à jour un enregistrement à l’aide de l’API JDBC.

Téléchargez gratuitement cette ressource

IBMi et Cloud : Table ronde Digitale

IBMi et Cloud : Table ronde Digitale

Comment faire évoluer son patrimoine IBMi en le rendant Cloud compatible ? Comment capitaliser sur des bases saines pour un avenir serein ? Faites le point et partagez l'expertise Hardis Group et IBM aux côtés de Florence Devambez, DSI d'Albingia.

Tech - Par iTPro - Publié le 24 juin 2010