Commons DBUtils - BeanListHandler Sınıfı
org.apache.commons.dbutils.BeanListHandlerResultSetHandler arabiriminin uygulamasıdır ve ResultSet satırlarını Java Bean listesine dönüştürmekten sorumludur. Bu sınıf iş parçacığı açısından güvenlidir.
Sınıf Beyanı
Org.apache.commons.dbutils.BeanListHandler sınıfının bildirimi aşağıdadır -
public class BeanListHandler<T>
extends Object implements ResultSetHandler<List<T>>
Kullanım
Step 1 - Bir bağlantı nesnesi oluşturun.
Step 2 - ResultSetHandler uygulamasının BeanListHandler nesnesi olarak uygulanmasını alın.
Step 3 - resultSetHandler'ı QueryRunner nesnesine geçirin ve veritabanı işlemleri yapın.
Misal
Aşağıdaki örnek, BeanListHandler sınıfı kullanılarak bir kayıt listesinin nasıl okunacağını gösterecektir. Çalışanlar Tablosundaki mevcut kayıtları okuyacağız ve bunları Çalışan fasulye listesiyle eşleştireceğiz.
Sözdizimi
List<Employee> empList = queryRunner.query(conn, "SELECT * FROM employees", resultHandler);
Nerede,
resultHandler - Sonuç kümelerini Employee nesnelerinin listesiyle eşlemek için BeanListHandler nesnesi.
queryRunner - Çalışan nesnesini veritabanından okumak için QueryRunner nesnesi.
DBUtils ile ilgili yukarıda bahsedilen kavramları anlamak için, bir okuma sorgusu çalıştıracak bir örnek yazalım. Örneğimizi yazmak için örnek bir uygulama oluşturalım.
Adım | Açıklama |
---|---|
1 | DBUtils - İlk Uygulama bölümünde oluşturulan MainApp.java dosyasını güncelleyin . |
2 | Uygulamayı aşağıda açıklandığı gibi derleyin ve çalıştırın. |
Aşağıdakilerin içeriği 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;
}
}
Aşağıdakilerin içeriği MainApp.java dosya.
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);
}
}
}
Kaynak dosyaları oluşturmayı tamamladığınızda uygulamayı çalıştırmamıza izin verin. Uygulamanızda her şey yolundaysa, aşağıdaki mesajı yazdıracaktır.
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