zoukankan      html  css  js  c++  java
  • Jsp--java.sqlsqlException结果集已耗尽

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

  • 相关阅读:
    javascript 注意事项汇总
    Object.prototype.toString方法
    PHPStorm使用心得
    JavaScript基于原型链的继承
    PHP重定向的3种方式
    Android应用与开发环境
    PHP时间处理
    cocos2dxna 游戏中如何控制后退键实现目的性跳转
    wp7 独立存储空间在真机和虚拟机测试的时候数据不一样
    c#获取交叉数组的行、列数
  • 原文地址:https://www.cnblogs.com/64Byte/p/12916037.html
Copyright © 2011-2022 走看看