java代码获取两个数据库中的表的数据并进行对比,假设a表是新数据,b表是旧数据,将a表对比b表,如果a表数据多余b表数据,则将a表的多余b表的数据添加至b表
时间: 2023-03-28 16:03:43 浏览: 124
可以使用Java中的JDBC连接两个数据库,分别查询a表和b表的数据,将它们存储在两个List中,然后使用循环遍历a表的数据,判断是否在b表中存在,如果不存在,则将该数据添加至b表中。最后更新b表中的数据即可。具体实现可以参考以下代码:
```
// 连接数据库1
Connection conn1 = DriverManager.getConnection(url1, user1, password1);
// 连接数据库2
Connection conn2 = DriverManager.getConnection(url2, user2, password2);
// 查询a表的数据
List<String> list1 = new ArrayList<>();
Statement stmt1 = conn1.createStatement();
ResultSet rs1 = stmt1.executeQuery("SELECT * FROM a");
while (rs1.next()) {
list1.add(rs1.getString("data"));
}
// 查询b表的数据
List<String> list2 = new ArrayList<>();
Statement stmt2 = conn2.createStatement();
ResultSet rs2 = stmt2.executeQuery("SELECT * FROM b");
while (rs2.next()) {
list2.add(rs2.getString("data"));
}
// 对比a表和b表的数据
for (String data : list1) {
if (!list2.contains(data)) {
// 将a表的多余b表的数据添加至b表
PreparedStatement pstmt = conn2.prepareStatement("INSERT INTO b (data) VALUES (?)");
pstmt.setString(1, data);
pstmt.executeUpdate();
}
}
// 关闭连接
rs1.close();
stmt1.close();
conn1.close();
rs2.close();
stmt2.close();
conn2.close();
```
阅读全文