在java中预览sql结果列

时间:2014-03-14 10:31:30

标签: java sql

有没有办法预览' sql select语句? 我想要做的是获取sql语句返回的列的名称,而不实际运行该语句?

在应用程序启动时我需要知道列名,问题是某些查询可以运行一段时间。

2 个答案:

答案 0 :(得分:1)

ResultSetMetaData可能有所帮助

您仍然必须执行查询才能获取元数据,但您可以更改为where子句添加限制,这意味着它可以非常快速地返回零行。例如,您可以将and 1 = 0附加到where子句。

DBMS仍然必须执行它通常会执行的所有查询解析 - 这只是意味着执行应该很快就会失败

答案 1 :(得分:0)

您没有提及您的DBMS,但以下内容适用于Postgres和Oracle JDBC驱动程序。我没有测试任何其他。

// the statement is only prepared, not executed!
PreparedStatement pstmt = con.prepareStatement("select * from foo");

ResultSetMetaData metaData = pstmt.getMetaData();
for (int i=1; i <= metaData.getColumnCount(); i++)
{
  System.out.println(metaData.getColumnName(i));
}