java 两个不同库的表关联实例
时间: 2024-01-08 11:03:44 浏览: 128
在Java中,实现两个不同库的表关联,需要使用JDBC连接到数据库,并使用SQL语句进行关联查询。下面是一个简单的示例,假设有两个数据库DB1和DB2,每个数据库中有一张表,DB1中的表名为table1,包含两个字段id和name,DB2中的表名为table2,包含两个字段id和age。
```
import java.sql.*;
public class Test {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 加载JDBC驱动
Class.forName("com.mysql.jdbc.Driver");
// 连接数据库DB1
Connection conn1 = DriverManager.getConnection("jdbc:mysql://localhost:3306/DB1", "root", "password1");
// 连接数据库DB2
Connection conn2 = DriverManager.getConnection("jdbc:mysql://localhost:3306/DB2", "root", "password2");
// 执行关联查询
Statement stmt = conn1.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM table1 t1 JOIN DB2.table2 t2 ON t1.id = t2.id");
// 输出查询结果
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println("id: " + id + ", name: " + name + ", age: " + age);
}
// 关闭所有连接
rs.close();
stmt.close();
conn1.close();
conn2.close();
}
}
```
上述代码中,我们首先使用Class.forName()方法加载了MySQL的JDBC驱动,然后分别通过DriverManager.getConnection()方法连接到了DB1和DB2数据库。接着使用Statement对象执行了一条关联查询语句,并获取查询结果。最后,通过ResultSet对象遍历查询结果并输出。最后别忘了关闭所有连接。需要注意的是,查询语句中的DB2.table2表示DB2数据库中的table2表,这样就可以实现跨库查询。
阅读全文