logger.info(qrySqlSb.toString());
ps = conn.prepareStatement(qrySqlSb.toString());
PreparedStatementHelper.setParam(1, dto.getAcctId(), ps);
rs = ps.executeQuery();
while(rs.next()) {
dbloopOne = 1;
ps = conn.prepareStatement(insertSqlSb.toString());
PreparedStatementHelper.setParam(dbloopOne++, dto.getAgreementCode(), ps);
PreparedStatementHelper.setParam(dbloopOne++, dto.getPartnerCode(), ps);
PreparedStatementHelper.setParam(dbloopOne++, rs.getString(1), ps);
PreparedStatementHelper.setParam(dbloopOne++, rs.getString(2), ps);
ps.executeUpdate();
dbloopOne = 1;
ps = conn.prepareStatement(deleteSqlSb.toString());
PreparedStatementHelper.setParam(dbloopOne++, dto.getAgreementCode(), ps);
PreparedStatementHelper.setParam(dbloopOne++, dto.getPartnerCode(), ps);
PreparedStatementHelper.setParam(dbloopOne++, dto.getAccNbr(), ps);
ps.executeUpdate();
num++;
}
}
一般來說,我們在寫Java代碼的時候,createStatement和prepareStatement都應該要放在循環外面,而且使用了這些Statment後,及時關閉。最好是在執行了一次executeQuery、executeUpdate等之後,如果不需要使用結果集(ResultSet)的數據,就馬上將Statment關閉,調用close()方法。