比较两个表并更新第二个表

gmxoilav  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(324)

我是java新手,我正在处理两个表一个表在服务器端,另一个表在客户端。我想要的是,当服务器数据库中有任何更新时,它应该反映在客户端数据库中,当服务器中找不到客户端数据时,它应该被删除。在下面的代码中,我获取两个表数据。
服务器表1

ID     |   NAME
  1      |   ABC
  2      |   ABC
  4      |   ABC
  5      |   ABC

本地表2

ID     |   NAME
  1      |   ABC
  2      |   ABC
  3      |   ABC
  4      |   ABC

本地表的预期结果

ID     |   NAME
  1      |   ABC
  2      |   ABC
  4      |   ABC
  5      |   ABC

这是我的密码

// LOCAL DATA
ResultSet local_data = stmth2.executeQuery("SELECT * FROM emoticon");
local_data.next();

//SERVER DATA
Class.forName("com.mysql.jdbc.Driver");
Connection con9 = DriverManager.getConnection("jdbc:mysql://localhost:3306/mood","root","");
Statement stmt9 = con9.createStatement();
ResultSet server_data = stmt9.executeQuery("SELECT * FROM emo");

有没有标准的方法来实现这一点

wvt8vs2t

wvt8vs2t1#

如果两个表位于不同的mysql服务器上,则可以使用复制。
否则,如果本地表不在另一个mysql服务器中,您可能会在java程序中找到一种模仿mysql服务器的方法。也就是说,无论如何都要使其可用作复制的从机。
或者,这在java程序中应该始终是可能的,使用轮询。让一个线程检查远程表并每n秒将其与本地表同步一次。当然,这并不是太温和的资源。并且在将更改传播到客户端之前会有一个延迟。

相关问题