java.sql.SQLException: 關閉的 Resultset: next

根據異常信息判斷是數據庫查詢出來的結果集被關閉了,因此就了nextsql

個人代碼是一個Impl方法(假設爲A方法)中調用另外一個Impl方法(假設爲B方法),我在執行完B方法後,調用了一下關閉數據庫鏈接的方法,結果把A方法鏈接數據庫給關閉了;數據庫

解決方法是把B方法中 關閉數據庫鏈接的方法(即:super.close(con, pstmt, null, rs);)給刪除了!ide

下面是個人出錯誤的代碼:get

 

/**
* 查詢延期的任務
*/
@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;
}it


/**
* 根據延期計劃的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();
}io

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

相關文章
相關標籤/搜索