如何在我的Java项目中实现UnityJDBC?

时间:2013-05-13 12:25:30

标签: java database

我正在开发一个项目,它的全部内容都是从不同供应商的多个数据库中查询数据(我的意思是使用一个查询语句同时查询mysql,hsqldb,microsoft sql,oracle等数据库)。 虽然我通过顺序加载数据库连接器的每个驱动程序并在数据库中按顺序执行查询来实现此目的。但是项目架构是这样的,当我发送一个查询语句时,它应该同时到每个数据库并检索所涉及的所有数据库中的项目。 我遇到了这个unityjdbc软件,一个中介软件,但不知道如何在我的java源文件中实现它,以实现我的目标。我已阅读了unityjdbc用户手册,但不清楚直截了当。 请任何人都可以建议如何在我的java应用程序中实现这个unityjdbc驱动程序,并使用它来成功查询多个数据库。 对于使用单个语句同时查询其多个数据库的任何其他方式的建议也是受欢迎的。

2 个答案:

答案 0 :(得分:2)

UnityJDBC允许您在一个SQL查询中查询多个数据库。您不能使用单独的线程执行此操作,因为您将负责在Java程序中自己合并来自多个数据库的数据。

设置步骤很简单:

  1. 使用SourceBuilder应用程序指定数据库的JDBC连接信息。

  2. 测试访问多个数据库的示例查询。支持标准SQL。要在不同数据库中引用表,请在FROM子句中使用 databaseName.tableName 例如:

    SELECT * FROM Database1.Table1 T1 INNER JOIN Database2.Table2 T2 ON T1.id = T2.id

  3. SourceBuilder应用程序将提供XML配置文件作为输出,通常称为sources.xml。要在您自己的Java程序或任何支持JDBC的软件中使用它,连接URL为:jdbc:unity://sources.xml您可以指定sources.xml文件的绝对路径或相对路径。

  4. 他们的网站上有http://www.unityjdbc.com/support/的文档或与他们联系以获得免费支持。

    快速入门的另一种方法是使用开源查询软件SQuirreL SQL附带的MultiSource SQL Plugin。该插件允许您使用SQuirreL中的SQL查询任意数量的数据库,并将生成XML配置文件供您在其他程序中使用。该插件是开源和免费的。该插件还支持使用MySQL和Postgres等关系数据库查询和加入像MongoDB这样的NoSQL数据库。

答案 1 :(得分:1)

如果您已经设法加载所有特定于数据库的JDBC驱动程序,那么您不需要UnityJDBC来实现您的目标。

相反,您应该在单独的线程中查看每个查询。这样,在查询下一个数据库之前,您无需等待一个数据库返回其结果。