连接多个数据库中的表

时间:2018-06-07 04:11:25

标签: java oracle jdbc jdbctemplate

我有一个遗留的Web应用程序,WAR包装。

在DAO文件中使用硬编码的sql字符串编写。它连接到oracle db的多个模式。

select ... from schema1.one_table join schema2.other_table on...

我必须实现的是在不同的数据库中使用模式。

我被建议自动装载两个jdbcTemplates并从中查询数据,然后在java中执行加入过滤逻辑。

我觉得这是一个糟糕的解决方案,原因有几个。我不想在java中实现加入过滤,我相信oracle引擎可以提高效率百倍。

如何重写查询以不仅指定架构而且还指定db实例?这可能吗?

1 个答案:

答案 0 :(得分:2)

我认为这不能直接用JDBC完成。你可以像我在我的一个项目中那样遵循以下步骤:

  • 在DBA的帮助下在数据库之间创建dblink。
  • 在主数据库中创建远程数据库表的同义词。

这样,您可以直接从一个数据库访问远程表,然后可以使用任何普通的JDBC / JDBCTemplate / Hibernate等来运行您的业务。