从动态sql查询中提取java中的列名

时间:2014-02-06 00:03:28

标签: java sql

我想解析一个sql查询并从中只提取列名。我不能只在'select'和'from'之间提取部分,因为查询也可以有一个别名。这是现在的要求,但稍后可以进入任何类型的查询,所以我需要一个动态方法/库来返回列名。

1 个答案:

答案 0 :(得分:2)

您需要使用ResultSetMetaData来获取执行查询后返回的结果集中列的名称。

ResultSet rs = stmt.executeQuery(...);
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount()
for (int i = 1; i < columnCount; i++) {
    System.out.println(rsmd.getColumnName(i));
}

注意:索引从1开始,而不是从0开始