簡體   English   中英

從jdbc的元數據對象獲取完整的列名

[英]Getting the full column name from jdbc's metadata object

我正在處理一個結果集,其中返回的列數有所不同,因此我需要知道存在哪些列。 我發現我可以像這樣提取返回的列名:

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中定義的完整列名。 IE瀏覽器。

select events.id, events.name from events;

顯示為“ id,name”而不是“ events.id,events.name”,這在聯接表並希望在返回的列名上有所不同時非常糟糕。

連接表時必須指定別名。 有兩種方法getColumnName() -返回列名和getColumnLabel() -返回列標簽(別名)。 如果別名不然后specifed的getColumnLabel()返回相同的值由所述返回的值getColumnName()

答案是:您無法從select語句中檢索表別名。 但是,您可以檢索列的基礎表的名稱,因此您應該能夠使用ResultSetMetaData中的getTable(int)來檢索此名稱,因為您沒有使用表別名,而是使用了實際的表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM