【问题标题】:SQL Retrieving and storing integerSQL检索和存储整数
【发布时间】:2014-05-02 06:26:38
【问题描述】:

我有以下代码:

String query_NoHotels = "SELECT max(id) FROM hotels" ;
ResultSet res = stmnt.executeQuery(query_NoHotels);
logger.info("The result set size is "+res.getFetchSize());
int noHotels = res.getInt(1);

但是,ResultSet 总是返回空。我已经在数据库上测试了这个查询,它应该返回 5

当结果只有一项(整数)时,这是存储结果的正确方法吗?

感谢您的帮助。

【问题讨论】:

    标签: java sql select derby


    【解决方案1】:

    ResultSet 有一个光标。光标最初将位于第一行之前(请参阅:http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html)。

    您必须调用first() 方法将光标移动到第一行:

    ResultSet res = stmnt.executeQuery(query_NoHotels);
    logger.info("The result set size is "+res.getFetchSize());
    res.first();
    int noHotels = res.getInt(1);
    

    或者,您可以使用next() 方法在while 循环中迭代结果集。

    【讨论】:

      【解决方案2】:

      请这样写代码

      String query_NoHotels = "SELECT max(id) FROM hotels" ;
      ResultSet res = stmnt.executeQuery(query_NoHotels);
      if(rs.next()){
      logger.info("The result set size is "+res.getFetchSize());
      int noHotels = res.getInt(1);
      
      }
      

      最初结果游标位于第一行之前。所以我们需要将游标移动到第一条记录rs.next()/rs.first()

      【讨论】:

        猜你喜欢
        • 2017-01-01
        • 1970-01-01
        • 2013-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-05
        • 1970-01-01
        • 2023-04-02
        相关资源
        最近更新 更多