美文网首页
数据初始化校验

数据初始化校验

作者: 安之若素_Lei | 来源:发表于2019-03-07 19:06 被阅读0次

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

    需求:

    原数据是以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+"组合数据在数据库中未查询出记录");

    }

    相关文章

      网友评论

          本文标题:数据初始化校验

          本文链接:https://www.haomeiwen.com/subject/jwehpqtx.html