Commons DBUtils - Lớp BeanListHandler
Các org.apache.commons.dbutils.BeanListHandlerlà việc triển khai giao diện ResultSetHandler và chịu trách nhiệm chuyển đổi các hàng ResultSet thành danh sách của Java Bean. Lớp này là luồng an toàn.
Khai báo lớp học
Sau đây là khai báo cho lớp org.apache.commons.dbutils.BeanListHandler -
public class BeanListHandler<T>
extends Object implements ResultSetHandler<List<T>>
Sử dụng
Step 1 - Tạo đối tượng kết nối.
Step 2 - Nhận thực thi ResultSetHandler dưới dạng đối tượng BeanListHandler.
Step 3 - Truyền resultSetHandler đến đối tượng QueryRunner và thực hiện các thao tác với cơ sở dữ liệu.
Thí dụ
Ví dụ sau sẽ trình bày cách đọc danh sách các bản ghi bằng cách sử dụng lớp BeanListHandler. Chúng tôi sẽ đọc các bản ghi có sẵn trong Bảng nhân viên và ánh xạ chúng thành danh sách các hạt Nhân viên.
Cú pháp
List<Employee> empList = queryRunner.query(conn, "SELECT * FROM employees", resultHandler);
Ở đâu,
resultHandler - Đối tượng BeanListHandler để ánh xạ bộ kết quả thành danh sách các đối tượng Nhân viên.
queryRunner - Đối tượng QueryRunner để đọc đối tượng nhân viên từ cơ sở dữ liệu.
Để hiểu các khái niệm được đề cập ở trên liên quan đến DBUtils, chúng ta hãy viết một ví dụ sẽ chạy một truy vấn đọc. Để viết ví dụ của chúng tôi, hãy để chúng tôi tạo một ứng dụng mẫu.
Bươc | Sự miêu tả |
---|---|
1 | Cập nhật tệp MainApp.java được tạo trong chương DBUtils - Ứng dụng đầu tiên . |
2 | Biên dịch và chạy ứng dụng như giải thích bên dưới. |
Sau đây là nội dung của 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;
}
}
Sau đây là nội dung của MainApp.java tập tin.
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;
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 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);
}
}
}
Khi bạn đã hoàn tất việc tạo các tệp nguồn, hãy để chúng tôi chạy ứng dụng. Nếu mọi thứ đều ổn với ứng dụng của bạn, nó sẽ in ra thông báo sau.
ID: 100, Age: 18, First: Zara, Last: Ali
ID: 101, Age: 25, First: Mahnaz, Last: Fatma
ID: 102, Age: 30, First: Zaid, Last: Khan
ID: 103, Age: 28, First: Sumit, Last: Mittal