解决方案 »

  1.   

    有可能执行的结果就是没有内容,而且你写的是rs.next(),如果没有下条数据的话自然就会报错,所以在执行这句话之前应该判断一下当前数据rs的数据数是否为0,不为0的情况下再执行以下的语句。
      

  2.   

    你的 rs是全局变量  在父类方法中,rs是两条,但在子类中对rs进行了修改,再返回父类方法中时,rs已经不是改变了
      

  3.   

    你确定是一条循环完了报的错?你走debug的时候看看是哪条语句蹦的异常啊。有可能是某条数据取错了才报的
      

  4.   

    原因就在于你把rs定义成了全局变量,建议每个方法中将rs设置成局部变量,这样每个方法的rs都互不影响 这是我的原代码 分享给你   
    public class ClassDaoImpl implements ClassDao{
     DBConn db=new DBConn();
    public List<SubCategory> getSubCategoriesByCid(int cid) {
    String sql="select * from jianhui_subcategory where cid=?";
     Object params[]={cid};
         db.dopstmt(sql, params);
         List<SubCategory> list=new ArrayList<SubCategory>();
         ResultSet rSet=null;
         SubCategory s=null;
         try {
    rSet=db.getRs();
    while(rSet.next()){
    s=new SubCategory();
    ProductClass pClass=new ProductClass();
    pClass.setCid(rSet.getInt("cid"));
    s.setPclass(pClass);
    s.setScid(rSet.getInt("scid"));
    s.setScname(rSet.getString("scname"));
    list.add(s);
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return list;
    }}
      

  5.   

     正解 
    第二次必然出错
    ResultSet有hasNext()方法吗?想成Iterator了吧?
      

  6.   

    先判断rs为空不,为空肯定报错
    if(rs != null){
      while(...){...}
    }
      

  7.   

    while(rs.hashNext())
    {
       rs.next();}