我是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");
有没有任何标准的方法来实现这个
答案 0 :(得分:0)
如果两个表都在不同的MySQL服务器上,您可以使用replication。
否则,如果本地表不在另一个MySQL服务器中,您可能会找到一种方法来模拟Java程序中的MySQL服务器。也就是说,无论如何,使其可用作复制的奴隶。
或者,这应该始终可以在您的Java程序中使用轮询。让线程检查远程表并每隔 n 秒将其与本地同步。当然,这对资源不太温和。并且会有一些延迟,直到更改传播到客户端。