我正在将旧项目迁移到新服务器。以前该项目使用Oracle DB,但现在我希望它使用Postgress。这些查询非常简单,并且在Postgres中工作相同。
但是,该项目缺少Postgres jdbc驱动程序。我可以以某种方式将此依赖项横向添加到jar中而无需重新编译吗?
答案 0 :(得分:1)
我可以以某种方式将此依赖项添加到jar中而无需重新编译吗?
要视情况而定。
如果您以java -jar myserver.jar ...
的身份运行服务器,则至少 需要修改JAR文件中的清单。严格来说,这不需要重新编译,但是您确实需要爆炸,修改和重新打包JAR文件。
如果服务器使用Class.forName
显式加载Oracle Driver
类,则需要更改该代码以加载Postgres Driver
类。 (还有其他使用JDBC的方法可以避免这种情况,但这取决于旧服务器的实现方式。)
如果您的服务器使用Oracle特定的数据库类或Oracle特定的SQL功能(或者它需要在Postgres世界中执行相同的操作),则将需要进行更广泛的更改。
但是,如果没有详细检查代码库,我们就无法预测所需的内容。
我的建议是将Oracle驱动程序JAR替换为Postgres驱动程序JAR,并查看针对具有适当架构和数据的Postgres数据库运行服务器时会发生什么情况。
但是我不会在生产中这样做。在测试环境中进行操作。如果您无法设置合适的测试环境,那就算了。
如果您没有服务器的源代码,我也会忘记它。如果有任何问题,您很可能需要源代码来找出问题并解决。