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

它是在DAO文件中用硬编码的sql字符串编写的。它连接到一个oracle数据库的多个模式。

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


我要实现的是使这与单独数据库中的模式一起使用。

建议我自动连接两个jdbcTemplates并从中查询数据,然后在Java中执行联接过滤逻辑。

我闻到这是一个不好的解决方案,原因有几个。我不想在Java中实现联接过滤,我敢肯定oracle引擎可以将其效率提高100倍。

如何重写查询以不仅指定架构,还指定数据库实例?这可能吗?

最佳答案

我认为这不能直接使用JDBC完成。您可以像在一个项​​目中一样执行以下步骤:


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


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

08-18 12:58
查看更多