java如何从不同数据源查询数据并整合
时间: 2024-02-02 13:02:58 浏览: 20
Java可以通过使用JDBC连接不同的数据源,如MySQL、Oracle、SQL Server等,然后从这些不同的数据源中查询数据,并使用Java代码将这些数据整合起来。
具体步骤如下:
1. 导入JDBC相关的jar包,比如mysql-connector-java.jar。
2. 使用JDBC连接各个数据源,获取Connection对象。
3. 使用Connection对象创建Statement对象,并执行SQL查询语句,获取ResultSet对象。
4. 通过ResultSet对象遍历查询结果,将数据存入Java对象中。
5. 将Java对象整合起来,可以使用List等集合类型。
以下是一个示例代码,演示如何从MySQL和Oracle中查询数据并整合:
```
// 导入JDBC相关的包和类
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
// MySQL数据库连接信息
String mysqlUrl = "jdbc:mysql://localhost:3306/test";
String mysqlUser = "root";
String mysqlPassword = "123456";
// Oracle数据库连接信息
String oracleUrl = "jdbc:oracle:thin:@localhost:1521:orcl";
String oracleUser = "scott";
String oraclePassword = "tiger";
// 从MySQL中查询数据
List<User> mysqlUsers = new ArrayList<>();
try (Connection conn = DriverManager.getConnection(mysqlUrl, mysqlUser, mysqlPassword);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM user")) {
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setAge(rs.getInt("age"));
mysqlUsers.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}
// 从Oracle中查询数据
List<User> oracleUsers = new ArrayList<>();
try (Connection conn = DriverManager.getConnection(oracleUrl, oracleUser, oraclePassword);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM user")) {
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setAge(rs.getInt("age"));
oracleUsers.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}
// 将MySQL和Oracle中的数据整合起来
List<User> allUsers = new ArrayList<>();
allUsers.addAll(mysqlUsers);
allUsers.addAll(oracleUsers);
// 输出整合后的数据
for (User user : allUsers) {
System.out.println(user);
}
}
}
// 定义一个User类,用于存储查询结果
class User {
private int id;
private String name;
private int age;
// 省略getter和setter方法
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
```
在以上示例代码中,我们先定义了一个User类,用于存储查询结果。然后分别从MySQL和Oracle中查询数据,将结果存入List集合中,最后将MySQL和Oracle中的数据整合起来。