繁体   English   中英

java.sql.SQLException:Exhausted Resultset错误

[英]java.sql.SQLException: Exhausted Resultset error

我遇到了这个异常的问题java.sql.SQLException:以下代码中的Exhausted Resultset 我确定我的查询只返回一个值。 即使我不使用rs.next(); 它抛出错误java.sql.SQLException:未调用ResultSet.next 能否请你帮忙?

仅供参考,我正在使用另一个来自另一个类的menthod的主要结果集。 会影响吗?

谢谢

public static String getdispname(Connection conn, String resname) 
throws SQLException, Exception {

            //String resname = "";
            String returnValue = "";
            String querystring = "";

            //Query to select the displayname from resid

            querystring += "select distinct display_name";
            querystring += " from cust_rally_team_member";
            querystring += " where display_name like '%"+ resid +"%'";

            // Create select statement
            Statement stmt = conn.createStatement();

            try {
                // Execute statement
                ResultSet rs = stmt.executeQuery(querystring);
                if (rs!= null) { 
            while (rs.next()) {
            returnValue = rs.getString("display_name");
            } catch (SQLException ex) {
                throw new SQLException(ex);
            } catch (Exception ex) {
                throw new Exception(ex);
            }
            // Close statement
            finally {
                stmt.close();
            }

            return returnValue;

试试吧

if (rs! = null) { 
 while (rs.next()) {
  returnValue = rs.getString("display_name");
}
......

尝试:

returnValue = rs.next() ? rs.getString("display_name") : null;

您无需检查rs是否为null。 它不会 - 假设executeQuery()返回而不是引发异常。 (尽管返回的结果集可能有0行)。

您也不需要遍历结果集,假设您确实知道您希望返回单行。 (虽然,鉴于查询,这似乎不太可能。)

使用您的修改,如下所示

if (rs != null && rs.first()) {
    do {
        returnValue = rs.getString(("display_name");
    } while (rs.next());
}

我使用的是Oracle 10g数据库,我发现了同样的错误“java.sql.SQLException:Exhausted Resultset error”。 我只是在数据库中授予权限并解决了我的问题。

SQL>将“table-name”上的insert,update,delete赋予“database_name”;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM