我正在处理一个结果集,其中返回的列数各不相同,因此我需要知道存在哪些列。我发现我可以像这样提取返回的列名称:
ResultSetMetaData meta = rs.getMetaData();
ArrayList<String> columns = new ArrayList<String>();
for (int i = 0; i < meta.getColumnCount(); i++) {
columns.add(meta.getColumnLabel(i+1));
}
然而,这并没有给我 SQL 中定义的完整列名。即。
select events.id, events.name from events;
显示为“id, name”而不是“events.id, events.name”,这在连接表并希望返回的列名称有所不同时非常糟糕。
最佳答案
答案是:您无法从 select 语句中检索表别名。但是,您可以检索列的基础表的名称,因此您应该能够使用 ResultSetMetaData 中的 getTable(int) 来检索此名称,因为您没有使用表别名,而是使用实际的表。
关于java - 从 jdbc 的元数据对象获取完整的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8521120/