在Java中,可以使用JDBC(Java Database Connectivity)來實現跨庫查詢。以下是一個簡單的示例:
```java
import java.sql.*;
public class CrossDatabaseQueryExample {
public static void main(String[] args) {
try {
// 連接第一個數據庫
Connection conn1 = DriverManager.getConnection("jdbc:mysql://localhost:3306/database1", "username", "password");
Statement stmt1 = conn1.createStatement();
// 執行查詢語句
ResultSet rs1 = stmt1.executeQuery("SELECT * FROM table1");
// 連接第二個數據庫
Connection conn2 = DriverManager.getConnection("jdbc:mysql://localhost:3306/database2", "username", "password");
Statement stmt2 = conn2.createStatement();
// 循環遍歷第一個結果集,并執行跨庫查詢
while (rs1.next()) {
String value1 = rs1.getString("column1");
// 執行跨庫查詢
ResultSet rs2 = stmt2.executeQuery("SELECT * FROM table2 WHERE column2 = '" + value1 + "'");
// 處理第二個結果集
while (rs2.next()) {
String value2 = rs2.getString("column2");
System.out.println(value2);
}
// 關閉第二個結果集
rs2.close();
}
// 關閉第一個結果集
rs1.close();
// 關閉連接
stmt1.close();
stmt2.close();
conn1.close();
conn2.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
以上代碼中,首先使用`DriverManager.getConnection()`方法分別連接了兩個數據庫。然后使用`Statement`對象執行查詢語句,并通過`ResultSet`對象獲取查詢結果。在循環遍歷第一個結果集時,可以執行跨庫查詢,將第一個結果集中的值作為條件查詢第二個數據庫的表。最后關閉結果集和連接。
請注意,以上代碼只是一個示例,實際情況可能會有所不同。具體的跨庫查詢方式取決于使用的數據庫類型和具體需求。