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

一现象:

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

二根本原因:

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

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 分钟前
Redis哨兵模式搭建
数据库·redis·哨兵
AI人工智能+电脑小能手4 分钟前
【大白话说Java面试题 第49题】【JVM篇】第9题:什么是双亲委派机制?介绍一下运作过程。?
java·开发语言·jvm
码农-阿杰6 分钟前
Java 线程中断机制深度解析:从 API 到底层 C++ 实现
java·开发语言·c++
dinglu1030DL8 分钟前
Go语言怎么格式化时间_Go语言time.Format教程【详解】
jvm·数据库·python
风味蘑菇干8 分钟前
斗地主案例
java·数据结构·算法
环流_11 分钟前
Redis单线程但效率高且快
数据库·redis·缓存
m0_6245785912 分钟前
SQL数据分析如何剔除极端异常值_配合窗口函数检测偏离度
jvm·数据库·python
tkevinjd13 分钟前
MySQL1:分层架构
数据库·mysql·缓存
宠..16 分钟前
VS Code 修改 C++ 标准同时修改错误检测标准
java·linux·开发语言·javascript·c++·python·qt
WL_Aurora17 分钟前
Java Scanner输入陷阱深度解析
java·开发语言