数据初始化校验

2019-03-07  本文已影响0人  安之若素_Lei

在实际项目中,经常有初始化数据、迁移数据的情况,经过一次初始化数据的校验之后,简单记录下

需求:

原数据是以json格式存储在一个服务器上的,程序每次都去取这个配置

改造:

把数据迁移到数据库中,通过后台进行增删改查

原数据格式:(pid+mid+sid、pid+mid)

{"1234567890123_12345678901234_asdf":"ka","1234567890124_12345678901234_asdfaw":"ka"}

{"1234567890123_12345678901234":{"merchantName":"DFS机场店"},"2088521596748432_2088521596748432":{"merchantName":"DFS环球店"}}

处理原理:

1.封装json字符串到JSONObject对象

2.遍历JSONObject,整合获取两个json中的共同参数

3.获取到参数后,拆分参数进行数据库查询

4.比对查询结果

代码内容:

    String utp_drm="{"1234567890123_12345678901234_asdf":"ka","1234567890124_12345678901234_asdfaw":"ka"}";

    String overseaexprod_drm="{"1234567890123_12345678901234":{"merchantName":"DFS机场店"},"2088521596748432_2088521596748432":{"merchantName":"DFS环球店"}}";

    //转换utp的drm

    JSONObject json_utp = (JSONObject) JSONObject.parse(utp_drm);

    //转换oversea的drm

    JSONObject json_overseaexprod = (JSONObject) JSONObject.parse(overseaexprod_drm);

    //执行条数

    int ts=0;

    //遍历utp全部数据

    for (String key_utp : json_utp.keySet()) {

                String key_name ="";

                String jieguo = key_utp +"组合未找到匹配的overseaexprod数据";

                //循环oversea全部数据

                for (String key_overse : json_overseaexprod.keySet()) {

                        if (key_utp.startsWith(key_overse)) {

                                JSONObject json_name = (JSONObject) JSONObject.parse(json_overseaexprod.getString(key_overse));

                                key_name = json_name.getString("merchantName");

                                jieguo = key_utp +"组合找到匹配的overseaexprod数据";

                                break;

                          }

        }

        System.out.println(jieguo);

        //存储drm中的商户汇率等级

        String grade = json_utp.getString(key_utp);

        //存储drm中的商户名称

        String name = key_name;

        //存储drm中的id组合

        String id = key_utp;

        //把drm中的id组合拆分为pid和mid、sid

        String[] id_num = id.split("_");

        String pid = id_num[0];

        String mid = id_num[1];

        String sid = id_num[2];

        String sql="";

        if("*".equals(sid)){

                //如果sid为*,查询语句则不带sid

                sql ="SELECT * FROM `fx_pms_config` WHERE pid='" + pid +"' AND MID='" + mid +"'";

        }else{

                sql ="SELECT * FROM `fx_pms_config` WHERE pid='" + pid +"' AND MID='" + mid +"' AND sid='" + sid +"'";

        }

    //执行查询,返回map集合(该方法是公司框架自定义好的)

    DataMap map = DButil4FuncTest.getQueryResultMap(sql, TravelSql.MYSQL);

    //System.out.println(map.get("MID"));

    //判断map中是否存在数据

    if (map.size() >1) {

    //判断drm中的商户名称、等级是否和数据库中的一致

    System.out.println("已执行"+ts+++"条");

    if (name.equals(map.get("NAME")) && grade.equals(map.get("grade"))) {

                //System.out.println(id + "组合数据正常");

        }else {

                System.out.println(id + name +"组合数据和数据库数据不匹配");

        }

    }else{

System.out.println(id+"组合数据在数据库中未查询出记录");

}

上一篇下一篇

猜你喜欢

热点阅读