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