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);

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);}  
  
}  
}  
 

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

Mọi người cho thể tham gia khóa học thứ 5 của vietjackteam vào 08/12/2017 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : Khóa học Java.Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Số lượng các công việc Java hoặc .NET luôn gấp ít nhất 3 lần Android hoặc iOS trên thị trường tuyển dụng.

Mọi người có thể xem demo nội dung khóa học tại địa chỉ Video demo khóa học Offline

Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Nhân dịp tháng mua sắm cuối năm, trong tháng 12/2017, giá khóa học chỉ còn 300k, liên hệ facebook admin fb.com/tuyen.vietjack để thanh toán chuyển khoản hoặc thẻ điện thoại, khóa học bằng Tiếng Việt với gần 100 video, các bạn có thể chủ động bất cứ lúc nào, và xem mãi mãi. Thông tin khóa học tại Khóa học Java Online trên Udemy

Loạt bài hướng dẫn học Java JDBC cơ bản và nâng cao của chúng tôi dựa 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.