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