对于标准查询,我没有遇到过这个问题。我只是:
ResultSet rs = stmt.executeQuery("SELECT a, b FROM table_name");
ResultSetMetaData rsMetaData = rs.getMetaData();
int numberOfColumns = rsMetaData.getColumnCount();
for (int i = 1; i < numberOfColumns + 1; i++) {
String fieldName = rsMetaData.getColumnName(i);
System.out.print(fieldName + ", ");
}
但是我将字段名称指定给另一个名称,即
ResultSet rs = stmt.executeQuery("SELECT a AS foo, b AS bar FROM table_name");
它会引发错误,因为找不到字段a
和b
。
我应该如何迎合这个?感谢
答案 0 :(得分:4)
列名称与列标签之间存在差异。 ResultSet
中的方法需要列标签。因此,您应该使用方法ResultSetMetaData.getColumnLabel
而不是ResultSetmetaData.getColumnName
。