Apache Commons DBUtils - Ứng dụng đầu tiên

Chương này cung cấp một ví dụ về cách tạo một ứng dụng JDBC đơn giản bằng thư viện DBUtils. Điều này sẽ chỉ cho bạn cách mở kết nối cơ sở dữ liệu, thực hiện truy vấn SQL và hiển thị kết quả.

Tất cả các bước được đề cập trong ví dụ mẫu này, sẽ được giải thích trong các chương tiếp theo của hướng dẫn này.

Tạo ứng dụng JDBC

Có sáu bước sau liên quan đến việc xây dựng một ứng dụng JDBC:

  • Import the packages- Yêu cầu bạn bao gồm các gói chứa các lớp JDBC cần thiết cho lập trình cơ sở dữ liệu. Thông thường, sử dụngimport java.sql.* sẽ đủ.

  • Register the JDBC driver - Yêu cầu bạn khởi tạo một trình điều khiển, để bạn có thể mở một kênh giao tiếp với cơ sở dữ liệu.

  • Open a connection - Yêu cầu sử dụng DriverManager.getConnection() để tạo một đối tượng Connection, đối tượng này đại diện cho một kết nối vật lý với cơ sở dữ liệu.

  • Execute a query - Yêu cầu sử dụng một đối tượng kiểu Statement để xây dựng và gửi một câu lệnh SQL vào cơ sở dữ liệu.

  • Extract data from result set - Yêu cầu bạn sử dụng thích hợp ResultSet.getXXX() phương pháp lấy dữ liệu từ tập kết quả.

  • Clean up the environment - Yêu cầu đóng tất cả các tài nguyên cơ sở dữ liệu một cách rõ ràng thay vì dựa vào bộ sưu tập rác của JVM.

Mã mẫu

Ví dụ mẫu này có thể phục vụ như một mẫu, khi bạn cần tạo ứng dụng JDBC của riêng mình trong tương lai.

Mã mẫu này đã được viết dựa trên môi trường và thiết lập cơ sở dữ liệu được thực hiện trong chương trước.

Sao chép và dán ví dụ sau vào MainApp.java, biên dịch và chạy như sau:

MainApp.java

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

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

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 Employee Beans
      ResultSetHandler<Employee> resultHandler = new BeanHandler<Employee>(Employee.class);
      
      try {
         Employee emp = queryRunner.query(conn,
            "SELECT * FROM employees WHERE first=?", resultHandler, "Sumit");
         //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);
      }
   }
}

Employee.java

Chương trình được đưa ra dưới đây -

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

Bây giờ chúng ta hãy biên dịch ví dụ trên như sau:

C:\>javac MainApp.java Employee.java
C:\>

Khi bạn chạy MainApp, nó tạo ra kết quả sau:

C:\>java MainApp
Connecting to database...
ID: 103, Age: 28, First: Sumit, Last: Mittal
C:\>