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()方法。