Précédent Suivant

Connexion à un SGBD


Différents types de pilotes JDBC
Connexion à un SGBD

Java s'est penché très tôt sur le problème de la connexion aux bases de données relationnelles car elles sont au coeur des applications de l'entreprise. Java dispose d'un package dédié à cette connexion : java.sql ou JDBC pour Java DataBase Connectivity. JDBC est un ensemble de classes et d'interfaces permettant de réaliser des connexions vers des bases de données, d'effectuer des requêtes, et quelques autres fonctionnalités comme la conversion de types Java en SQL et inversement. De manière générale, un programme utilisant JDBC fonctionne de la façon suivante :

1 - Connexion avec la base
2 - Emission de requêtes
3 - Récupération des données
4 - Fermeture de la connexion.

La première étape est prise en charge par un composant externe au programme, un pilote logiciel. C'est le driver JDBC de la base de données. La seconde fait appel à des connaissances en SQL. On va tout simplement emettre des requêtes SQL à la base. Le troisième point va essentiellement consister à convertir les types SQL en types Java. Le dernier point contient de façon sous-jacente la notion de transaction. L'API JDBC supporte les principaux modes de transaction et les fonctions de "commit" et "rollback". Par contre, leur implémentation est confiée au driver de la base.
L'interface java.sql.Driver est l'abstraction d'un pilote JDBC. Dans la plupart des cas, un pilote de base de données doit simplement fournir une implémentation des classes abstraites de l'API JDBC. Côté client, on aura donc besoin d'une librairie de classes pour effectuer la connexion à la base.

Différents types de pilotes JDBC
Javasoft propose de classer les pilotes JDBC en quatre catégories :
Type 1 : Pont entre JDBC et ODBC. Nécessite l'emploi d'une librairie native.
Type 2 : Accès en Java aux librairies natives du moteur de base de données. Nécessite l'emploi d'une librairie native.
Type 3 : Pilote tout Java. Utilisation d'un protocole (propriétaire, défini par le fournisseur du pilote) entre un client Java et la base de données. Il n'est pas nécessaire d'utiliser des librairies natives.
Type 4 : Comme le précédent, mais utilisation du protocole du moteur de la base de données.

Connexion avec une base de données
Pour établir une connexion avec une source de données, il faut connaître son nom et lui associer un pilote. La convention de nommage retenue pour JDBC est dérivée de celle utilisée pour les URL sur Internet. On retrouve ainsi un protocole, un nom d'hôte et une partie qui elle est variable. La forme générale est la suivante :

jdbc:<sous-protocole>:<complément>

Pour une source de données locale avec un pilote de type 1, l'URL pourraît être de la forme :

jdbc:odbc:Annuaire

si Annuaire est une source ODBC connue du système.
Pour une source de données distante, l'URL pourra être de la forme :

jdbc:oracle://serveur:port/base;paramètre=valeur...

Dans tous les cas il faut vérifier avec la documentation fournie la syntaxe exacte supportée par le pilote.

Les différentes étapes pour utiliser JDBC
1
- Enregistrement du pilote à l'aide le la méthode statique registerDriver du DriverManager
2 - Création de la connexion à l'aide de la méthode statique getConnection du DriverManager avec l'URL de la base passée en paramètre
3 - Récupération d'un objet Statement qui possède les méthodes nécessaires pour exécuter des requêtes sur la base
4 - Exécution de requêtes à l'aide de la méthode executeQuery de Statement
5 - Récupération des résultats à l'aide de ResultSet


Précédent Suivant