JDBC - Ejemplo de cláusula WHERE

Este capítulo proporciona un ejemplo sobre cómo seleccionar registros de una tabla utilizando la aplicación JDBC. Esto agregaría condiciones adicionales usando la cláusula WHERE al seleccionar registros de la tabla. Antes de ejecutar el siguiente ejemplo, asegúrese de tener lo siguiente en su lugar:

  • Para ejecutar el siguiente ejemplo, puede reemplazar el nombre de usuario y la contraseña con su nombre de usuario y contraseña reales.

  • Su MySQL o cualquier base de datos que esté utilizando, está en funcionamiento.

Pasos requeridos

Se requieren los siguientes pasos para crear una nueva base de datos utilizando la aplicación JDBC:

  • Import the packages:Requiere que incluya los paquetes que contienen las clases JDBC necesarias para la programación de la base de datos. La mayoría de las veces, basta con utilizar import java.sql. * .

  • Register the JDBC driver: Requiere que inicialice un controlador para poder abrir un canal de comunicaciones con la base de datos.

  • Open a connection:Requiere usar el método DriverManager.getConnection () para crear un objeto Connection, que representa una conexión física con un servidor de base de datos.

  • Execute a query:Requiere el uso de un objeto de tipo Statement para crear y enviar una sentencia SQL para obtener registros de una tabla que cumplan con la condición dada. Esta consulta hace uso de laWHERE cláusula para seleccionar registros.

  • Clean up the environment: Requiere cerrar explícitamente todos los recursos de la base de datos en lugar de depender de la recolección de basura de la JVM.

Código de muestra

Copie y pegue el siguiente ejemplo en JDBCExample.java, compile y ejecute de la siguiente manera:

//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

Ahora, compilemos el ejemplo anterior de la siguiente manera:

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

Cuando corres JDBCExample, produce el siguiente resultado:

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:\>