JDBC - Exemple de clause WHERE

Ce chapitre fournit un exemple sur la manière de sélectionner des enregistrements dans une table à l'aide de l'application JDBC. Cela ajouterait des conditions supplémentaires à l'aide de la clause WHERE lors de la sélection des enregistrements dans la table. Avant d'exécuter l'exemple suivant, assurez-vous que les éléments suivants sont en place -

  • Pour exécuter l'exemple suivant, vous pouvez remplacer le nom d'utilisateur et le mot de passe par votre nom d'utilisateur et votre mot de passe réels.

  • Votre MySQL ou toute autre base de données que vous utilisez, est opérationnel.

Étapes requises

Les étapes suivantes sont nécessaires pour créer une nouvelle base de données à l'aide de l'application JDBC -

  • Import the packages:Nécessite que vous incluiez les packages contenant les classes JDBC nécessaires à la programmation de la base de données. Le plus souvent, il suffit d' utiliser import java.sql. * .

  • Register the JDBC driver: Nécessite que vous initialisiez un pilote afin que vous puissiez ouvrir un canal de communication avec la base de données.

  • Open a connection:Nécessite l'utilisation de la méthode DriverManager.getConnection () pour créer un objet Connection, qui représente une connexion physique avec un serveur de base de données.

  • Execute a query:Nécessite l'utilisation d'un objet de type Statement pour créer et soumettre une instruction SQL pour récupérer les enregistrements d'une table, qui remplissent la condition donnée. Cette requête utilise leWHERE clause pour sélectionner les enregistrements.

  • Clean up the environment: Nécessite la fermeture explicite de toutes les ressources de la base de données plutôt que de s'appuyer sur le garbage collection de la JVM.

Exemple de code

Copiez et collez l'exemple suivant dans JDBCExample.java, compilez et exécutez comme suit -

//STEP 1. Import required packages
import java.sql.*;

public class JDBCExample {
   // JDBC driver name and database URL
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/STUDENTS";

   //  Database credentials
   static final String USER = "username";
   static final String PASS = "password";
   
   public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      //STEP 2: Register JDBC driver
      Class.forName("com.mysql.jdbc.Driver");

      //STEP 3: Open a connection
      System.out.println("Connecting to a selected database...");
      conn = DriverManager.getConnection(DB_URL, USER, PASS);
      System.out.println("Connected database successfully...");
      
      //STEP 4: Execute a query
      System.out.println("Creating statement...");
      stmt = conn.createStatement();

      // Extract records without any condition.
      System.out.println("Fetching records without condition...");
      String sql = "SELECT id, first, last, age FROM Registration";
      ResultSet rs = stmt.executeQuery(sql);

      while(rs.next()){
         //Retrieve by column name
         int id  = rs.getInt("id");
         int age = rs.getInt("age");
         String first = rs.getString("first");
         String last = rs.getString("last");

         //Display values
         System.out.print("ID: " + id);
         System.out.print(", Age: " + age);
         System.out.print(", First: " + first);
         System.out.println(", Last: " + last);
      }

      // Select all records having ID equal or greater than 101
      System.out.println("Fetching records with condition...");
      sql = "SELECT id, first, last, age FROM Registration" +
                   " WHERE id >= 101 ";
      rs = stmt.executeQuery(sql);

      while(rs.next()){
         //Retrieve by column name
         int id  = rs.getInt("id");
         int age = rs.getInt("age");
         String first = rs.getString("first");
         String last = rs.getString("last");

         //Display values
         System.out.print("ID: " + id);
         System.out.print(", Age: " + age);
         System.out.print(", First: " + first);
         System.out.println(", Last: " + last);
      }
      rs.close();
   }catch(SQLException se){
      //Handle errors for JDBC
      se.printStackTrace();
   }catch(Exception e){
      //Handle errors for Class.forName
      e.printStackTrace();
   }finally{
      //finally block used to close resources
      try{
         if(stmt!=null)
            conn.close();
      }catch(SQLException se){
      }// do nothing
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }//end finally try
   }//end try
   System.out.println("Goodbye!");
}//end main
}//end JDBCExample

Maintenant, compilons l'exemple ci-dessus comme suit -

C:\>javac JDBCExample.java
C:\>

Quand tu cours JDBCExample, il produit le résultat suivant -

C:\>java JDBCExample
Connecting to a selected database...
Connected database successfully...
Creating statement...
Fetching records without condition...
ID: 100, Age: 30, First: Zara, Last: Ali
ID: 102, Age: 30, First: Zaid, Last: Khan
ID: 103, Age: 28, First: Sumit, Last: Mittal
Fetching records with condition...
ID: 102, Age: 30, First: Zaid, Last: Khan
ID: 103, Age: 28, First: Sumit, Last: Mittal
Goodbye!
C:\>