0% ont trouvé ce document utile (0 vote)
272 vues26 pages

Java JDBC

Ce document décrit la connexion à une base de données avec Java en utilisant JDBC. Il explique les étapes pour établir une connexion, créer des requêtes et exécuter des opérations CRUD.

Transféré par

Firas Chaabene
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)
272 vues26 pages

Java JDBC

Ce document décrit la connexion à une base de données avec Java en utilisant JDBC. Il explique les étapes pour établir une connexion, créer des requêtes et exécuter des opérations CRUD.

Transféré par

Firas Chaabene
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
Vous êtes sur la page 1/ 26

JDBC

JAVA - CONNEXION BD

Equipe JAVA 2013-2014 [email protected] [email protected]


Objectifs du Chapitre

 Connexion BD/Java

 Organisation du code et architecture en couche


Plan
 Connexion BD/Java

 Design Pattern : Singleton

 Design Pattern : DAO


CONNEXION BASE DE
DONNÉES
JDBC ?

 Avant JDBC, il était difficile d’accéder à des


bases de données SQL
 Utilisation de librairies C/C++
 Utilisation d'API natives comme ODBC

 Problème majeur
 dépendance totale avec le SGBD utilisé
JDBC API ?
 API d’interaction avec un SGBD contenant :
 un ensemble de classes et d’interfaces
 Permet de:
 Établir
une connexion avec un SGBD
 Envoyer des requêtes SQL

 Récupérer des résultats de requêtes

Permettre aux programmeurs Java d’écrire un code


indépendant de la base de données et du moyen
de connexion utilisé
JDBC : Java DataBase Connectivity
JDBC : Java DataBase Connectivity
 Drivers
 chaque SGBD utilise un pilote (driver) qui lui est propre et qui
permet de convertir les requêtes JDBC dans le langage natif du
SGBD

 ledriver est un ensemble de classes qui implantent les interfaces de


JDBC

 les drivers sont le lien entre le programme Java et le SGBD


JDBC : Java DataBase Connectivity

 API JDBC
 Interfaceuniforme permettant un accès homogène aux SGBD
 Simple à mettre en œuvre

 Indépendant du SGBD support

 Supportant les fonctionnalités de base du langage SQL


Mise en œuvre de JDBC

 Importer le package en java.sql.*


 Enregistrer le driver JDBC

 Etablir la connexion au SGBD

 Créer une requête (ou instruction SQL)

 Exécuter la requête
Connexion à la base
 Etape 1 :Base de données MySQL
 Créer une base mysql ‘esprit’
Connexion à la base

 Etape 2 : MySQL JDBC Driver


 Ajouter la Librairie MySQL JDBC Driver
Connexion à la base
 Etape 3 :Charger le Driver
 Class.forName("com.mysql.jdbc.Driver"); (Optional from java 5)

 Etape 4 : Etablir une connexion


 Création d’un objet de type Connection : connection
 connection = DriverManager.getConnection(url, user, pwd);

 Etape 5 : Traiter les exceptions


 ClassNotFoundException
 SQLException
Connexion à la base
 Les Attribues de la classes :

 String url = "jdbc:mysql://localhost:3306/esprit";


 String user = "root";

 String pwd = "";

 Connection connection;

 Statement ste;
Création d’un Statement
 L'interface Statement possède les méthodes nécessaires pour
réaliser les requêtes sur la base

exécuter des instructions SQL

 2 types de Statement :
 Statement requêtes statiques simples
 PreparedStatement requêtes dynamiques précompilées
Création d’un Statement
 Créer un STATEMENT
 ste = connection.createStatement();

 Requête SQL d’ajout


 String
req = "Insert into personne
values(‘1','Ali',‘Mahmoud')";

 Exécuter la Requête
 ste.executeUpdate(req) insert, update, delete
 ste.executeQuery(req) select
Méthodes CRUD
 Créer 4 méthodes static :
 static void Ajouter(String Nom, String Prenom){ }
 static void UpdatePrenom(int id, String Prenom){ }
 static void Delete(int id){ }
 static void AfficherAll(){ }

Utiliser le ResultSet pour récupérer le résultat de

executeQuery
 Traiter les exceptions pour chaque Méthode
(ajouter throws SQLException )
Fermer les connexions
 Pour terminer proprement un traitement, il faut
fermer les différents espaces ouverts

 resultset.close(); (deprecated since java 5)


 statement.close(); (deprecated since java 5)
 connection.close(); (deprecated since java 5)
Correspondance Java / BD
Type JDBC/SQL Méthode Java
 CHAR, VARCHAR getString()
 BINARY, VARBINARY getBytes()
 BIT getBoolean()
 INTEGER getInt()
 BIGINT getLong()
 SMALLINT getShort()
 REAL getFloat()
 DOUBLE, FLOAT getDouble()
 DATE getDate()
 TIME getTime()
 TIME STAMP getTimeStamp()
Requêtes précompilées : PreparedStatemt
 PreparedStatemt : envoie une requête sans paramètres à la base
de données et
 plusrapide qu’un Statement classique
 le SGBD n’analyse qu’une seule fois la requête

requêtes dynamiques précompilées (avec paramètres


d’entrée/sortie)

 Laméthode prepareStatement() de l’objet Connection crée un


PreparedStatement
Requêtes précompilées : PreparedStatemt

PreparedStatement ps = c.prepareStatement("SELECT *
FROM Table-name WHERE att = ? ");

 les paramètres sont spécifiés par un " ? "


 ils sont ensuite instanciés par les méthodes setInt(),
setString(), setDate()…
 ces méthodes nécessitent 2 arguments (setInt(n, valeur))
 n(int) : le numéro relatif de l’argument dans la requête
 Valeur : la valeur à positionner
Exemple : Insertion (Requête Statique)

ste = connexion.createStatement();
String req = "INSERT INTO personne (`id` ,`nom` , `prenom`)
VALUES (NULL , ‘Test', ‘Test')";

ste.executeUpdate(req);
Exemple : Insertion (PreparedStatement)

PreparedStatement stm = connection.prepareStatement


("insert into personne (nom,prenom) values (?,?)");

stm.setString(1,"Ali");
stm.setString(2,"Mahmoud");
stm.executeUpdate();
Exemple : Projection sur une Table

String requête = "SELECT * FROM personne";


ResultSet res = ste.executeQuery(requete);
while (res.next()) {
System.out.println(res.getInt (1));
System.out.println(res.getString(2));
}
Exemple : Modification

String rq = "UPDATE personne SET `nom` = ‘"+varNom+"‘


WHERE `id` =‘"+varId+"‘;";

ste.executeUpdate(rq);
Exemple : Suppression

String rq = "DELETE FROM `personne` WHERE `id` ='"+id+"';";

ste.executeUpdate(rq);

Vous aimerez peut-être aussi