java 对两张表的数据进行对比
时间: 2024-05-04 07:21:21 浏览: 66
可以使用 JDBC 连接数据库,通过 SQL 语句查询两张表的数据,将结果存储在两个 List 中,然后对比两个 List 中的数据即可。
以下是一个简单的示例代码:
```java
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class TableComparator {
public static void main(String[] args) {
try {
// 连接数据库
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "root";
Connection conn = DriverManager.getConnection(url, username, password);
// 查询表一的数据
String sql1 = "SELECT * FROM table1";
Statement stmt1 = conn.createStatement();
ResultSet rs1 = stmt1.executeQuery(sql1);
List<String> list1 = new ArrayList<>();
while (rs1.next()) {
list1.add(rs1.getString("column1"));
}
// 查询表二的数据
String sql2 = "SELECT * FROM table2";
Statement stmt2 = conn.createStatement();
ResultSet rs2 = stmt2.executeQuery(sql2);
List<String> list2 = new ArrayList<>();
while (rs2.next()) {
list2.add(rs2.getString("column1"));
}
// 对比两个 List 中的数据
for (String s : list1) {
if (!list2.contains(s)) {
System.out.println(s + " only exists in table1");
}
}
for (String s : list2) {
if (!list1.contains(s)) {
System.out.println(s + " only exists in table2");
}
}
// 关闭连接
rs1.close();
stmt1.close();
rs2.close();
stmt2.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
注意,以上代码只是一个简单的示例,实际应用中需要根据具体需求进行修改和优化。
阅读全文