对不起,这个问题可能听起来很傻,但我需要一些帮助!
我的项目是打开一个目录并列出所有文件。这些是csv文件。打开每个文件,并将其内容加载到mysql数据库的表中。
因此,我已经完成了上面的步骤,并且我的java代码运行得很好。例如,我在目录中有3个文件。当我运行项目时,3个文件中每个文件中的值都加载到mysql表中。
但是当我再次运行程序并使用Select语句检查数据库时,它显示了重复的数据,因此加载了6个文件的值。当我再次运行它时,数据库显示了9个文件。但我不希望再次添加这些文件。
所以谁能告诉我如何在不需要从目录中删除已经添加的文件的情况下实现这一点。
提前感谢
发布于 2011-04-13 15:45:42
在数据库和物理文件中具有唯一的文件标识符。
检查是否存在跳过或执行数据库操作
发布于 2011-04-13 15:44:57
简单的方法:向数据库添加另一个表,以记录已经处理的那些文件的名称。
然后,在将新文件的内容写入数据库之前:如果文件名已在列表中,请先检查此表。
替代方法:记录最后一次“运行”的时间戳,对于所有运行,跳过那些“较旧”的文件。
但不管怎样,你必须持久化某种标记,因为你需要记住你到目前为止所做的事情。
发布于 2011-04-13 15:47:17
向表中添加另一列,该列是您正在读取的文件的文件名。因此总共有2列,1列表示文件名,1列表示文件数据。
在插入之前,如果该文件名已被读取和插入,请使用SELECT语句进行检查。
https://stackoverflow.com/questions/5645938
复制相似问题