我是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");
有没有标准的方法来实现这一点
1条答案
按热度按时间wvt8vs2t1#
如果两个表位于不同的mysql服务器上,则可以使用复制。
否则,如果本地表不在另一个mysql服务器中,您可能会在java程序中找到一种模仿mysql服务器的方法。也就是说,无论如何都要使其可用作复制的从机。
或者,这在java程序中应该始终是可能的,使用轮询。让一个线程检查远程表并每n秒将其与本地表同步一次。当然,这并不是太温和的资源。并且在将更改传播到客户端之前会有一个延迟。