0

我想使用 java 对 2 个数据库执行 sql 查询

但是在不自己编写所有内容的情况下找出如何做到这一点有一些问题

也许有人知道如何做到这一点。

例子:

数据库1
table1(names): id,Name,zip,something

数据库2
表 2(城镇):id、城镇名称、zip
SELECT * 
FROM database1.names, database2.towns
WHERE database1.names.zip = database2.towns.zip

当我使用 phpMyAdmin 并且用户对两个数据库都具有权限时,该示例在 mysql 中有效

编辑:

问题是:我如何让 Java 执行这样的查询,因为我只能连接到一个数据库(?)或者:我如何连接到 2 个执行 Sql Query 的数据库,该 Sql Query 使用两个数据库中的表,使用 java。

我在 java 中执行 sql 命令的方式如下:

Connection c = DriverManager.getConnection("jdbc:mysql://localhost/database?user=root&password=");
PreparedStatement pstmt = c.prepareStatement("Select * from something");
pstmt.executeQuery();

但我不能用它来获取使用来自 2 个数据库的表的 Sql 查询?

4

1 回答 1

0

假设这些数据库在同一数据源中不可见,您必须使用中介软件来查询它们,例如http://www.unityjdbc.com/doc/multiple/multiplequery.php

这不是一个小问题,因为您的“SQL”将不得不处理每个数据源的可用性和事务。

一些 DB 供应商提供了某种 dblink(例如http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm),可以帮助您处理异构 DB。

因此,如果您将问题缩小到您感兴趣的 DBMS,那就太好了。

于 2014-02-23T13:40:19.057 回答