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

司徒春运 发布于 2011/07/31 10:21
阅读 2K+
收藏 0

假设现在有两个定期抓取的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文件,提取每条记录时,如何先和数据库的存有的记录做比较,若数据存在同样的数据,则该记录不插入。否则,将新记录插入到数据库中?

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

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

0
Andre.Z
Andre.Z

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

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

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

0
司徒春运
司徒春运
感谢各位的指导意见!
返回顶部
顶部