java 如何实现两个数据库的两个表关联查询 并给出代码示例
时间: 2024-01-16 07:04:26 浏览: 154
以下是一个简单的Java代码示例,演示了如何对两个数据库的两个表进行关联查询:
```java
import java.sql.*;
public class DatabaseJoinQueryExample {
public static void main(String[] args) {
Connection conn1 = null;
Connection conn2 = null;
Statement stmt1 = null;
Statement stmt2 = null;
ResultSet rs1 = null;
ResultSet rs2 = null;
try {
// 连接数据库1
String url1 = "jdbc:mysql://localhost:3306/db1";
String user1 = "root";
String password1 = "123456";
conn1 = DriverManager.getConnection(url1, user1, password1);
stmt1 = conn1.createStatement();
// 连接数据库2
String url2 = "jdbc:mysql://localhost:3306/db2";
String user2 = "root";
String password2 = "123456";
conn2 = DriverManager.getConnection(url2, user2, password2);
stmt2 = conn2.createStatement();
// 执行关联查询
String sql = "SELECT t1.field1, t2.field2 FROM db1.table1 t1 JOIN db2.table2 t2 ON t1.id = t2.id";
rs1 = stmt1.executeQuery(sql);
// 处理查询结果
while (rs1.next()) {
String field1 = rs1.getString("field1");
String field2 = rs1.getString("field2");
System.out.println(field1 + "\t" + field2);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭数据库连接
try {
if (rs1 != null) {
rs1.close();
}
if (rs2 != null) {
rs2.close();
}
if (stmt1 != null) {
stmt1.close();
}
if (stmt2 != null) {
stmt2.close();
}
if (conn1 != null) {
conn1.close();
}
if (conn2 != null) {
conn2.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
需要注意的是,以上代码仅供参考,实际应用中需要根据具体情况进行调整。同时,为了提高代码的可读性和可维护性,建议将连接数据库和关闭数据库连接的代码分别封装成方法。
阅读全文