Traitement des instructions SQL avec JDBC
Sommaire
- 1- Objectifs
- 2- Présentation
- 3- Les étapes de connection
- 4- Accéder à une Base de données et afficher les données d’une table
- 4.1- Afficher la table "apprenants" vers la console
- 4.2- Afficher la table (liste des apprenants) "apprenants" vers une page JSP(seulement)
- 4.3- Application
- 4.4- Solution
- 4.5- Afficher la table (un apprenant) "apprenants" vers une page JSP(seulement)
- 4.6- Application
- 4.7- Solution
- 5- Accéder à une Base de données et Insérer les données dans une table
- 5.1- Insérer dans la table "apprenants" à travers la console
- 5.2- Insérer dans la table "apprenants" à travers une page JSP(seulement)
- 5.3- Application
- 5.4- Solution
- 5.4.1- Sommaire du cours JSP
Traitement des instructions SQL avec JDBC
-
Objectifs
- Etre capable d’interroger une base de données MySQL avec JDBC
-
Présentation
- Une application web (j2ee dans notre cas) peut être schématisée de la façon suivante:
- Deux approches différentes sont donc possibles, qui sont illustrées dans la figure ci-dessous.
- La méthode getConnection de la classe java.sql.DriverManager est l’objet qui est principalement utilisé pour effectuer des opérations sur la base de données.
- La classe de cet objet implémente l’interface java.sql.Connection dont voici les principales méthodes :
- createStatement : cette méthode renvoie une instance de java.sql.Statement utilisée ensuite pour exécuter une requête SQL sur la base de données. C’est très souvent cette méthode qui est utilisée pour établir une communication directe avec la base de données afin de la modifier, ou tout simplement pour la consulter.
- prepareStatement : quelque fois, il est préférable de préparer des requêtes afin de pouvoir ultérieurement leur affecter des variables et des données de manière dynamique. Il existe une instance de java.sql.PreparedStatement délivrée par la méthode prepareStatement qui permet de précompiler les instructions SQL paramétrées.
- prepareCall : cette méthode prépare l’appel aux procédures stockées de la base de données et renvoie une instance de java.sql.CallableStatement.
- setAutoCommit, commit, rollback : gèrent les transactions sur la base de données.
- getMetaData : cette méthode renvoie une instance de java.sql.DatabaseMetaData pour obtenir des informations sur la base de données et sur ses possibilités.
- close et isClosed : gèrent la fermeture d’une connexion.
-
Les étapes de connection
- Il existe 5 étapes pour connecter une application Java à la base de données à l’aide de JDBC. Ils sont comme suit:
- Établir une connexion.
- Pour commencer vous devez établir une connexion avec la source de données (SGBD).
- Cette connexion est représentée par un
Connectiono bjet
. Voir Connecter une JSP avec MYSQL pour plus d’informations. - Créez une déclaration.
- Une fois la connexion établie, il est possible d’exécuter des requêtes SQL.
- La méthode
createStatement ()
de l’interface de connexion est utilisée pour créer une instruction. L’objet de statement est responsable de l’exécution des requêtes avec la base de données. - Exécutez la requête
- La méthode
executeQuery ()
de l’interfaceStatement
permet d’exécuter des requêtes sur la base de données. - La méthode
executeQuery
permet de faire des sélections. Vous pouvez également utiliser une méthodeexecuteUpdate
pour les mises à jour, les insertions et les suppressions. - Cette méthode renvoie l’objet de
ResultSet
qui peut être utilisé pour obtenir tous les enregistrements d’une table. - Traiter l’objet ResultSet.
- Fermez la connexion.
- La méthode
close ()
de l’interface de connexion est utilisée pour fermer la connexion.
La communication avec une base de données depuis une application JSP nécessite la présence d’un pilote (driver) propriétaire écrit pour l’API JDBC.
Statement stmt=con.createStatement();
public ResultSet executeQuery(String sql)throws SQLException String requete = "SELECT * FROM apprenants"; ResultSet résultats=stmt.executeQuery(requete); while(résultats.next()){ System.out.println(résultats.getInt(1)+" "+résultats.getString(2)); }
ResultSet résultats = null; String requete = "SELECT * FROM apprenants"; try { Statement stmt = con.createStatement(); résultats = stmt.executeQuery(requete); } catch (SQLException e) { //traitement de l'exception }
Accéder à une Base de données et afficher les données d’une table
- En supposant que vous avez une base de données nommé « gestion-apprenants » dans votre base de données MySQL avec la table « apprenant » ayant le contenu suivante:
-
Afficher la table « apprenants » vers la console
package jspJDBC; import java.sql.SQLException; public class affichageConsole { public static void main(String[] args) throws SQLException, ClassNotFoundException { Class.forName("com.mysql.cj.jdbc.Driver"); java.sql.Connection conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/" + "gestion-apprenants","root",""); java.sql.Statement stmt = conn.createStatement(); java.sql.ResultSet RS = stmt.executeQuery("SELECT * from apprenants"); while(RS.next()) { System.out.print(RS.getString(1)+"--"+RS.getString(2)+"--"+RS.getString(3)+"--"+RS.getString(4)); System.out.print(RS.getString(5)+"--"+RS.getString(6)+"--"+RS.getString(7)+"--"+RS.getString(8)); System.out.print("\n"); } RS.close(); stmt.close(); conn.close(); } }
Afficher la table (liste des apprenants) « apprenants » vers une page JSP(seulement)
-
Application
- Réaliser la page suivante, en utilisant seulement le JSP:
-
Solution
- Essayez de faire l’application de votre côté avant de regarder la Solution !
Afficher la table (un apprenant) « apprenants » vers une page JSP(seulement)
-
Application
- Réaliser la page suivante, qui permet d’afficher la fiche d’un apprenant, en utilisant seulement le JSP:
-
Solution
- Essayez de faire l’application de votre côté avant de regarder la Solution !
Accéder à une Base de données et Insérer les données dans une table
- L’exemple qui suit illustre l’utilisation de la méthode
executeUpdate ()
pour ajouter une ligne à la table « apprenants ». -
Insérer dans la table « apprenants » à travers la console
-
Insérer dans la table « apprenants » à travers une page JSP(seulement)
-
Application
- Réaliser la page suivante, en utilisant seulement le JSP:
-
Solution
- Essayez de faire l’application de votre côté avant de regarder la Solution !