我有一个列表需要与MySQL数据库同步。这是一个示例过程:

我有一个带有元数据的表:

+-------+
| value |
+-------+
| test  |
| val   |
| smtn  |
| foo   |
+-------+


当我的应用程序启动时,所有这些值都从数据库中加载并添加到List中。然后在我的应用程序中的某个位置,将一个新值添加到本地列表中(无需更新数据库)。在其他地方,从列表中(也在本地)删除了随机值。

一段时间后,该应用程序关闭并尝试将列表与数据库同步。此时列表可能看起来像这样:["test", "smtn", "added", "also_added"]。如您所见,已删除了一些值(与初始表值相比),并且添加了一些值。所有值均未更改。仅添加和删除。

现在,要使列表与数据库同步,我可以删除所有行并将更新后的列表插入数据库,但这似乎效率很低。

有一个更好的方法吗?

最佳答案

我知道有两种方法,分别是pushpull

对于push,您将在该表更新时具有数据库触发器,并且可以将更改或所有数据推送到应用程序公开的某个端点。

对于pull,您将在一定间隔或动作下运行您的应用,然后向数据库查询是否有任何更新。

两者都有优点和缺点。

关于java - 将列表与数据库同步的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46747183/

10-14 10:53
查看更多