如何摆脱已经开发的具有Oracle本机查询的应用程序的数据库依赖性?

时间:2016-04-15 10:45:40

标签: java oracle hibernate saas

我有一个使用Oracle数据库的庞大代码库的应用程序。我想开发一个hibernate应用程序,它可以与来自上述应用程序的传入和传出请求进行交互,而不需要数据库的任何依赖性。

如果我想将数据库更改为mysql或postgresql,那就不会有任何问题。这有用吗?可以吗?寻求帮助。

1 个答案:

答案 0 :(得分:1)

至于实用性,应用程序很少会更改数据库。虽然这个想法听起来很棒,但它并不经常完成,通常使用内置数据库功能可以获得的好处有时会超过保持数据库独立性的工作。

至于它的完成,它肯定可以在SQL数据库之间。从SQL到noSQL更加棘手,因为他们正在JPA中支持它们。如果对此感兴趣,请查看Hibernate OGM。如果您想真正保留它以便您可以轻松切换数据库,则需要遵守JPA标准。有关从数据库生成JPA兼容实体的信息,请参阅this。只要您使用JPA,您就可以轻松地在提供JPA实现的数据库之间切换。然后你只需要包含正确的实现设置方言就可以切换。

如果您有权更改当前应用程序,则可能更容易使用JPA代码更新包含硬编码查询的每个操作。如果你有单元测试,这将使这个过程更容易。

如果您想要写一些新内容,但不要更改前端,则需要处理前端表单提交的任何操作。确保使用相同的路径并使用相同的HTTP方法(GET,POST,PUT等)使它们具有相同的参数,并返回与您今天的操作相同的结构。

这两种方法都允许您通过替换它们的行动来采取行动。如果新的应用程序和旧应用程序都不在同一个域中或者涉及到身份验证/授权,那么在编写新内容时,一次更换一个新内容会有点困难。

祝你好运,祝福!