Documentation PostgreSQL 7.4.29 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Chapitre 31. Interface JDBC | Avance rapide | Suivant |
Cette section décrit comment charger et initialiser le pilote JDBC dans vos programmes.
Toute source utilisant JDBC a besoin d'importer le paquet java.sql en utilisant :
import java.sql.*;
Note : N'importez pas le paquet org.postgresql. Si vous le faites, vos sources ne compileront pas car javac sera en pleine confusion.
Avant de vous connecter à une base de données, vous avez besoin de charger le pilote. Deux méthodes sont disponibles et celui à utiliser dépend de votre code.
Dans la première méthode, votre code charge implicitement le pilote en
utilisant la méthode Class.forName()
. Pour
PostgreSQL, vous devriez utiliser :
Class.forName("org.postgresql.Driver");
Ceci charge le pilote et, pendant le chargement, le pilote s'enregistre lui-même avec JDBC.
Note : La méthode
forName()
peut renvoyerClassNotFoundException
si le pilote n'est pas disponible.
C'est la méthode la plus communément utilisée mais elle oblige votre code à utiliser uniquement PostgreSQL. Si votre code peut accéder à d'autres systèmes de bases de données dans le futur et que vous ne souhaitez pas utiliser d'extensions spécifiques à PostgreSQL, alors la deuxième méthode est conseillée.
La seconde méthode passe le pilote en paramètre à la JVM lors de son lancement en utilisant l'argument -D. Exemple :
java -Djdbc.drivers=org.postgresql.Driver example.ImageViewer
Dans cet exemple, la JVM tentera de charger le pilote
pendant son initialisation. Ceci fait, ImageViewer
est lancée.
Cette méthode est la meilleure car elle permet à votre code d'être utilisé avec d'autres paquets de bases de données sans recompiler le code. Le seul élément qui pourrait changer est l'URL de connexion. Ce point est traité tout de suite après.
Une dernière chose : Quand votre code essaie d'ouvrir une
Connection
et que vous obtenez une
SQLException
de type No driver
available , ceci est probablement dû au fait que pilote ne fait
pas partie du chemin de classe ou que la valeur du paramètre n'est pas
correcte.
Avec JDBC, une base de données est représentée par une URL (Uniform Resource Locator). Avec PostgreSQL, elle peut prendre l'une des formes suivantes :
jdbc:postgresql:base_de_données
jdbc:postgresql://hôte/base_de_données
jdbc:postgresql://hôte:port/base_de_données
Les paramètres ont les significations suivantes :
Le nom d'hôte du serveur. Par défaut, localhost. Pour spécifier une adresse IPv6, vous devez englober le paramètre hôte avec des crochets, par exemple :
jdbc:postgresql://[::1]:5740/accounting
Le numéro de port sur lequel le serveur est en écoute. Par défaut, il s'agit du numéro de port standard de PostgreSQL (5432).
Le nom de la base de données.
Pour vous connecter, vous avez besoin d'une instance de
Connection
provenant de JDBC.
Pour cela, vous utilisez la méthode
DriverManager.getConnection()
:
Connection db = DriverManager.getConnection(url, username, password);
Pour fermer la connexion de la base de données, appelez simplement la
méthode close()
pour la
Connection
:
db.close();
Précédent | Sommaire | Suivant |
Interface JDBC | Niveau supérieur | Lancer une requête et traiter les résultats |