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

一现象:

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

二根本原因:

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

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()); 查询这一行也加入去空格。

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

相关推荐
天天摸鱼的java工程师2 分钟前
@Autowired 注入失效?
java·后端
sss191s5 分钟前
校招 Java 面试基础题目解析学习指南含新技术实操要点
java·python·面试
编程毕设9 分钟前
【含文档+PPT+源码】基于微信小程序的旅游论坛系统的设计与实现
java·tomcat·旅游
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ11 分钟前
saveOrUpdate 有个缺点,不会把值赋值为null,解决办法
java·开发语言
weixin_4708802613 分钟前
MySQL体系架构解析(二):MySQL目录与启动配置全解析
数据库·mysql·面试·mysql体系架构·mysql bin目录
bytebeats18 分钟前
Java 21 虚拟线程 - 兄嘚, 我的锁呢?
java
随缘而动,随遇而安22 分钟前
第七十四篇 高并发场景下的Java并发容器:用生活案例讲透技术原理
java·大数据·后端
weixin_436525071 小时前
Spring Boot 实现流式响应(兼容 2.7.x)
java·spring boot·后端
英英_1 小时前
MySQL 日志数据同步的详细教程
数据库·mysql
源码超级联盟1 小时前
分享一个空指针的bug
java·后端