Apache Commons DBUtils - Première application

Ce chapitre fournit un exemple de création d'une application JDBC simple à l'aide de la bibliothèque DBUtils. Cela vous montrera comment ouvrir une connexion à une base de données, exécuter une requête SQL et afficher les résultats.

Toutes les étapes mentionnées dans cet exemple de modèle seront expliquées dans les chapitres suivants de ce didacticiel.

Création d'une application JDBC

Les six étapes suivantes sont impliquées dans la création d'une 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, en utilisantimport java.sql.* suffira.

  • 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 du DriverManager.getConnection() pour créer un objet Connection, qui représente une connexion physique avec la 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 à la base de données.

  • Extract data from result set - Nécessite que vous utilisiez le ResultSet.getXXX() méthode pour récupérer les données de l'ensemble de résultats.

  • Clean up the environment - Nécessite la fermeture explicite de toutes les ressources de la base de données plutôt que de compter sur le garbage collection de la JVM

Exemple de code

Cet exemple d'exemple peut servir de modèle lorsque vous devez créer votre propre application JDBC à l'avenir.

Cet exemple de code a été écrit en fonction de l'environnement et de la configuration de la base de données effectuée dans le chapitre précédent.

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

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

Le programme est donné ci-dessous -

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;
   }
}

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

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

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

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