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

一现象:

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

二根本原因:

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

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

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

相关推荐
卓怡学长8 分钟前
w176基于SpringBoot的医院管理系统
java·spring boot·spring·maven·intellij-idea
lemon_sjdk9 分钟前
ObjectProperty
java·开发语言·算法
大模型码小白14 分钟前
Spring AI Tool 实现自然语言操作 MySQL 数据库详解
服务器·开发语言·数据库·人工智能·python·mysql·spring
hh95019 分钟前
Agent Plan x DeepSeek Harness:Agent 供应链安全与第三方插件审计
java·开发语言·安全·agent plan·adg成都社区·adg社区
吴声子夜歌26 分钟前
Java面试——HBase原理及应用
java·面试·hbase
浪兎兎31 分钟前
【Java Web】Servlet + JSP 笔记
java·前端·servlet
吴声子夜歌1 小时前
Java面试——ElasticSearch原理及应用
java·面试·es
lhldsg1 小时前
家政派单系统开发实战:从需求分析到智能调度全流程指南
java·junit·小程序·uni-app·需求分析
吴声子夜歌1 小时前
Java面试——Spring原理及应用(一)
java·spring·面试
灰阳阳1 小时前
Docker-数据卷命令解析
java·docker·eureka