代码之家  ›  专栏  ›  技术社区  ›  Gábor Major

我可以不使用oraclejdbc驱动程序连接到Oracle数据库吗?

  •  0
  • Gábor Major  · 技术社区  · 6 年前

    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驱动程序。有我不知道的开源替代方案吗?

    0 回复  |  直到 6 年前
        1
  •  1
  •   rainerfrey    6 年前

    据我所知,没有开源替代方案,也没有Oracle的帮助,因为据我所知,协议没有公开指定。我们解决了一个类似的问题,让拥有Oracle许可证的客户将驱动程序添加到我们应用程序的部署中,这样我们就不会重新分发它,而是让他们使用它。

        2
  •  1
  •   thatjeffsmith    6 年前

    是的,用别人的司机。 Progress

    我不是代表甲骨文就这个驱动程序的质量或法律条款,你决定不使用我们的驱动程序。但是,我们的Java应用程序驱动程序还有其他选择,这就是其中之一。