java中的SQL - 获取列数
Posted
技术标签:
【中文标题】java中的SQL - 获取列数【英文标题】:SQL in java - get the number of columns 【发布时间】:2014-04-21 01:05:16 【问题描述】:我已经在 java 中使用 sql 有一段时间了。代码通常是这样的 -
conn = DriverManager.getConnection(url, user, pwd);
PreparedStatement pstat = conn.prepareStatement("select * from table");
ResultSet rs = pstat.executeQuery();
while(rs.next())
System.out.print(rs.getString(1) + "," + rs.getString(2) + "...");
我无法弄清楚如何获得总列数。我从来不需要它,因为我可以访问 DBVisualizer 并且知道那里的确切列数。但是,我现在想编写一个 java 程序来打印出查询的所有结果,因此需要列数,这样我就可以在 while 循环中打印所有这些结果,而不是猜测。最好的方法是什么?
【问题讨论】:
文档是您的朋友。 ResultSet 的 javadoc 的最后一段明确地告诉你。 docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html。除此之外,出于这个原因,使用select *
通常不是一个好主意。选择您想要的列,您没有问题。
也许只有我一个人,但如果没有你的指针,找到它就会是大海捞针。这个网站上的大多数问题可能在某个地方的某个文档中得到了回答。
@BrianRoach 只询问结果集的元数据,“select *”不是问题。
【参考方案1】:
使用ResultSetMetaData.getColumnCount()
- 返回此ResultSet
对象中的列数。
ResultSet rs = pstat.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
见ResultSetMetaData
【讨论】:
以上是关于java中的SQL - 获取列数的主要内容,如果未能解决你的问题,请参考以下文章