如何通过JDBC连接两个数据库?可能吗?

时间:2014-07-11 16:29:09

标签: java jdbc

我尝试在JDBC驱动程序的帮助下将mysql数据库与前端连接起来。但我不知道如何在JDBC驱动程序的帮助下实现连接以将两个不同的数据库相互连接。

2 个答案:

答案 0 :(得分:1)

您可以创建两个连接。一个用于第一个数据库,另一个用于第二个数据库。您可以使用第一个连接将命令发送到第一个数据库,并且可以使用第二个连接将命令发送到第二个数据库。您的应用程序将用于连接两个数据库,因为您可以从一个数据库中选择行,解析它们并将结果记录插入另一个数据库。

答案 1 :(得分:1)

JDBC中没有任何神奇功能可以让您将两个数据库相互连接'。你需要自己编写代码。您创建两个连接,每个数据库对应一个数据库,然后编写查询和转换以将数据从数据库1获取到数据库2。

try (
    Connection connectionToDb1 = DriverManager.getConnection(
        "jdbc:firebirdsql://serverA/database1", "username", "password");
    Connection connectionToDb2 = DriverManager.getConnection(
        "jdbc:firebirdsql://serverB/database2", "username", "password");
    Statement selectFrom1 = connectionToDb1.createStatement();
    ResultSet rsFrom1 = selectFrom1.executeQuery(
        "SELECT columnA, columnB FROM tableX");
    PreparedStatement insertTo2 = connectionToDb2.prepareStatement(
        "INSERT INTO tableY(column1, column2) VALUES (?, ?)");
) {
   while (rsFrom1.next()) {
       insertTo2.setString(1, rsFrom1.getString("columnA"));
       insertTo2.setString(2, rsFrom1.getString("columnB"));
       insertTo2.executeUpdate();
   }
}

请注意,这不是一个完整的示例:出于生产目的,您将禁用自动提交,并使用批量更新。

有些工具可以为您做到这一点,但是工具和库建议在SO上是主题,但我建议您搜索ETL(或提取,转换,加载),或者可能用于数据泵。< / p>