Apache Commons DBUtils - Primera aplicación

Este capítulo proporciona un ejemplo de cómo crear una aplicación JDBC simple utilizando la biblioteca DBUtils. Esto le mostrará cómo abrir una conexión de base de datos, ejecutar una consulta SQL y mostrar los resultados.

Todos los pasos mencionados en este ejemplo de plantilla se explicarán en los capítulos siguientes de este tutorial.

Creación de la aplicación JDBC

Hay los siguientes seis pasos involucrados en la construcción de una aplicación JDBC:

  • Import the packages- Requiere que incluya los paquetes que contienen las clases JDBC que son necesarias para la programación de la base de datos. Más a menudo, usandoimport java.sql.* Será suficiente.

  • Register the JDBC driver - Requiere que inicialice un controlador, para que pueda abrir un canal de comunicación con la base de datos.

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

  • Execute a query - Requiere el uso de un objeto de tipo Statement para construir y enviar una sentencia SQL a la base de datos.

  • Extract data from result set - Requiere que use el apropiado ResultSet.getXXX() método para recuperar los datos del conjunto de resultados.

  • 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

Este ejemplo de muestra puede servir como plantilla, cuando necesite crear su propia aplicación JDBC en el futuro.

Este código de muestra se ha escrito en función del entorno y la configuración de la base de datos realizada en el capítulo anterior.

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

MainApp.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;

public class MainApp {
   // JDBC driver name and database URL
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
   static final String DB_URL = "jdbc:mysql://localhost:3306/emp";
   
   // Database credentials
   static final String USER = "root";
   static final String PASS = "admin";
   
   public static void main(String[] args) throws SQLException {
      Connection conn = null;
      QueryRunner queryRunner = new QueryRunner();
      
      //Step 1: Register JDBC driver
      DbUtils.loadDriver(JDBC_DRIVER);

      //Step 2: Open a connection
      System.out.println("Connecting to database...");
      conn = DriverManager.getConnection(DB_URL, USER, PASS);
      
      //Step 3: Create a ResultSet Handler to handle Employee Beans
      ResultSetHandler<Employee> resultHandler = new BeanHandler<Employee>(Employee.class);
      
      try {
         Employee emp = queryRunner.query(conn,
            "SELECT * FROM employees WHERE first=?", resultHandler, "Sumit");
         //Display values
         System.out.print("ID: " + emp.getId());
         System.out.print(", Age: " + emp.getAge());
         System.out.print(", First: " + emp.getFirst());
         System.out.println(", Last: " + emp.getLast());
      } finally {
         DbUtils.close(conn);
      }
   }
}

Employee.java

El programa se da a continuación:

public class Employee {
   private int id;
   private int age;
   private String first;
   private String last;
   public int getId() {
      return id;
   }
   public void setId(int id) {
      this.id = id;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String getFirst() {
      return first;
   }
   public void setFirst(String first) {
      this.first = first;
   }
   public String getLast() {
      return last;
   }
   public void setLast(String last) {
      this.last = last;
   }
}

Ahora compilemos el ejemplo anterior de la siguiente manera:

C:\>javac MainApp.java Employee.java
C:\>

Cuando corres MainApp, produce el siguiente resultado:

C:\>java MainApp
Connecting to database...
ID: 103, Age: 28, First: Sumit, Last: Mittal
C:\>