Traitement des instructions SQL avec JDBC

Traitement des instructions SQL avec JDBC

  1. Objectifs

    • Etre capable d’interroger une base de données MySQL avec JDBC
  2. Présentation

    • Une application web (j2ee dans notre cas) peut être schématisée de la façon suivante:

    • 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.

    • Deux approches différentes sont donc possibles, qui sont illustrées dans la figure ci-dessous.
    • Traitement des instructions SQL avec JDBC

    • 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 :
      1. 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.
      2. 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.
      3. 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.
      4. setAutoCommit, commit, rollback : gèrent les transactions sur la base de données.
      5. 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.
      6. close et isClosed : gèrent la fermeture d’une connexion.



  3. Les étapes de connection

    • Traitement des instructions SQL avec JDBC

    • Il existe 5 étapes pour connecter une application Java à la base de données à l’aide de JDBC. Ils sont comme suit:
      1. É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.
      2. 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.
        • Statement stmt=con.createStatement();

      3. Exécutez la requête
        • La méthode executeQuery () de l’interface Statement 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éthode executeUpdate 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.
        • 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));
          }
      4. Traiter l’objet ResultSet.
        • 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
          }
      5. Fermez la connexion.
        • La méthode close () de l’interface de connexion est utilisée pour fermer la connexion.
  4. 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:
    • Traitement des instructions SQL avec JDBC

    • 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)
      1. Application
        • Réaliser la page suivante, en utilisant seulement le JSP:
        • Traitement des instructions SQL avec JDBC

      2. 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)
      1. Application
        • Réaliser la page suivante, qui permet d’afficher la fiche d’un apprenant, en utilisant seulement le JSP:
        • Traitement des instructions SQL avec JDBC

      2. Solution
        • Essayez de faire l’application de votre côté avant de regarder la Solution !
  5. 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
      • Traitement des instructions SQL avec JDBC

    • Insérer dans la table “apprenants” à travers une page JSP(seulement)
      1. Application
        • Réaliser la page suivante, en utilisant seulement le JSP:
        • Traitement des instructions SQL avec JDBC

      2. Solution
        • Essayez de faire l’application de votre côté avant de regarder la Solution !



Abonnez vous à notre chaîne YouTube gratuitement