我想使用 java 对 2 个数据库执行 sql 查询
但是在不自己编写所有内容的情况下找出如何做到这一点时遇到一些问题
也许有人知道如何做到这一点。
示例:
database1 table1(names): id,Name,zip,something database2 table2(towns): id,townname,zip
SELECT *
FROM database1.names, database2.towns
WHERE database1.names.zip = database2.towns.zip
当我使用 phpMyAdmin 并且用户对两个数据库都有权限时,该示例在 mysql 中运行
编辑:
问题是:由于我只能连接到一个数据库,因此如何让 Java 执行这样的查询(?) 或者:如何使用 java 连接到 2 个数据库,执行使用两个数据库中的表的 Sql 查询。
我在java中执行sql命令的方式如下:
Connection c = DriverManager.getConnection("jdbc:mysql://localhost/database?user=root&password=");
PreparedStatement pstmt = c.prepareStatement("Select * from something");
pstmt.executeQuery();
但我无法使用它来获取使用 2 个数据库中的表的 Sql 查询?
最佳答案
假设这些数据库在同一个数据源中不可见,则必须使用中介软件来查询它们,例如 http://www.unityjdbc.com/doc/multiple/multiplequery.php .
这不是一个小问题,因为您的“SQL”必须处理每个数据源可用性和事务。
一些数据库供应商提供某种数据库链接(例如 http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm ),可以帮助您处理异构数据库。
因此,如果您将问题范围缩小到您感兴趣的 DBMS,那就太好了。
关于java - JDBC:是否可以在java中执行多数据库查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21968834/