发布网友 发布时间:2022-04-11 04:41
共6个回答
懂视网 时间:2022-04-11 09:03
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结果集
Jsp--java.sqlsqlException结果集已耗尽
标签:color sql 错误 cat rate 检查 lock 并且 事务
热心网友 时间:2022-04-11 06:11
因为如果循环体不执行的话 re为空,你再执行re.close(); 肯定会报那个错,改为if(re ==null){追答恩,应该没问题的,你看来也是一个菜鸟哦,呵呵,还有sql.close()都要检查是否为空,因为数据库是这样的,都没有打开何来的关闭。
热心网友 时间:2022-04-11 07:29
那是因为你执行一句之后就关闭了链接,热心网友 时间:2022-04-11 09:03
检查数据库连接是否正常关闭热心网友 时间:2022-04-11 10:55
断点调试 看看到底是那条语句报的错热心网友 时间:2022-04-11 13:03
没连接上数据库追问数据库是连接上去了,查询的表中第一行数据被计算并且修改了,但就是不执行for循环,只运算了第一行数据,别的行数据没获取执行