Apache Commons DBUtils - Sử dụng DataSource

Cho đến nay, chúng tôi đã sử dụng đối tượng kết nối trong khi sử dụng QueryRunner. Chúng tôi cũng có thể sử dụng nguồn dữ liệu một cách dễ dàng. Ví dụ sau sẽ trình bày cách đọc bản ghi bằng cách sử dụng Truy vấn đọc với sự trợ giúp của QueryRunner và nguồn dữ liệu. Chúng tôi sẽ đọc một bản ghi từ Bảng nhân viên.

Cú pháp

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

Ở đâu,

  • dataSource - Đối tượng DataSource được cấu hình.

  • resultHandler - Đối tượng ResultSetHandler để ánh xạ tập kết quả thành đối tượng Employee.

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

Sau đây là nội dung của MainApp.java tập tin.

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

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: 103, Age: 33, First: Sumit, Last: Mittal