【问题标题】:When I use jdbc and phoenix to query data from hbase,the "resultset.first()" throw exception当我使用jdbc和phoenix从hbase查询数据时,“resultset.first()”抛出异常
【发布时间】:2017-03-16 20:51:56
【问题描述】:

这样的代码:

这样的异常:

java.sql.SQLFeatureNotSupportedException 在 com.salesforce.phoenix.jdbc.PhoenixResultSet.first(PhoenixResultSet.java:173)

【问题讨论】:

  • 请将问题中的代码作为文本。不要发布代码截图。至于问题:你有没有读过ResultSet.first()的JDBC API Javadoc,特别是“SQLFeatureNotSupportedException - if the JDBC driver does not support this method”?显然您的驱动程序不支持这一点,还请注意,除非您使用可滚动的结果集(您的代码不支持,并且驱动程序可能不支持),否则 first() 无论如何都应该抛出 SQLException。跨度>

标签: jdbc hbase phoenix


【解决方案1】:

如果你重新编码你的代码以使用next() 而不是first() 你会没事的:

while(resultset.next()) {
  //Do something with resultset
}

如果您正在寻找为什么...您必须去询问该 JDBC 驱动程序的开发人员。由于在ResultSet 内定位需要可滚动 ResultSet,因此该功能可能根本不存在。

【讨论】:

  • 谢谢。也许“com.salesforce.phoenix.jdbc.PhoenixDriver”不支持这个。
【解决方案2】:

ResultSet.first() 的实现尚未在 Apache Phenix 中完成。因此,您会收到错误消息。

 public boolean first() throws SQLException {
        throw new SQLFeatureNotSupportedException();
    }

尝试使用 ResultSet.next() 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 2015-12-15
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    相关资源
    最近更新 更多