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

一现象:

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

二根本原因:

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

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

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

相关推荐
带刺的坐椅4 小时前
别再把 Coding Agent 当智能补全了:SolonCode 想做的是数字员工
java·solon·codex·claudecode·opencode·soloncode
大模型码小白4 小时前
在 Windows 下 Codex 安装、配置与使用详细指南
java·人工智能·windows
Gauss松鼠会5 小时前
【GaussDB】GaussDB锁阻塞源头查询
java·开发语言·前端·数据库·算法·gaussdb·经验总结
2601_965798475 小时前
How to Build a Custom Artisan Store on WordPress: Crafti Theme Review
linux·服务器·数据库
mingo_敏5 小时前
DeepAgents : 后端(Backends)
java·开发语言
霸道流氓气质5 小时前
SpringBoot中事务内同步处理 + 事务后异步调用外部系统的通用模式示例
java·spring boot·后端
霸道流氓气质5 小时前
Spring 事务传播机制与 REQUIRES_NEW
java·数据库·spring
BerryS3N5 小时前
Java 后端转型大模型:Demo 能跑不等于能上线
java·人工智能·python·java后端·spring ai·langchain4j·大模型转型
心机之蛙qee5 小时前
Docker Compose 多容器编排
java·docker·容器
YOU OU5 小时前
Redis分布式锁
数据库·redis·分布式