2011-06-20 88 views
18

Tôi muốn biết nếu có cách nào để lấy tên cột dựa trên chỉ mục từ một resultSet.Java ResultSet - lấy tên cột dựa trên Chỉ số

Tôi biết rằng nếu bạn muốn để có được chỉ số dựa trên ColumnName, bạn có thể làm điều đó bằng cách sử dụng

int index = resultSet.findColumn(columnName); 

Nhưng tôi cần phải là cách khác xung quanh, một cái gì đó như:

String column = resultSet.findColumnName(index); 

Is nó có thể?

Trả lời

39

Tôi nghĩ rằng bạn cần phải nhìn vào ResultSet.getMetaData() mà trả về meta-data liên kết với một ResultSet.

Sau đó, bạn có thể lặp qua các cột (sử dụng getColumnCount() để tìm hiểu số lượng có) để tìm cột có tên đã cho, kiểm tra với getColumnName(). Đừng quên rằng các chỉ mục cột là dựa trên 1, chứ không phải dựa trên 0. Một cái gì đó như:

Nếu bạn cần làm điều này cho nhiều tên, bạn có thể muốn tạo một HashMap<String, Integer> để ánh xạ chúng dễ dàng.

2
resultSet.getMetaData().getColumnName(index); 
0

Với JDBC tiêu chuẩn, bạn có thể nhận được kết quả thiết lập của metadata:

ResultSetMetaData metadata = resultSet.getMetaData() 

Đối tượng này sau đó có thể được truy vấn cho tên cột (theo chỉ số):

String columnFiveName = metadata.getColumnName(5) 
0

Bạn có thể thực hiện việc này bằng cách sử dụng ResultSetMetaData:

ResultSetMetaData rsmd = resultSet.getMetaData(); 
String column = rsmd.getColumnName(index); 
Các vấn đề liên quan