TL;DR:
我们有一个现有的Spring引导应用程序,它使用OJDBC驱动程序连接到oracle11c数据库实例。springboot在内部使用JdbcTemplate执行一些插入和选择,基本上是5或6种类型的语句。从技术上讲,它运行良好。
然而,我们正处于一个有趣的情况,我们构建的代码必须通过一系列检查(我们作为一家大型国际公司的分包商工作),这些检查的一部分是许可证检查。黑鸭子(
https://www.blackducksoftware.com
)用于报告解决方案中链接的每个库(在本例中约为280个),我们必须手动向每个库添加版权声明(例如:“copyright 2005-2019 the Apache Software Foundation”)。保留所有权利。”)。我们在Oracle驱动程序中添加了Oracle技术网络许可证,但被国际公司的法律团队拒绝:
“除非我们实际获得使用Oracle数据库的许可(您没有),否则我们不能允许使用和分发Oracle JDBC驱动程序。这些驱动程序是根据Oracle技术网络许可证获得许可的,XXX[公司名称]有义务指定Oracle为第三方受益人,这是我们的法律部门不允许的。因此,您必须找到一个在“开放源码”下获得许可的兼容替代品。”
现在,我们显然正在尝试绕过这个问题(因为接收解决方案的最终客户机安装了一个许可的Oracle DB,我们可以在公司的Nexus存储库中看到OJDBC驱动程序的早期版本),但是我想问,有没有一种方法可以通过JDBC连接到Oracle DB而不使用Oracle JDBC驱动程序?或任何其他方式(如休眠)?据我所知,oracledb通信协议不是完全标准的,这就是为什么您需要Oracle驱动程序。有我不知道的开源替代方案吗?