在生产中向遗留项目添加缺少的驱动程序

问题描述 投票:0回答:1

我正在将旧项目迁移到新服务器。以前该项目使用的是Oracle DB,但现在我希望它使用Postgress。查询很简单,在Postgres中也一样。

但是该项目缺少一个Postgres jdbc驱动程序。我可以以某种方式将这种依赖性横向添加到jar而不重新编译吗?

java deployment runtime
1个回答
1
投票

我可以以某种方式将此依赖项添加到jar而无需重新编译吗?

这取决于。

  • 如果您将服务器作为java -jar myserver.jar ...运行,那么您至少需要修改JAR文件中的清单。严格来说,这不需要重新编译,但您需要爆炸,修改和重新打包JAR文件。
  • 如果服务器使用Class.forName显式加载Oracle Driver类,那么您需要更改该代码以加载Postgres Driver类。 (还有其他方法可以使用JDBC来避免这种情况,但这取决于您的旧服务器的实现方式。)
  • 如果您的服务器使用Oracle特定的数据库类或Oracle特定的SQL功能(或者它需要在Postgres世界中执行相同的操作),那么将需要进行更广泛的更改。

但是,如果没有详细检查您的代码库,我们无法预测需要什么。

我的建议是用Postgres驱动程序JAR替换Oracle驱动程序JAR,看看当你使用适当的模式和数据对Postgres数据库运行服务器时会发生什么。

但我不会“在生产中”这样做。在测试环境中进行。如果您无法设置合适的测试环境......请忘记它。

如果你没有服务器的源代码,我也会忘记它。如果出现任何问题,您很可能需要源代码来找出问题并修复它。

© www.soinside.com 2019 - 2024. All rights reserved.