0% ont trouvé ce document utile (0 vote)
119 vues9 pages

13-Java JDBC

Ce document présente l'API JDBC en Java pour se connecter à une base de données. Il décrit les classes et interfaces clés de JDBC comme DriverManager, Connection, Statement et ResultSet. Il montre comment charger un pilote, établir une connexion, exécuter des requêtes SQL et traiter les résultats.

Transféré par

Achraf Fikri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
119 vues9 pages

13-Java JDBC

Ce document présente l'API JDBC en Java pour se connecter à une base de données. Il décrit les classes et interfaces clés de JDBC comme DriverManager, Connection, Statement et ResultSet. Il montre comment charger un pilote, établir une connexion, exécuter des requêtes SQL et traiter les résultats.

Transféré par

Achraf Fikri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 13

JDBC

Introduction
 JDBC (Java DataBase Connector) est une API chargé
de communiquer avec les bases de données en Java.

 Les classes et interfaces de l’API JDBC figurent dans


le package [Link] : import [Link].*;

 JDBC peut être utilisé pour accéder à n'importe quelle


base de données à partir de:
 Simple application Java

 Une servlet

 Page JSP, …

20/06/2016 cours JEE - Dr. Abdessamad Belangour 626

1
Travail avec une base de données
 JDBC permet de travailler avec les base de données
de la même façon quelque soit leur fournisseur
(Oracle, SQL Server, MySQL, PostgreSQL,…).

 Il suffit de télécharger la bibliothèque qui assure la


communication entre Java et cette base de donnée.

 Cette bibliothèque s'appelle Driver ou Pilote ou


Connecteur.

 Elle figure sur le site du fournisseur du SGBDR utilisé.

20/06/2016 cours JEE - Dr. Abdessamad Belangour 627

Chargement du pilote
 Dans ce cours nous allons prendre MySQL comme
exemple.

 La version du Driver MySQL pour Java que nous allons


utiliser se nomme " mysql-connector-java-5.0.4-
[Link]"

 Pour se connecter à une base de données il faut


charger son pilote.

 La documentation de la Bdd utilisée fournit le nom de


la classe à utiliser.

Java - Dr A. Belangour 628

2
Chargement du pilote
 Le chargement se fait comme suit :
[Link]("nom_classe_acces_bdd");

ou

[Link]("nom_classe_acces_bdd").newInstance();

 Exemple :
 Dans le cas de la Bdd MySQL, ce chargement est comme
suit : [Link]([Link])

 Une fois chargée, la classe JDBC qui se nomme


DriverManager prend en charge le driver pour
communiquer avec la base de donnée.

20/06/2016 cours JEE - Dr. Abdessamad Belangour 629

Classes de l'API JDBC


 Les classes et interfaces les plus usuelles sont les
suivantes:
 DriverManager (classe): charge et configure le driver de la
base de données.

 Connection (interface): réalise la connexion et


l'authentification à la base de données.

 Statement (interface): contient la requête SQL et la


transmet à la base de données.

 PreparedStatement (interface): représente une requête


paramétrée

 ResultSet (interface): représente les résultat d'une requête


de sélection.
20/06/2016 cours JEE - Dr. Abdessamad Belangour 630

3
Etablissement de la connexion
 Pour se connecter à une base de données, il faut
disposer d'un objet Connection créé grâce au
DriverManager en lui passant :
 l'URL de la base à accéder , Le login, Le mot de passe

 Exemple avec MySQL:


 String url="jdbc:mysql://localhost/mydb";

 String login="root";

 String password="motdepasse";

 Connection con=[Link](url,
login, password);

20/06/2016 cours JEE - Dr. Abdessamad Belangour 631

Exécution de requêtes SQL


 L'interface Statement permet d'envoyer des requêtes
SQL à la base de données.

 Un objet Statement est créé grâce à un objet Connection


de la façon suivante : Statement st = [Link]();

 Il possède deux méthodes :


 executeUpdate() : Insertion, suppression, mise à jour.
 int n= [Link]("INSERT INTO Etudiant VALUES
(3452,'Taha','Ali')");

 executeQuery() : Selection.
 ResultSet res= [Link]("SELECT * FROM
Etudiant");

20/06/2016 cours JEE - Dr. Abdessamad Belangour 632

4
Requêtes avec paramètres
 L'interface preparedStatement permet d'envoyer
des requêtes SQL à la base de données en prenant
des paramètres.

 Ces paramètres sont représentés par des points


d'interrogation(?) et doivent être spécifiés avant
l'exécution.

 Exemple :
 PreparedStatement p= [Link](
"select* from Etudiant where cne=? And nom= ? ");

Java - Dr A. Belangour 633

Requêtes avec paramètres


[Link](1, 3452345);

[Link](2, "Alaoui");

resultats = [Link]();

Java - Dr A. Belangour 634

5
Résultat d’une requête de sélection
 Une requête de sélection retourne un ResultSet

 ResultSet est un ensemble d'enregistrements


constitués de colonnes qui contiennent les données.

 Les principales méthodes :


 next() : se déplace sur le prochain enregistrement :
retourne false si la fin est atteinte. Le curseur pointe
initialement juste avant le premier enregistrement.

 getInt(int/String) : retourne le contenu de la colonne dont


le numéro (resp. le nom) est passé en paramètre sous
forme d'entier.

20/06/2016 cours JEE - Dr. Abdessamad Belangour 635

Résultat d’une requête de sélection


 getFloat(int/String) : retourne le contenu de la colonne
sous forme de nombre flottant.

 getDate(int/String) : retourne le contenu de la colonne


sous forme de date.

 Close() : ferme le ResultSet

Java - Dr A. Belangour 636

6
Résultat d’une requête de sélection
 Exemple :
ResultSet res= [Link]("SELECT * FROM Etudiant");

while ([Link]()) {

[Link]("CNE= "+[Link](1)+" Nom= " +

[Link](2)+" Prénom= "+[Link](3));

[Link]();

20/06/2016 cours JEE - Dr. Abdessamad Belangour 637

Exemple complet
import [Link].*;

public class Main {

public static void main(String[] args) {

String url="jdbc:mysql://localhost/etudiantsDB";

String driver = "[Link]";

try {

[Link](driver).newInstance();

Connection con=[Link](url,"root","");

Statement st = [Link]();

Java - Dr A. Belangour 638

7
Exemple complet
ResultSet res= [Link]("SELECT * FROM Etudiant");

while ([Link]()) {

[Link]("CNE= "+[Link](1)+" Nom= "

+[Link](2) + " Prénom= "+[Link](3 ));

[Link]();

[Link]();

[Link]();

Java - Dr A. Belangour 639

Exemple complet
catch (Exception e) {

[Link]("Erreur : " + [Link]() + " source : " +

[Link]());

Java - Dr A. Belangour 640

8
Métadonnées sur la base de données
 Il est possible aussi d’obtenir des informations sur la
base de données grâce aux objets suivants :
 DatabaseMetaData : informations à propos de la base de
données : nom des tables, index, version ...

 ResultSetMetaData : informations sur les colonnes (nom


et type) d'un ResultSet

20/06/2016 cours JEE - Dr. Abdessamad Belangour 641

Métadonnées sur la base de données


 Exemple :
try {

ResultSetMetaData meta= [Link]();

int nbCols = [Link]();


while ([Link]()) {

for (int i = 1; i <= nbCols; i++)

[Link](ré[Link](i) + " ");

[Link]();

catch (SQLException e) { //traitement de l'exception }

Java - Dr A. Belangour 642

Vous aimerez peut-être aussi