我有一个使用各种连接的查询,我只需要该查询返回的列列表。我是用 Java 完成的,只询问行数 = 1 的一行并获取值的列名。问题是该查询是否没有返回数据。
例如
select * from something
如果此查询返回任何数据,则它将返回 col1
、col2
、col3
。
但如果此查询没有返回数据,则会抛出错误。
我需要的是
有什么办法可以运行
desc (select * from something)
或类似于获取查询返回的列列表。
可以是sql也可以是JAVA。两种方法都可以接受。
在我的应用程序中,用户传递查询,我可以向查询添加包装器但我不能完全修改它。
申请流程是
从用户查询 -> 通过 java 执行并获取一行 -> 返回结果集中列的列表。
最佳答案
你可以使用ResultSetMetaData结果集
例如:
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
int countOfColumns = rsmd.getColumnCount();
for(int i = 1; i <= countOfColumns ; i++ )
System.out.println(rsmd.getColumnName(i));
关于java - sql查询中的列列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31914219/