将嵌入式数据库与远程数据库同步

Synchronize embedded DB with remote DB

目前,我有一个小的 JavaFX 应用程序,可以根据远程 MySQL-Server 上的数据生成报告和统计信息。我使用 EclipseLink 来实现持久化。由于访问是只读的,而且数据并不总是需要最新的,我想我可以通过使用嵌入式数据库 (H2) 来加快速度,该数据库可以在用户愿意的时候同步到远程服务器。问题是,我不知道如何去做。

到目前为止我想到的是执行 mysqldump,转储远程服务器并在本地执行生成的 SQL 脚本。这肯定远非优雅,所以:这个任务是否有专利解决方案?

好吧,50 table 可能有相当多的关系,这可能很棘手...据我所知,没有任何东西可以为您自动执行此操作或类似操作。您很可能必须为此创建自己的逻辑。当我做类似你想做的事情时,我使用了 "last update" 的逻辑,例如,本地数据具有上次与远程同步的时间戳,而远程数据具有上次在那里更新了数据(他自己在 table 上,或者甚至像 One-To-One 那样与之相关)。有了这些数据,每次本地用户输入可能过时的系统部分时,客户端连接到服务器并检查 last update 时间戳是否大于本地同步时间戳,如果是,它会更新完整的对象和关系。我花了一些时间来开发,但最后工作得很好。可能还有其他方法可以做到,但这是我当时找到的方法。希望对您有所帮助。