我成功连接到我的访问数据库,我的sql正常工作,之后我有一个结果集。代码如下:
Statement stmt = con.createStatement();
String sqlStr ="select max(ID) from GuestBook ";
ResultSet rset = stmt.executeQuery(sqlStr);
但是当我想从结果集中得到这样的值时;
int id = rset.getInt(1);
或
int id = rset.getInt("ID");//or "max(ID)"
我有一个sql异常。
例外是“无效的记录集状态”
我该如何解决这个问题?
答案 0 :(得分:2)
将为"Expr1000"
生成max(ID)
的列名称。但我认为最好使用As
子句为其定义明确的别名。
您必须调用rset.next()
才能移动到第一行,因为最初,光标位于第一行之前。
Statement stmt = con.createStatement();
String sqlStr ="SELECT max(ID) As LastID FROM GuestBook";
ResultSet rset = stmt.executeQuery(sqlStr);
int id = 0;
if (rset.next()) {
id = rset.getInt("LastID");
// OR
id = rset.getInt(1);
}