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;

}