Apache Commons DBUtils - Utilisation de DataSource

Jusqu'à présent, nous avons utilisé un objet de connexion tout en utilisant QueryRunner. Nous pouvons également utiliser la source de données sans problème. L'exemple suivant montre comment lire un enregistrement à l'aide d'une requête de lecture à l'aide de QueryRunner et de la source de données. Nous allons lire un enregistrement de la table des employés.

Syntaxe

QueryRunner queryRunner = new QueryRunner( dataSource );
Employee emp = queryRunner.query("SELECT * FROM employees WHERE first=?", resultHandler, "Sumit");

Où,

  • dataSource - Objet DataSource configuré.

  • resultHandler - Objet ResultSetHandler pour mapper le jeu de résultats à l'objet Employee.

  • queryRunner - Objet QueryRunner pour lire l'objet employé de la base de données.

Pour comprendre les concepts mentionnés ci-dessus liés à DBUtils, écrivons un exemple qui exécutera une requête de lecture. Pour écrire notre exemple, créons un exemple d'application.

Étape La description
1 Mettez à jour le fichier MainApp.java créé sous le chapitre DBUtils - Première application .
2 Compilez et exécutez l'application comme expliqué ci-dessous.

Voici le contenu de la Employee.java.

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

Voici le contenu de la CustomDatasource.java.

import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSource;

public class CustomDataSource {
   // 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";
   private static DataSource datasource;
   private static final BasicDataSource basicDataSource;

   static {
      basicDataSource = new BasicDataSource();
      basicDataSource.setDriverClassName(JDBC_DRIVER);
      basicDataSource.setUsername(USER);
      basicDataSource.setPassword(PASS);
      basicDataSource.setUrl(DB_URL);
   }

   public static DataSource getInstance() {
      return basicDataSource;
   }
}

Voici le contenu de la MainApp.java fichier.

import java.sql.SQLException;

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

public class MainApp {
   public static void main(String[] args) throws SQLException {    
      
      DbUtils.loadDriver(JDBC_DRIVER);
      QueryRunner run = new QueryRunner(CustomDataSource.getInstance());
      ResultSetHandler<Employee> resultHandler = new BeanHandler<Employee>(Employee.class);

      Employee emp = queryRunner.query("SELECT * FROM employees WHERE id=?",
         resultHandler, 103);
      
      //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());
   }
}

Une fois que vous avez terminé de créer les fichiers source, laissez-nous exécuter l'application. Si tout va bien avec votre application, elle imprimera le message suivant.

ID: 103, Age: 33, First: Sumit, Last: Mittal