Số cột trong tập kết quả mà bạn có thể nhận được bằng mã (vì DB được sử dụng PostgreSQL):
// tải trình điều khiển cho PostgreSQL
Class.forName ("org.postgresql.Driver");
String url = "jdbc: postgresql: // localhost / test";
Properties props = new Properties ();
props.setProperty ("người dùng", "mydbuser");
props.setProperty ("mật khẩu", "mydbpass");
Conn kết nối = DriverManager.getConnection (url, đạo cụ);
// tạo câu lệnh
Câu lệnh stat = conn.createStatement ();
// lấy một tập kết quả
ResultSet rs = stat.executeQuery ("CHỌN c1, c2, c3, c4, c5 FROM MY_TABLE");
// từ tập hợp kết quả cung cấp siêu dữ liệu
ResultSetMetaData rsmd = rs.getMetaData ();
// số cột từ đối tượng siêu dữ liệu
int numOfCols = rsmd.getColumnCount ();
Nhưng bạn có thể nhận được nhiều thông tin meta hơn 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, cách thực hiện bạn có thể tìm thấy ở đây và ở đây .
ResultSetMetaData
việc triển khai nó xử lý các bản ghi CSV có độ dài thay đổi. ví dụ: Nếu bạn đã chỉ địnhSELECT * FROM sample
và mỗi hàng chứa một số trường khác nhau, thì số lượng cột có được đánh giá lại cho mỗi hàng đã được lặp lại không?