SQL检索和存储整数

时间:2014-05-02 06:26:39

标签: java sql select derby

我有以下代码:

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 个答案:

答案 0 :(得分: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循环中迭代结果集。

答案 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()的第一个记录。