java - JDBC:是否可以在java中执行多数据库查询?

标签 java mysql sql jdbc multi-database

我想使用 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/

相关文章:

java - jxls 从 2.3.0 升级到 2.6.0 后,模板中的 Excel AVERAGE 函数无法正常工作

c++ - 用C++读取二进制数据并写入MySQL

mysql - 数据仓库模式设计——如何改进模式模型

sql - 动态透视 3 列表格

sql - 如何在 SQL Server 中散列表的列?

java - 为什么时钟会闪烁?

java - 无法启动服务 jboss.deployment.unit - StartException

java - 导入数据时在哪里存储文本文件?

mysql - 在查询中使用正则表达式

mysql - 向生产数据库添加索引的过程