Académique Documents
Professionnel Documents
Culture Documents
1. Introduction à JDBC
✓ Pour qu’une application java puisse communiquer avec un serveur de bases de données, elle a
besoin d’utiliser l’API JDBC (Java Data Base Connectivity)
✓ L’API JDBC est une bibliothèque(ensemble de classes java) permettant de développer des
applications capables de se connecter à des serveurs de bases de données (SGBD)
✓ L'API JDBC a été développée de telle façon à permettre à un programme de se connecter à
n'importe quelle base de données en utilisant la même syntaxe, c'est-à-dire que l'API JDBC est
indépendante du SGBD.
✓ De plus, JDBC bénéficie des avantages de Java, dont la portabilité du code, ce qui lui vaut en plus
d'être indépendante de la base de données d’être de la plate-forme sur laquelle elle s'exécute.
✓ Chaque SGBD possède ses propres pilotes JDBC.
✓ Il existe un pilote particulier « JdbcOdbcDriver » qui permet à une application Java de
communiquer avec n’importe quelle source de données via les pilotes ODBC (Open Data Base
Connectivity)
✓ La bibliothèque JDBC a été conçue comme interface pour l’exécution de requêtes SQL.
Cours JDBC 1
2. Créer une application JDBC
Pour créer une application de manipulation d’une base de données, il faut suivre les étapes suivantes :
1.charger le
2.Etablir la
pilote JDBC 3.Créer une
connexion au
correspondant requête SQL
SGBD
au SGBD voulu
5.Traiter les
6.Fermer la 4.Exécuter la
données
connexion requête
retournées
3. Démarche JDBC
Class.forName("com.mysql.jdbc.Driver");
Cours JDBC 2
4. Créer une connexion
Pour créer une connexion à une base de données, il faut utiliser la méthode statique getConnection() de
la classe DriverManager. Cette méthode fait appel aux pilotes JDBC pour établir une connexion avec le
SGBDR, en utilisant les sockets.
▪ Statement : objet utilisé pour l’exécution d’une requête SQL statique retournant les
résultats qu’elle produit.
▪ PreparedStatement : utilisé lorsqu’il est nécessaire d’exécuter une requête plusieurs fois,
avec des paramètres différents.
6. Objet Statement
À partir d’un objet connection de type Connection, on peut créer un objet de type Statement
Statement st = conn.createStatement();
Cours JDBC 3
7. Objet ResultSet
À partir d’un objet statement de type Statement, on peut récupérer un objet de type ResultSet
Exemples :
Pour parcourir un ResultSet, on utilise sa méthode next() qui permet de passer d’une ligne à l’autre. Si la
ligne suivante existe, la méthode next() retourne true. Sinon elle retourne false.
Pour récupérer la valeur d’une colonne de la ligne courante du ResultSet, on peut utiliser les méthodes
getInt(colonne), getString(colonne), getFloat(colonne), getDouble(colonne), getDate(colonne), etc…
Syntaxe:
while(rs.next()){
System.out.ptintln(rs.getInt(1));
System.out.ptintln(rs.getString("NOM_PROD"));
System.out.ptintln(rs.getDouble("PRIX"));}
Cours JDBC 4
8. Objet PreparedStatement
Pour exécuter une requête SQL, on peut également créer un objet de type PreparedStatement en utilisant
la méthode prepareStatement() de l’objet Connection.
ps.setString(1,"%"+motCle+"%");
ps.setString(2, p);
ResultSet rs=ps.executeQuery();
ps.executeUpdate();
Pour afficher, par exemple, le nom, le type et la taille de toutes les colonnes d’un ResultSet rs, on peut
écrire le code suivant :
Cours JDBC 5
ResultSetMetaData rsmd=rs.getMetaData();
// Parcourir toutes les colonnes
for(int i=1;i<=rsmd.getColumnCount();i++){
// afficher le nom de la colonne numéro i
System.out.println(rsmd.getColumnName(i));
// afficher le type de la colonne numéro i
System.out.println(rsmd.getColumnTypeName(i));
// afficher la taille de la colonne numéro i
System.out.println(rsmd.getColumnDisplaySize(i));}
// Afficher tous les enregistrements du ResultSet rs
while (rs.next()){
for(int i=1;i=<rsmd.getColumnCount();i++){
System.out.println(rs.getString(i));}}
Cours JDBC 6