簡體   English   中英

如何從Java的ResultSet中按別名/標簽獲取列?

[英]How to get a column by alias/label from Java's ResultSet?

假設我有一個SP, SELECT a as b FROM example_table在最后SELECT a as b FROM example_tableSELECT a as b FROM example_table

當我做

// Some magical code goes here
ResultSet rs = callableStatement.executeQuery();
while(rs.next()) {
    System.out.printLn(rs.getString("b"));
}
// Some magical code goes here

我收到一條錯誤消息,通知我該列不存在,但是當我更改rs.getString("a")代碼時,它將正確執行。 這似乎是因為getString(String)通過其名稱而不是通過其別名/標簽來獲取列。

如何告訴ResultSet通過標簽/別名(而不是名稱)來獲取列。

PS:我在這里發現了類似的問題

@Alper賺了錢。

他們更改了驅動程序,並添加了需要設置為“ true”的連接屬性GET_COLUMN_LABEL_FOR_NAME。 我以為它只用於resultSetMetaData,但顯然不多。

這很奇怪,但請嘗試一下。

Sybooks中的參考

Sybase新聞組文章

我不知道它是否相關,但是在MySQL中,您可以通過在連接字符串的末尾添加?useOldAliasMetadataBehavior=true來避免類似的問題。 檢查此鏈接以獲取詳細信息

相同情況的官方解釋鏈接 :此處表示直到5.0.x版本,默認值都設置為true而在5.1版本之后,默認值設置為false 您還可以在此處檢查配置字符串的其他參數

暫無
暫無

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

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