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.

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