Quan sát ResultSet trong JDBC



ResultSet Interface có rất nhiều phương thức khác nhau được sử dụng để giúp bạn quan sát dữ liệu của hàng hiện tại.

Tùy theo mục đích, bạn có thể lựa chon getInt, getString, getByte, getArray, getDate, …. Mỗi phương thức này có hai phiên bản, một cho chỉ mục cột và một cho tên cột. Dưới đây mình liệt kê một số phương thức:

1. public int getInt(int chi_muc_cot)

Trả về dữ liệu của chỉ mục cột đã cho của hàng hiện tại dưới dạng số nguyên.

2. public int getInt(String ten_cot)

Trả về dữ liệu của tên cột đã cho của hàng hiện tại dưới dạng số nguyên.

3. public String getString(int chi_muc_cot)

Trả về dữ liệu của chỉ mục cột đã cho của hàng hiện tại dưới dạng String.

4. public String getString(String ten_cot)

Trả về dữ liệu của tên cột đã cho của hàng hiện tại dưới dạng String.

Quảng cáo

5. public Array getArray(int chi_muc_cot)

Trả về dữ liệu của chỉ mục cột đã cho của hàng hiện tại dưới dạng một Mảng.

6. public Array getArray(int ten_cot)

Trả về dữ liệu của tên cột đã cho của hàng hiện tại dưới dạng một Mảng.

Ví dụ minh họa quan sát ResultSet

Dưới đây là ví dụ minh họa việc sử dụng một số phương thức trên để quan sát dữ liệu của hàng và cột trong ResultSet.

package com.vietjack.jdbc; 

//Buoc 1: Ban can inport cac package can thiet
import java.sql.*;

public class ViDuJDBC {
   // Ten cua driver va dia chi URL cua co so du lieu
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/sinhvien";

   //  Ten nguoi dung va mat khau cua co so du lieu
   static final String USER = "root";
   static final String PASS = "123456";
   
public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      // Buoc 2: Dang ky Driver
      Class.forName("com.mysql.jdbc.Driver");

      // Buoc 3: Mo mot ket noi
      System.out.println("Dang ket noi toi co so du lieu ...");
      conn = DriverManager.getConnection(DB_URL,USER,PASS);

      // Buoc 4: Thuc thi truy van 
     
      System.out.println("Tao cac lenh truy van SQL ...");
      stmt = conn.createStatement(
                           ResultSet.TYPE_SCROLL_INSENSITIVE,
                           ResultSet.CONCUR_READ_ONLY);
      String sql;
      sql = "SELECT mssv, ho, ten, diemthi FROM sinhvienk60";
      ResultSet rs = stmt.executeQuery(sql);

      // Di chuyen con tro toi hang cuoi cung.
      System.out.println("\nDi chuyen con tro toi hang cuoi cung ...");
      rs.last();
      
      // Buoc 5: Lay du lieu tu Result Set
      System.out.println("Hien thi ban ghi ...");
      // Lay du lieu boi su dung ten cot
      int mssv  = rs.getInt("mssv");
      int diemthi = rs.getInt("diemthi");
      String ho = rs.getString("ho");
      String ten = rs.getString("ten");
  
      // Hien thi cac gia tri
       System.out.print("\nMSSV: " + mssv);
       System.out.print("\nHo: " + ho);
       System.out.println("\nTen: " + ten);
       System.out.print("\nDiem Thi: " + diemthi);
       System.out.print("\n=================");

      // Di chuyen con tro toi hang dau tien.
      System.out.println("\nDi chuyen con tro toi hang dau tien ...");
      rs.first();
      
      // Buoc 6: Lay du lieu tu result set
      System.out.println("Hien thi ban ghi ...");
      // Lay du lieu boi su dung ten cot
      mssv  = rs.getInt("mssv");
      diemthi = rs.getInt("diemthi");
      ho = rs.getString("ho");
      ten = rs.getString("ten");
  
      // Hien thi cac gia tri
       System.out.print("\nMSSV: " + mssv);
       System.out.print("\nHo: " + ho);
       System.out.println("\nTen: " + ten);
       System.out.print("\nDiem Thi: " + diemthi);
       System.out.print("\n=================");
     // Di chuyen con tro toi hang tiep theo.

      System.out.println("\nDi chuyen con tro toi hang tiep theo ...");
      rs.next();
      
      // Buoc 7: Lay du lieu tu result set
      mssv  = rs.getInt("mssv");
      diemthi = rs.getInt("diemthi");
      ho = rs.getString("ho");
      ten = rs.getString("ten");
  
      // Hien thi cac gia tri
       System.out.print("\nMSSV: " + mssv);
       System.out.print("\nHo: " + ho);
       System.out.println("\nTen: " + ten);
       System.out.print("\nDiem Thi: " + diemthi);
       System.out.print("\n=================");

      // Buoc 8: Don sach moi truong va giai phong resource
      rs.close();
      stmt.close();
      conn.close();
   }catch(SQLException se){
      // Xu ly cac loi cho JDBC
      se.printStackTrace();
   }catch(Exception e){
      // Xu ly cac loi cho Class.forName
      e.printStackTrace();
   }finally{
      // Khoi finally duoc su dung de dong cac resource
      try{
         if(stmt!=null)
            stmt.close();
      }catch(SQLException se2){
      } 
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }// Ket thuc khoi finally
   }// Ket thuc khoi try
   System.out.println("\nVietJack chuc cac ban hoc tot!");
}// Ket thuc main
}// Ket thuc ViDuJDBC
Quảng cáo

Sao chép và dán ví dụ trên trong ViDuJDBC.java, sau đó biên dịch và chạy chương trình Java trên sẽ cho kết quả sau:

Quan sát Result Set trong JDBC

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập doanh nghiệp với Java. Khóa học có giá chỉ 400K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp chị Thu, trợ lý anh Tuyền để hỗ trợ thanh toán qua mã QR ngân hàng Việt Nam, fb: https://www.facebook.com/Thule.59

Anh Tuyền, tác giả khóa học, là cựu sinh viên chương trình đào tạo kĩ sư tài năng của đại học Bách Khoa Hà Nội với hơn 5 năm kinh nghiệm đi làm thực tế doanh nghiệp và cũng là Founder website vietjack.com, web giáo dục phổ biến nhất Việt Nam hiện tại (năm 2024). Java cũng là ngôn ngữ lập trình dễ đi xin việc nhất hiện tại, với mức lương cao, hãy nâng cao kiến thức IT của bản thân mình vì một Việt Nam giàu mạnh.

Loạt bài hướng dẫn của chúng tôi dựa một phần trên nguồn tài liệu của: Tutorialspoint.com



Demo một bài giảng trong khóa học online tại vietjackteam.


Tài liệu giáo viên