数据初始化校验

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

需求:

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

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值