繁体   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