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

数据初始化校验

作者: 安之若素_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+"组合数据在数据库中未查询出记录");

}

相关文章

  • 数据初始化校验

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

  • API 安全机制 | 数据校验

    数据校验 接口层面; 数据库层面; 数据校验 | 接口层面 | 代码 数据校验 | 数据库层面 | 代码

  • Kettle 实战之 (3) 数据校验

    实例 增加节点-数据校验 1、从【校验】节点分类中选择【数据校验】 2、设置校验规则点击【增加校验】,增加校验规则...

  • HiveMQ源码阅读

    插件加载及启动 同步加载异步启动 启动后校验 数据持久化加载及初始化 异步线程池加载及初始化 客户端连接流程鉴权 ...

  • 深入理解java虚拟机(四)--类加载机制

    一、概述 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以...

  • Java 虚拟机(JVM)类加载机制

    概念 Java 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可...

  • JVM之class加载过程

    一、定义: java虚拟机把描述类的数据从class文件加载到内存,并对数据进行 校验/准备/解析和初始化,最终形...

  • ☆技术问答集锦(11)JVM类加载

    1 类加载机制概念是什么? JVM把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最...

  • java中类的加载ClassLoader

    目录 概念: 1,类加载的机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析、初始化...

  • 深入Java日记——JVM类加载全过程

    类加载机制 JVM把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟...

网友评论

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

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