Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

ResultSet trong JDBC là gì? Cách truy xuất dữ liệu từ đối tượng ResultSet?


Interface ResultSet trong JDBC đại diện cho dữ liệu dạng bảng được tạo bởi truy vấn SQL. Nó có con trỏ trỏ đến hàng hiện tại. Ban đầu, con trỏ nằm trước hàng đầu tiên.

ResultSet trong JDBC là gì? Cách truy xuất dữ liệu từ đối tượng ResultSet?

Di chuyển con trỏ trong ResultSet

Phương thức next() của interface ResultSet di chuyển con trỏ của đối tượng ResultSet hiện tại sang hàng tiếp theo từ vị trí hiện tại. Phương thức trả về giá trị boolean: nếu không còn hàng nào tiếp theo thì trả về false, ngược lại trả về true. Do đó, sử dụng phương thức này trong vòng lặp while để lặp qua nội dung result set.

while(rs.next()){ }

Lấy giá trị cột của mỗi bản ghi:

Interface ResultSet cung cấp các phương thức getter (getXXX()) để lấy giá trị trong mỗi cột của một hàng. Mỗi phương thức getter có hai biến thể:

  • getXXX(int columnIndex): Chấp nhận giá trị nguyên đại diện cho chỉ số cột và trả về giá trị của nó.

  • getXXX(String columnLabel): Chấp nhận giá trị String đại diện cho tên cột và trả về giá trị của nó.

Bạn cần sử dụng phương thức getter tương ứng dựa trên kiểu dữ liệu của cột trong bảng.

Ví dụ

Giả sử có bảng dataset với nội dung như sau:

+--------------+-----------+ 
| mobile_brand | unit_sale | 
+--------------+-----------+ 
| Iphone       | 3000      | 
| Samsung      | 4000      | 
| Nokia        | 5000      | 
| Vivo         | 1500      | 
| Oppo         | 900       | 
| MI           | 6400      | 
| MotoG        | 4360      | 
| Lenovo       | 4100      | 
| RedMi        | 4000      | 
| MotoG        | 4360      | 
| OnePlus      | 6334      | 
+--------------+-----------+

Ví dụ

Ví dụ sau truy xuất tất cả bản ghi của bảng Dataset và in kết quả:

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 

public class RetrievingData { 
    public static void main(String args[]) throws Exception { 
        // Đăng ký Driver 
        DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 
        // Lấy kết nối 
        String mysqlUrl = "jdbc:mysql://localhost/TestDB"; 
        Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); 
        System.out.println("Kết nối thành công......"); 
        // Tạo Statement 
        Statement stmt = con.createStatement(); 
        // Truy xuất dữ liệu 
        ResultSet rs = stmt.executeQuery("select * from Dataset"); 
        System.out.println("Nội dung bảng"); 
        while(rs.next()) { 
            System.out.print("Brand: " + rs.getString("Mobile_Brand") + ", "); 
            System.out.print("Sale: " + rs.getString("Unit_Sale")); 
            System.out.println(""); 
        } 
    } 
}

Kết quả

Kết nối thành công...... 
Nội dung bảng 
Brand: Iphone, Sale: 3000 
Brand: Samsung, Sale: 4000 
Brand: Nokia, Sale: 5000 
Brand: Vivo, Sale: 1500 
Brand: Oppo, Sale: 900 
Brand: MI, Sale: 6400 
Brand: MotoG, Sale: 4360 
Brand: Lenovo, Sale: 4100 
Brand: RedMi, Sale: 4000 
Brand: MotoG, Sale: 4360 
Brand: OnePlus, Sale: 6334