TP6 (JDBC)

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 3

TABD 2023-2024 – Semestre 1 Université Constantine 2

Université Abdelhamid Mehri – Constantine 2


2023-2024.
Semestre 1

Techniques Avancées des BDs


– Travaux Pratiques –
Connexion à une BD via JDBC

Staff pédagogique
Nom Grade Faculté/Institut Adresse e-mail
Dr Bouanaka C MCA Nouvelles Technologies [email protected]

Etudiants concernés
Faculté/Institut Département Année Spécialité
Nouvelles Technologies TLSI Licence 3 Génie Logiciel

Objectifs du TP
 Installation et configuration d’un connecteur à une base de données.
 Comprendre les étapes de connexion et de manipulation d’une BD
 Accéder à la BD à travers l’application web

© Bouanaka C. Page 1 sur 3


TABD 2023-2024 – Semestre 1 Université Constantine 2

Etapes d’accès à une BD


Les étapes principales de la communication avec une base de données sont :
 la connexion à la base ;
 la création et l'exécution d'une requête SQL ;
 la récupération de son résultat ;
 la fermeture des différentes ressources mises en jeu.
Etape 1 : Chargement du Driver
Le chargement du driver JDBC est réalisé par le code java suivant :
try {
Class.forName( "com.mysql.jdbc.Driver" );
} catch ( ClassNotFoundException e ) { /* Gérer les éventuelles erreurs ici. */ }
Remarque : il est absolument inutile de charger le driver avant chaque connexion, une seule fois
durant le chargement de l'application suffit.

Etape 2 : Connexion à la base de données


Pour se connecter à la base de données MySQL depuis une application Java, nous avons besoin d'une URL spécifique à
JDBC, qui respecte la syntaxe générale suivante :

jdbc:mysql://nomhote:port/nomBD

Dans cette adresse, nous remarquons plusieurs éléments :


 nomhote : le nom de l'hôte sur lequel le serveur MySQL est installé. S'il est en place sur la même machine que
l'application Java exécutée, alors nous pouvons simplement spécifier localhost. Cela peut également être une
adresse IP comme 127.0.0.1.

 port : le port TCP/IP écouté par votre serveur MySQL. Par défaut, il s'agit du port 3306 ;

 nomBD : le nom de la base de données à laquelle nous souhaitons nous connecter. Dans notre exemple, il s'agit de
la BD EnseignementBD.

Etape 3 : Etablissement de la connexion


Après le chargement du driver, nous pouvons tenter d'établir une connexion avec notre base de données. L'établissement
d'une connexion s'effectue à travers l'objet DriverManager. Il suffit d'appeler sa méthode statique getConnection()
pour récupérer un objet de type Connection. La méthode prend comme argument l'adresse de la base de données, le
nom d'utilisateur et le mot de passe associé.
Connection connexion = null;

connexion = DriverManager.getConnection( url, utilisateur, motDePasse );
L'appel à cette méthode peut retourner des erreurs de type SQLException

Etape 4 : Création et Exécution d’une des requêtes SQL


Etape 4.1 : Création d’une requête
Avant de pouvoir créer des instructions SQL, nous devons d'abord créer un objet de type Statement. Il s'agit en réalité
d'une interface dont le rôle est de permettre l'exécution de requêtes. Pour initialiser cet objet, d'appeler la méthode
createStatement() de l'objet Connection précédemment obtenu.

Statement statement = connexion.createStatement();

© Bouanaka C. Page 2 sur 3


TABD 2023-2024 – Semestre 1 Université Constantine 2

Etape 4.2 : Exécution de la requête


Une fois l'objet Statement initialisé, il devient alors possible d'exécuter une requête. Plusieurs méthodes sont
proposées, nous avons en particulier deux :
 executeQuery(): cette méthode est dédiée à la lecture de données via une requête de type SELECT;

 executeUpdate(): cette méthode est réservée à l'exécution de requêtes ayant un effet sur la base de données
(écriture ou suppression), typiquement les requêtes de type INSERT, UPDATE, DELETE, etc.

Exemple de lecture :
ResultSet resultat = statement.executeQuery( " select * from inscrire where id_etud = "+10 );
Exemple d’exécution d'une requête d'écriture
int statut = statement.executeUpdate( "INSERT INTO Etudiant (ID, nom, prenom) VALUES (10, 'Benali', 'Cherif ' ; " );

Etape 5 : Accès aux résultats de la requête


L'exécution d'une requête de lecture via la méthode statement.executeQuery()retourne un objet de type ResultSet. Il
peut être considéré comme un tableau, qui contient les éventuelles données retournées par la base de données sous
forme de lignes. Pour accéder à ces lignes de données, on utilise un curseur, qui peut se déplacer de ligne en ligne:

String Query = "SELECT * FROM inscrire WHERE etud = " + 10;


ResultSet rs1 = st1.exexcuteQuery(Query);
if (r.next ()) {
code_etud= r.getInt("etud");
cours = r.getInt("cours");
}

Il existe une méthode par type de données récupérables :


 une méthode resultat.getInt() pour récupérer un entier ;

 une méthode resultat. getString() pour récupérer une chaîne de caractères ;

 une méthode resultat.getBoolean() pour récupérer un booléen ;

 etc.

Chacune de ces méthodes existe sous deux formes différentes :


 soit elle prend en argument le nom du champ visé dans la table de la base de données ;

 soit elle prend en argument l'index du champ visé dans la table de la base de données.

Etape 6 : Libération des différentes ressources utilisées


Il est nécessaire de libérer les objets crées de type : Connection, Statement, ResultSet à travers la méthode close() de
chaque objet.

© Bouanaka C. Page 3 sur 3

Vous aimerez peut-être aussi