Java读取两个文件时识别文件中的相同内容:报错 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Java读取两个文件时识别文件中的相同内容:报错

2020-06-07 16:32:20 354 1

假设现在有两个定期抓取的file1.xml和file2.xml文件,每个文件都包含50条记录,两个文件区别在于它们的创建时间不同,file2.xml文件是在file1.xml创建后一小时才新生成的,file2.xml中还是50条记录,但相对于file1.xml,file2.xml更新了第一条记录,剩下的49条还是旧的的记录。

我想读取这两个文件,提取其中的内容,然后将内容插入到mysql中。

现在我遇到的问题是读取file1.xml文件时,提取50条记录,插入到数据库。当读取file2.xml时,提取的50条记录,只有1条是新获取的内容,剩下的49条还是旧的。

请问我该怎么处理,如何识别相同的记录,每次读取xml文件时只插入新的记录到数据库中?Java如何实现?

问题就是,在java读取xml文件,提取每条记录时,如何先和数据库的存有的记录做比较,若数据存在同样的数据,则该记录不插入。否则,将新记录插入到数据库中?

取消 提交回答
全部回答(1)
  • kun坤
    2020-06-07 16:32:25

    如果是我来做这个功能的话,可能会考虑使用时间来区分不同的记录。即,每条记录有一个时间的项,精确到不会出现两条记录时间相同的精度。这样,通过判断时间,就可以区分两条记录是否相同,以及新旧了。同样的,插入数据库的时候,也插入这个时间。再更新前,先查询一下有没有时间相同的,就知道有没有同样的记录被录入过了。######

    既然知道两个文件的先后生成顺序,而且知道后一个文件只更新了一条数据,那可以将file1的数据放入一个临时表中,然后一小时后的file2的数据只与这50条临时表数据做比对,这样效率会高些,比对后插入临时表,然后定时将临时表导入正式表,并同时清空临时表,用于下次使用

    ######

    file1.xml是前面生成的,那么可以认为里面的记录都入库了。

    file2.xml获取后,分析节点,和file1.xml比较,获取file1.xml中不存在的,入库。

    将file2.xml重命名为file1.xml。
    不就行了啊。

    ######感谢各位的指导意见!
    0 0
相关问答

1

回答

在java中int转String的性能最优的方法是什么?

2021-11-06 20:32:59 176浏览量 回答数 1

0

回答

请问在java中int转String的性能最优的方法是什么?

2021-11-07 00:18:07 120浏览量 回答数 0

1

回答

将java字节数组中的元素数据合并为一个对象,有没有性能更快的方法?

2021-11-06 16:56:01 134浏览量 回答数 1

1

回答

将java二进制数据转换为长整型数据,有没有性能更快的方法?

2021-11-06 16:55:55 169浏览量 回答数 1

1

回答

将java中的二进制数据转换为整数性能最优的做法是什么?

2021-11-06 16:54:47 144浏览量 回答数 1

1

回答

将java二进制数据转换为双精度Double,有没有性能更快的方法?

2021-11-06 16:54:45 156浏览量 回答数 1

1

回答

将java二进制数据转换为布尔值,有没有性能更快的方法?

2021-11-06 16:53:37 156浏览量 回答数 1

1

回答

将java数组转换为Vector对象性能最优的做法是什么?

2021-11-06 16:53:34 114浏览量 回答数 1

1

回答

在java应用程序中执行去重查询数据库表时性能非常慢,该如何优化呢?

2021-11-06 10:04:16 186浏览量 回答数 1

1

回答

在java应用程序中执行查询数据库表中重复数据时性能非常慢,该如何优化呢?

2021-11-06 10:05:42 166浏览量 回答数 1
+关注
0
文章
13395
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载