对于java.sql.ResultSet
,有没有一种方法可以通过使用列的索引来获取列名作为String
?我看了一下API文档,但什么也找不到。
发布于 2009-03-30 11:13:13
您可以从ResultSet
元数据中获取此信息。请参阅ResultSetMetaData
例如:
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
String name = rsmd.getColumnName(1);
您可以从那里获得列名。如果你这样做了
select x as y from table
然后,rsmd.getColumnLabel()
也会为您获取检索到的标签名称。
发布于 2010-09-29 12:24:36
除了上面的答案之外,如果您正在处理一个动态查询,并且您想要列名,但是不知道有多少列,那么可以使用ResultSetMetaData对象首先获取列数,然后循环它们。
修改Brian的代码:
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
// The column count starts from 1
for (int i = 1; i <= columnCount; i++ ) {
String name = rsmd.getColumnName(i);
// Do stuff with name
}
发布于 2009-03-30 11:15:28
为此,可以使用ResultSetMetaData (http://java.sun.com/javase/6/docs/api/java/sql/ResultSetMetaData.html)对象,如下所示:
ResultSet rs = stmt.executeQuery("SELECT * FROM table");
ResultSetMetaData rsmd = rs.getMetaData();
String firstColumnName = rsmd.getColumnName(1);
https://stackoverflow.com/questions/696782
复制相似问题