Số một columns in the result set bạn có thể nhận được với mã (như DB được sử dụng PostgreSQL):
//load the driver for PostgreSQL
Class.forName("org.postgresql.Driver");
String url = "jdbc:postgresql://localhost/test";
Properties props = new Properties();
props.setProperty("user","mydbuser");
props.setProperty("password","mydbpass");
Connection conn = DriverManager.getConnection(url, props);
//create statement
Statement stat = conn.createStatement();
//obtain a result set
ResultSet rs = stat.executeQuery("SELECT c1, c2, c3, c4, c5 FROM MY_TABLE");
//from result set give metadata
ResultSetMetaData rsmd = rs.getMetaData();
//columns count from metadata object
int numOfCols = rsmd.getColumnCount();
Nhưng bạn có thể nhận được thêm thông tin meta về các cột:
for(int i = 1; i <= numOfCols; i++)
{
System.out.println(rsmd.getColumnName(i));
}
Và ít nhất nhưng không kém phần quan trọng, bạn có thể nhận được một số thông tin không chỉ về bảng mà còn về DB nữa, làm thế nào để làm điều đó bạn có thể tìm thấy here và here.
Sẽ rất thú vị khi hiểu cách trình điều khiển JDBC CSV và triển khai 'ResultSetMetaData' xử lý các bản ghi CSV có độ dài thay đổi. ví dụ. Nếu bạn đã chỉ định 'SELECT * FROM sample' và mỗi hàng chứa một số trường khác nhau, liệu số cột có được đánh giá lại cho mỗi hàng đã được lặp lại không? – rhu