记一次对接第三方数据,存入数据库后清洗数据,数据重复

一现象:

对接第三方数据,先全量存入数据库,然后进行跑批清洗,在清洗过程中发现每次都有不同条数的数据重复。

二根本原因:

就是数据库中有的重复的字段条数存在空格,有的没有。

java 复制代码
        QueryWrapper<DDeviceType> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("protocol_type",zhttVhc.getTerminalModel());
        if(StringUtils.isNotBlank(zhttVhc.getEquipmentmodel())) {
            queryWrapper.eq("device_model", zhttVhc.getEquipmentmodel());
        }else {
            queryWrapper.isNull("device_model");
        }
        DDeviceType dDeviceType = dDeviceTypeMapper.selectOne(queryWrapper);
        if (Objects.isNull(dDeviceType)) {
            deviceType.setProtocolType(zhttVhc.getTerminalModel());
            if (StringUtils.isNotBlank(zhttVhc.getEquipmentmodel())) {
                deviceType.setDeviceModel(zhttVhc.getEquipmentmodel().trim());
            }
            deviceType.setCommunicationModel(zhttVhc.getCommunicationMode());
            deviceType.setLocationModel(zhttVhc.getPositionMode());
            deviceType.setCreatetime(now);
            deviceType.setUpdateTime(now);

三解决办法:

之前是有发现数据存在空格,当时只是把插入时候去掉了空格,通过查询并插入时,查询没有去空格判断。

解决一是:queryWrapper.eq("device_model", zhttVhc.getEquipmentmodel().trim()); 查询这一行也加入去空格。

解决二是(根本办法):在存入数据时,就去掉所有空格。

相关推荐
小羊没烦恼!2 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里2 天前
java中的继承和多态的区别
java
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕2 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码2 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖2 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时2 天前
01-06-A-JVM排查实战详解
java·jvm
这个DBA有点耶2 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
vipxieliang2 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot
DBA_G2 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库