JDBC - Ví dụ về sắp xếp dữ liệu

Chương này cung cấp một ví dụ về cách sắp xếp các bản ghi từ một bảng bằng ứng dụng JDBC. Điều này sẽ sử dụngascdesctừ khóa để sắp xếp các bản ghi theo thứ tự tăng dần hoặc giảm dần. Trước khi thực hiện ví dụ sau, hãy đảm bảo rằng bạn có sẵn những điều sau:

  • Để thực hiện ví dụ sau, bạn có thể thay thế tên người dùngmật khẩu bằng tên người dùngmật khẩu thực của mình.

  • MySQL của bạn hoặc bất kỳ cơ sở dữ liệu nào bạn đang sử dụng, đang hoạt động.

Các bước bắt buộc

Các bước sau là bắt buộc để tạo Cơ sở dữ liệu mới bằng ứ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ụng import java.sql. * Là đủ.

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

  • Open a connection:Yêu cầu sử dụng phương thức DriverManager.getConnection () để tạo một đối tượng Connection, đại diện cho một kết nối vật lý với một máy chủ 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 để sắp xếp các bản ghi từ một bảng. Những Truy vấn này sử dụngascdesc mệnh đề để sắp xếp dữ liệu theo thứ tự tăng dần và giảm dần.

  • 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

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

//STEP 1. Import required packages
import java.sql.*;

public class JDBCExample {
   // JDBC driver name and database URL
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/STUDENTS";

   //  Database credentials
   static final String USER = "username";
   static final String PASS = "password";
   
   public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      //STEP 2: Register JDBC driver
      Class.forName("com.mysql.jdbc.Driver");

      //STEP 3: Open a connection
      System.out.println("Connecting to a selected database...");
      conn = DriverManager.getConnection(DB_URL, USER, PASS);
      System.out.println("Connected database successfully...");
      
      //STEP 4: Execute a query
      System.out.println("Creating statement...");
      stmt = conn.createStatement();

      // Extract records in ascending order by first name.
      System.out.println("Fetching records in ascending order...");
      String sql = "SELECT id, first, last, age FROM Registration" +
                   " ORDER BY first ASC";
      ResultSet rs = stmt.executeQuery(sql);

      while(rs.next()){
         //Retrieve by column name
         int id  = rs.getInt("id");
         int age = rs.getInt("age");
         String first = rs.getString("first");
         String last = rs.getString("last");

         //Display values
         System.out.print("ID: " + id);
         System.out.print(", Age: " + age);
         System.out.print(", First: " + first);
         System.out.println(", Last: " + last);
      }

      // Extract records in descending order by first name.
      System.out.println("Fetching records in descending order...");
      sql = "SELECT id, first, last, age FROM Registration" +
                   " ORDER BY first DESC";
      rs = stmt.executeQuery(sql);

      while(rs.next()){
         //Retrieve by column name
         int id  = rs.getInt("id");
         int age = rs.getInt("age");
         String first = rs.getString("first");
         String last = rs.getString("last");

         //Display values
         System.out.print("ID: " + id);
         System.out.print(", Age: " + age);
         System.out.print(", First: " + first);
         System.out.println(", Last: " + last);
      }
      rs.close();
   }catch(SQLException se){
      //Handle errors for JDBC
      se.printStackTrace();
   }catch(Exception e){
      //Handle errors for Class.forName
      e.printStackTrace();
   }finally{
      //finally block used to close resources
      try{
         if(stmt!=null)
            conn.close();
      }catch(SQLException se){
      }// do nothing
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }//end finally try
   }//end try
   System.out.println("Goodbye!");
}//end main
}//end JDBCExample

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

C:\>javac JDBCExample.java
C:\>

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

C:\>java JDBCExample
Connecting to a selected database...
Connected database successfully...
Creating statement...
Fetching records in ascending order...
ID: 103, Age: 28, First: Sumit, Last: Mittal
ID: 102, Age: 30, First: Zaid, Last: Khan
ID: 100, Age: 30, First: Zara, Last: Ali
Fetching records in descending order...
ID: 100, Age: 30, First: Zara, Last: Ali
ID: 102, Age: 30, First: Zaid, Last: Khan
ID: 103, Age: 28, First: Sumit, Last: Mittal
Goodbye!
C:\>