ResultSetMetaData Interface trong JDBC



Nếu bạn muốn lấy thông tin như tổng số cột, tên cột, kiểu của cột, … trong một bảng, thì bạn nên sử dụng ResultSetMetaData Interface bởi vì nó cung cấp các phương thức để lấy metadata từ đối tượng ResultSet.

Bạn theo dõi đoạn code sau. Đầu tiên tạo đối tượng Resultset là rs, tạo đối tượng ResultSetMetaData là rsmd và sử dụng đối tượng rsmd này để tìm xem có bao nhiêu cột mà rs có và xác định xem cột đầu tiên trong rs có thể được sử dụng trong một mệnh đề WHERE không.

ResultSet rs = stmt.executeQuery("SELECT mssv, ho, ten, diemthi FROM sinhvienk60");
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
boolean b = rsmd.isSearchable(1);
Quảng cáo

Một số phương thức được sử dụng phổ biến của đối tượng ResultSetMetaData

1. public int getColumnCount()throws SQLException

Trả về tổng số cột trong đối tượng ResultSet.

2. public String getColumnName(int index)throws SQLException

Trả về tên cột tại chỉ mục đã cho.

3. public String getColumnTypeName(int index)throws SQLException

Trả về tên kiểu của cột tại chỉ mục đã cho.

4. public String getTableName(int index)throws SQLException

Trả về tên bảng cho chỉ mục cột đã xác định.

5. public Boolean isAutoIncrement(int column)

Xác định xem cột đã cho có phải là tự động tăng (auto-increment) hay không.

Lấy đối tượng ResultSetMetaData trong JDBC

Để lấy đối tượng ResultSetMetaData, bạn sử dụng phương thức getMetaData() của ResultSet Interface với cú pháp:

public ResultSetMetaData getMetaData()throws SQLException  

Ví dụ

Dưới đây là một ví dụ thực sự đơn giản để lấy một số thông tin về tổng số cột, tên và kiểu của cột thứ nhất trong bảng sinhvienk60 trong cơ sở dữ liệu sinhvien.

package com.vietjack.jdbc; import java.sql.*;  
class ViDuJDBC{  
public static void main(String args[]){  
try{  
Class.forName("com.mysql.jdbc.Driver");  
  
Connection con=DriverManager.getConnection(  
"jdbc:mysql://localhost/sinhvien","root","123456");  
  
PreparedStatement ps=con.prepareStatement("SELECT * FROM sinhvienk60");  
ResultSet rs=ps.executeQuery();  
  
ResultSetMetaData rsmd=rs.getMetaData();  
  
System.out.println("Tong so cot la: "+rsmd.getColumnCount());  
System.out.println("Ten cua cot thu nhat la: "+rsmd.getColumnName(1));  
System.out.println("Ten kieu cua cot thu nhat la: "+rsmd.getColumnTypeName(1));  
  
con.close();  
  
}catch(Exception e){ System.out.println(e);}  
  
}  
}  
 
Quảng cáo

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

ResultSetMetaData 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