31.2. Initialiser le pilote

Cette section décrit comment charger et initialiser le pilote JDBC dans vos programmes.

31.2.1. Importer JDBC

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.

31.2.2. Charger le pilote

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 renvoyer ClassNotFoundException 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.

31.2.3. Se connecter à la base de données

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 :

Les paramètres ont les significations suivantes :

hôte

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

port

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).

base_de_données

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);

31.2.4. Fermer la connexion

Pour fermer la connexion de la base de données, appelez simplement la méthode close() pour la Connection :

db.close();