我想使用java
在2个数据库上执行sql-query但是在没有自己写一切的情况下找到如何做的一些问题
也许有人知道该怎么做。
示例:
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执行这样的查询,因为我只能连接到一个数据库(?) 或者:如何连接到2个执行使用java的两个数据库中的表的Sql Query的数据库。
我在java中执行sql命令的方式如下:
Connection c = DriverManager.getConnection("jdbc:mysql://localhost/database?user=root&password=");
PreparedStatement pstmt = c.prepareStatement("Select * from something");
pstmt.executeQuery();
但是我不能用它来获得一个使用来自2个数据库的表的SQL查询?
答案 0 :(得分:0)
假设这些数据库在同一数据源中不可见,您必须使用中介软件对其进行查询,例如http://www.unityjdbc.com/doc/multiple/multiplequery.php。
这不是一个小问题,因为您的“SQL”必须处理每个数据源的可用性和事务。
某些数据库供应商提供某种dblink(例如http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm),可以帮助您处理异构数据库。
如果您将问题缩小到您感兴趣的DBMS,那将会很好。