我有一个旧的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等运行您的业务。