java对比两个数据库的表数据是否一样
时间: 2023-08-08 13:09:40 浏览: 98
java比较两个mysql数据库中的表信息差异
5星 · 资源好评率100%
在Java中,可以通过以下步骤来对比两个数据库的表数据是否一样:
1.连接两个数据库,获取两个数据库的连接对象。
2.使用SELECT语句从两个数据库的表中分别获取数据,并将数据存储到两个List对象中。
3.使用Collection的equals()方法对比两个List对象是否相等,如果相等则说明两个数据库的表数据一样,否则说明不一样。
以下是一个简单的示例代码:
```
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class CompareTableData {
public static void main(String[] args) {
String url1 = "jdbc:mysql://localhost:3306/db1";
String url2 = "jdbc:mysql://localhost:3306/db2";
String user = "root";
String password = "123456";
try (Connection conn1 = DriverManager.getConnection(url1, user, password);
Connection conn2 = DriverManager.getConnection(url2, user, password)) {
List<String> data1 = new ArrayList<>();
List<String> data2 = new ArrayList<>();
// 获取表1的数据
try (Statement stmt1 = conn1.createStatement();
ResultSet rs1 = stmt1.executeQuery("SELECT * FROM table1")) {
while (rs1.next()) {
data1.add(rs1.getString("column1") + rs1.getString("column2"));
}
}
// 获取表2的数据
try (Statement stmt2 = conn2.createStatement();
ResultSet rs2 = stmt2.executeQuery("SELECT * FROM table2")) {
while (rs2.next()) {
data2.add(rs2.getString("column1") + rs2.getString("column2"));
}
}
// 对比两个List对象是否相等
if (data1.equals(data2)) {
System.out.println("两个数据库的表数据一样");
} else {
System.out.println("两个数据库的表数据不一样");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
注意:以上示例代码仅供参考,实际应用中需要进行适当的修改和优化。
阅读全文