• java.sql.SQLException: 关闭的 Resultset: next


    根据异常信息判断是数据库查询出来的结果集被关闭了,所以就了next

    我的代码是一个Impl方法(假设为A方法)中调用另一个Impl方法(假设为B方法),我在执行完B方法后,调用了一下关闭数据库连接的方法,结果把A方法连接数据库给关闭了;

    解决方法是把B方法中 关闭数据库连接的方法(即:super.close(con, pstmt, null, rs);)给删除了!

    下面是我的出错误的代码:

    /**
    * 查询延期的任务
    */
    @Override
    public List<Extension> findPlanTask(String itemId) {
    con = super.getConnection();
    List<Extension> planTaskList=new ArrayList<Extension>();
    Extension extension=null;
    String sql="select yq_yjtzrq,yq_rwbh from qj_extension where yq_xmbh=?";
    try{
    pstmt=con.prepareStatement(sql);
    pstmt.setString(1, itemId);
    rs=pstmt.executeQuery();
    while(rs.next()){

    extension=new Extension();
    extension.setYjtzrq(rs.getString("yq_yjtzrq"));
    PlanTask plantask= selectPlantask(rs.getString("yq_rwbh"));
    extension.setPlanTask(plantask);
    planTaskList.add(extension);
    }
    }catch (SQLException e) {
    e.printStackTrace();
    }
    super.close(con, pstmt, null, rs);
    return planTaskList;
    }


    /**
    * 根据延期计划的id查询任务
    * @param pid
    * @return
    */
    private PlanTask selectPlantask(String pid) {
    con = super.getConnection();
    PlanTask planTask=null;
    String sql="select planTask_rwbh,planTask_Rwzt,planTask_Rwjc,planTask_Jcms,planTask_Rwlb,planTask_Rwmc,planTask_Jhksrq,planTask_Jhwcrq from qj_plantask where planTask_jhbh=?";
    try{
    pstmt=con.prepareStatement(sql);
    pstmt.setString(1, pid);
    rs=pstmt.executeQuery();
    while(rs.next()){
    planTask=new PlanTask();
    planTask.setPlanTaskRwbh(rs.getString("planTask_rwbh"));
    planTask.setPlanTaskRwzt(rs.getString("planTask_Rwzt"));
    planTask.setPlanTaskRwjc(rs.getInt("planTask_Rwjc"));
    planTask.setPlanTaskJcms(rs.getString("planTask_Jcms"));
    planTask.setPlanTaskRwlb(rs.getString("planTask_Rwlb"));
    planTask.setPlanTaskRwmc(rs.getString("planTask_Rwmc"));
    planTask.setPlanTaskJhksrq(rs.getString("planTask_Jhksrq"));
    planTask.setPlanTaskJhwcrq(rs.getString("planTask_Jhwcrq"));
    }
    }catch (SQLException e) {
    e.printStackTrace();
    }

    super.close(con, pstmt, null, rs);
    return planTask;
    }

  • 相关阅读:
    jquery Banner 图片自动轮换显示
    JavaScript:appendDiv(append和appendChild的区别)
    JavaScript:addEventListener()和removeEventListener()追加事件和删除追加事件
    Cesium源码之CesiumMath(1.62版)
    cesium功能插件
    JavaScript之prototype
    JavaScript规范define(AMD)
    Cesium之时间
    Cesium CallbackProperty实例
    pku3620 Avoid The Lakes 查找最大连通湖(简单深搜)
  • 原文地址:https://www.cnblogs.com/songlove/p/6073132.html
Copyright © 2020-2023  润新知