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結果集