有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java SQL检索和存储整数

我有以下代码:

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

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

谢谢你的帮助


共 (2) 个答案

  1. # 1 楼答案

    请用这种方式写代码

    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()将光标移动到第一条记录

  2. # 2 楼答案

    一个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循环中迭代结果集