English 中文(简体)
DBUtils - BeanListHandler Class
  • 时间:2024-09-17

BeanListHandler Class


Previous Page Next Page  

The org.apache.commons.dbutils.BeanListHandler is the implementation of ResultSetHandler interface and is responsible to convert the ResultSet rows into pst of Java Bean. This class is thread safe.

Class Declaration

Following is the declaration for org.apache.commons.dbutils.BeanListHandler class −


pubpc class BeanListHandler<T>
   extends Object implements ResultSetHandler<List<T>>

Usage

    Step 1 − Create a connection object.

    Step 2 − Get implementation of ResultSetHandler as BeanListHandler object.

    Step 3 − Pass resultSetHandler to QueryRunner object, and make database operations.

Example

Following example will demonstrate how to read a pst of records using BeanListHandler class. We ll read available records in Employees Table and map them to pst of Employee beans.

Syntax


List<Employee> empList = queryRunner.query(conn, "SELECT * FROM employees", resultHandler);      

Where,

    resultHandler − BeanListHandler object to map result sets to pst of Employee objects.

    queryRunner − QueryRunner object to read employee object from database.

To understand the above-mentioned concepts related to DBUtils, let us write an example which will run a read query. To write our example, let us create a sample apppcation.

Step Description
1 Update the file MainApp.java created under chapter DBUtils - First Apppcation.
2 Compile and run the apppcation as explained below.

Following is the content of the Employee.java.


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

Following is the content of the MainApp.java file.


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

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

pubpc 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";

   pubpc 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 List of Employee Beans
      ResultSetHandler<List<Employee>> resultHandler = new BeanListHandler<Employee>(Employee.class);

      try {
         List<Employee> empList = queryRunner.query(conn, "SELECT * FROM employees", resultHandler);
         for(Employee emp: empList ) {
            //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);
      }        
   }
}

Once you are done creating the source files, let us run the apppcation. If everything is fine with your apppcation, it will print the following message.


ID: 100, Age: 18, First: Zara, Last: Ap
ID: 101, Age: 25, First: Mahnaz, Last: Fatma
ID: 102, Age: 30, First: Zaid, Last: Khan
ID: 103, Age: 28, First: Sumit, Last: Mittal
Advertisements