2019独角兽企业重金招聘Python工程师标准>>>
小弟,近期在做定时任务时发现, ,从数据库中select出来了10条数据,其中有一条是有错误信息的。
保存到了list中,,向另一个库插入的时候,这条错误数据可能在10条中的第5的位置,到值6-10的数据无法插入,源码如下
@Overridepublic String getAppData() {logger.info("开始抓取ME金融端【客户】信息");List<Map> list = this.findCusData();if(list.size() > 0){for(int i = 0; i < list.size(); i++){logger.info("抓取到的App端客户信息的id为:" + list.get(i).get("ID").toString());try {//因为App端和综合端数据字典不能对应,所以需要在中间代码中进行转换String sex = "1";String idTypeCd = "1";if("2".equals(list.get(i).get("SEX"))){//App端为2 sex = "0";//综合端女为0}if("1".equals(list.get(i).get("IDTYPECD"))){//App端身份证为1idTypeCd = "0";//综合端身份证为0}//插入客户表的sql语句String sql = "insert into me_mid_customer_info "+ "(id,"+ "ch_name,"+ "sex_cd,"+ "id_type_cd,"+ "id_number,"+ "phone_number,"+ "data_handle_date,"+ "handle_terrace,"+ "flag,"+ "self_code,"+ "other_code,"+ "me_cus_id ) VALUES "+ "(seq_me_mid_customer_info.NEXTVAL,'" + getNull(list.get(i).get("NAME"))+ "','" + sex+ "','" + idTypeCd+ "','" + getNull(list.get(i).get("IDNUMBER"))+ "','" + getNull(list.get(i).get("PHONENUMBER"))+ "','" + sd.format(System.currentTimeMillis())+ "','" + "0"+ "','" + "0"+ "','" + getNull(list.get(i).get("CUSREFERRALCODE"))+ "','" + getNull(list.get(i).get("INVREFERRALCODE"))//这里要根据后续推荐码编码规则进行修改+ "','" + getNull(list.get(i).get("ID"))+ "')";//修改App端抓取数据后的数据状态,避免重复抓取String sqlUpdateCus = "update me_customer_info set flag='1' where flag = '0'"+ "and id='"+getNull(list.get(i).get("ID"))+"'";logger.info("插入【客户】到中间库的sql:"+sql);logger.info("修改ME金融端【客户】数据状态的sql:"+sqlUpdateCus);//获取插入客户的结果集jdbcDao1.execute(sql);logger.info("【SUCC】执行【客户】数据插入中间表成功!");//执行修改语句jdbcDao.execute(sqlUpdateCus);logger.info("【SUCC】修改Me金融端【客户】数据成功");} catch (Exception e) {logger.info("【ERROR】执行数据插入中间表报错!");e.printStackTrace();}}logger.info("获取数据数量为:"+list.size()+"条");return "success";}else{logger.info("获取数据数量为:0条");return "empty";}}
上述代码中,使用了for循环对list进行遍历,并向另一个库插入,如果第5条数据有误, 那么就会抛出异常, ,6-10条数据就无法插入,,,,那么 如何能不受错误数据影响,,插入9条数据,1条错误数据不插入呢?
问过大牛们才知道,,其实,在catch(){ }中 加continue; 这个就可以了。。
我真是如遭雷劈,continue原本功能就是终止当前循环, ,执行下次循环。我竟然没有想起来。。。。
以后,有相同需求的童鞋们, ,可以使用哦