小弟,近期在作定时任务时发现, ,从数据库中select出来了10条数据,其中有一条是有错误信息的。java
保存到了list中,,向另外一个库插入的时候,这条错误数据可能在10条中的第5的位置,到值6-10的数据没法插入,源码以下sql
@Override public 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端身份证为1 idTypeCd = "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; 这个就能够了。。ide
我真是如遭雷劈,continue本来功能就是终止当前循环, ,执行下次循环。我居然没有想起来。。。。this
之后,有相同需求的童鞋们, ,能够使用哦编码