首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从java.sql.ResultSet检索列名

从java.sql.ResultSet检索列名
EN

Stack Overflow用户
提问于 2009-03-30 11:10:15
回答 11查看 387.5K关注 0票数 251

对于java.sql.ResultSet,有没有一种方法可以通过使用列的索引来获取列名作为String?我看了一下API文档,但什么也找不到。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2009-03-30 11:13:13

您可以从ResultSet元数据中获取此信息。请参阅ResultSetMetaData

例如:

代码语言:javascript
复制
 ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
 ResultSetMetaData rsmd = rs.getMetaData();
 String name = rsmd.getColumnName(1);

您可以从那里获得列名。如果你这样做了

代码语言:javascript
复制
select x as y from table

然后,rsmd.getColumnLabel()也会为您获取检索到的标签名称。

票数 411
EN

Stack Overflow用户

发布于 2010-09-29 12:24:36

除了上面的答案之外,如果您正在处理一个动态查询,并且您想要列名,但是不知道有多少列,那么可以使用ResultSetMetaData对象首先获取列数,然后循环它们。

修改Brian的代码:

代码语言:javascript
复制
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
}
票数 155
EN

Stack Overflow用户

发布于 2009-03-30 11:15:28

为此,可以使用ResultSetMetaData (http://java.sun.com/javase/6/docs/api/java/sql/ResultSetMetaData.html)对象,如下所示:

代码语言:javascript
复制
ResultSet rs = stmt.executeQuery("SELECT * FROM table");
ResultSetMetaData rsmd = rs.getMetaData();
String firstColumnName = rsmd.getColumnName(1);
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/696782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档