sqDealLog.setToXbunit(sqDealLog12345.getToXbunit()); sqDealLog.setUname(sqDealLog12345.getUname()); sqDealLog.setUnit(sqDealLog12345.getUnit()); sqDealLog.setWorkCode(sqDealLog12345.getWorkCode()); sqDealLogService.save(sqDealLog); sqDealLog12345.setSync("1"); sqDealLog12345Dao.update(sqDealLog12345); 先执行进行方法操作,再修改状态参数。先save再update sync
for(SqDealLog sqDealLog:sqDealLogList){
boolean f = false;
for(SqDealLog sqDealLog2:sqDealLogList1){
if(sqDealLog2.getId().equals(sqDealLog.getId())){
f = true;
}
}
if(!f){
//插入 insert
}else {
//update
}
}
两个或多个list循环。
@Scheduled(cron = "0 */10 * * * ? ") //每10分钟执行一次 public void insertData12358() { SqGd sqGd = new SqGd(); sqGd.setSynck("3");//已上传到12345的状态为3 sqGd.setState("5");//办结状态位5 List<SqGd> listSqGd = sqGdService.findList(sqGd); for (SqGd sqGd1 : listSqGd) { sqGd1.setDealStatus("3");// 这里设置操作状态为已上传至12358列表显示需要的状态 sqGd1.setSynck("4");//上传12358成功后的状态 sqGdDao.update(sqGd1); SqDealLog sqDealLog=new SqDealLog(); sqDealLog.setGdId(sqGd1.getGdId()); SqDb sqDb=new SqDb(); sqDb.setGdId(sqGd1.getGdId()); List<SqDealLog> sqDealLogList= sqDealLogService.findList(sqDealLog); for (SqDealLog sqDealLog1:sqDealLogList) { List<SqDb> sqDbList = sqDbService.findList(sqDb); for (SqDb sqDb1:sqDbList){ prRecordDao.inset(sqGd1, sqDealLog1, sqDb1); prUcapFwLog.insertLog(sqDealLog1); } } } 根据一个循环的到sqGd1.getgdId(),用做查询关联表查询方法的条件,例如:sqDealLogService.findList(sqDealLog);
<where> a.del_flag=#{delFlag} <if test="stringList != null"> <foreach item="item" collection="stringList" index="" open=" and a.synck in (" separator="," close=")"> #{item} </foreach> </if> </where> SQL语句中看清条件的之间是否用“and”连接。
SQL语句where后接的判断条件根据数据库而定。
WHERE a.db_id = #{dbId}
例如如果没有主键为Id的字段,所以在作为判断条件时要讲接受判断的值改成你此时的主键,如:#{dbId}