java连接Oracle数据库,从ResultSet中获取数据出现java.sqlsqlException结果集已耗尽
1、检查数据库事务是否提交
2、ResultSet.next()方法的错误使用
当返回一条语句时:可以rs.next()判断有无值,rs==null,这样没有效果
返回多条语句时要使用while()循环
因为用类java.sql.Statement的executequery()方法查询的结果集永远不会返回null,可以用rs.next()方法来判断有没结果集,
因为一个结果集最初将游标定位在第一行的前面。而不用rs==null,这样没有效果。
现在详细解说一下resultset的next()方法,每调用一次,游标后移一个,当resultset游动到最后一行,再调用next()方法会返回false,
并且游标也到了最后一行的后面!要是再调用next()的话就会出现异常!!!!!!
public User login(String username, String password) {
String sql = "select * from u_user where username = ? and password = ?";
ResultSet rs = JdbcUtils.executeQuery(sql, username, password);
User user = null;
try {
if (rs.next()) {
user = new User();
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setGrade(rs.getInt("grade"));
return user;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JdbcUtils.close(rs);
}
return user;
}
3、是否关闭Connection连接,关闭ResultSet结果集