我有一个列表需要与MySQL数据库同步。这是一个示例过程:
我有一个带有元数据的表:
+-------+
| value |
+-------+
| test |
| val |
| smtn |
| foo |
+-------+
当我的应用程序启动时,所有这些值都从数据库中加载并添加到
List
中。然后在我的应用程序中的某个位置,将一个新值添加到本地列表中(无需更新数据库)。在其他地方,从列表中(也在本地)删除了随机值。一段时间后,该应用程序关闭并尝试将列表与数据库同步。此时列表可能看起来像这样:
["test", "smtn", "added", "also_added"]
。如您所见,已删除了一些值(与初始表值相比),并且添加了一些值。所有值均未更改。仅添加和删除。现在,要使列表与数据库同步,我可以删除所有行并将更新后的列表插入数据库,但这似乎效率很低。
有一个更好的方法吗?
最佳答案
我知道有两种方法,分别是push
和pull
。
对于push
,您将在该表更新时具有数据库触发器,并且可以将更改或所有数据推送到应用程序公开的某个端点。
对于pull
,您将在一定间隔或动作下运行您的应用,然后向数据库查询是否有任何更新。
两者都有优点和缺点。
关于java - 将列表与数据库同步的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46747183/