java - 如何在 H2 数据库中模拟 Oracle DB 链接?
问题描述
我的问题如下:我必须测试一个用 Java Spring 编写的应用程序。在现实生活中,数据库服务器将是一个 Oracle。有一些选择使用 DB 链接。(例如: select * from country@isem_db; )在测试环境中,我们使用不知道这种语法的 H2 数据库。(@)
我的问题是:这是否有可能使这种 Oracle 语法为 H2 所接受?在不修改原始源代码的情况下是否存在一些解决方法?
解决方案
您的 Oracle 代码不应包含嵌入式数据库链接。数据库链接名称可能会因环境而异,这会使您的代码变得脆弱。或者您可能需要切换到使用本地副本(或物化视图)。
正确的做法是使用同义词。在 Oracle 中,您将为远程表创建同义词:
create synonym isem_country for country@isem_db;
显然,您需要更改 Oracle 代码以引用同义词名称而不是远程表。
这为您提供了在 H2 中运行的解决方案,前提是您使用的是支持表同义词的最新版本。在 H2 中,您将创建一个同名但在本地表上的同义词:
create synonym isem_country for country;
推荐阅读
- ruby-on-rails - Ruby on rails 5 根据相关表格数量显示所有结果
- google-glass - 如何将取景器添加到谷歌眼镜应用程序
- docker - 如何让我的机器恢复到集群管理器状态?
- razor - 从 ASP.Net MVC 5 中的 Html.Dropdown onchange 事件调用操作
- git - 当远程分支在 Git 中重命名时,如何更新我的本地引用?
- keras - 使用 Keras 使用 tf.Dataset API
- javascript - 如何在角度 4 中创建自定义 .hasError 条件
- python - Python函数在第二次迭代后不会为变量赋值
- ms-access - MS Access VBA:将多个对象添加到集合中
- amazon-web-services - 如何使用 Boto3 Python 更新 IAM 策略