oracle - 我可以在没有 Oracle JDBC 驱动程序的情况下连接到 Oracle 数据库吗?
问题描述
TL;博士:
有没有办法在没有 Oracle JDBC 驱动程序的情况下通过 JDBC 连接到 Oracle DB?或任何其他方式(例如休眠)?
全文:
我们有一个现有的 Spring Boot 应用程序,它使用 OJDBC 驱动程序连接到一个 Oracle 11c 数据库实例。Spring Boot 内部使用 JdbcTemplate 来执行一些插入和选择,基本上是 5 或 6 种语句。从技术上讲,它工作正常。
然而我们处于一个有趣的情况,我们构建的代码必须通过一系列检查(我们作为一家更大的国际公司的分包商工作),其中一部分检查是许可证检查。BlackDuck ( https://www.blackducksoftware.com ) 用于报告解决方案中链接的每个库(在我们的例子中大约 280 个),我们必须手动为每个库添加版权声明(例如:“Copyright © 2005-2019 Apache 软件基金会。保留所有权利。")。我们在 Oracle 驱动程序中添加了 Oracle 技术网许可,但被国际公司的法律团队拒绝:
“除非我们实际获得使用 Oracle 数据库的许可(您没有),否则我们不能允许使用和分发 Oracle JDBC 驱动程序。这些驱动程序是根据 Oracle 技术网络许可获得许可的,它要求 XXX [公司名称]将 Oracle 指定为第 3 方受益人,我们的法律部门不允许这样做。因此,您必须找到一个兼容的替代品,该替代品在开源许可下获得许可。”
现在,我们显然正在尝试解决这个问题(看到接收解决方案的最终客户端安装了许可的 Oracle DB,我们可以在公司的 Nexus 存储库中看到早期版本的 OJDBC 驱动程序),但我想请问,有没有办法在没有Oracle JDBC驱动的情况下通过JDBC连接到Oracle DB?或任何其他方式(例如休眠)?据我所知,Oracle DB 通信协议不是完全标准的,这就是您需要 Oracle 驱动程序的原因。是否有我不知道的开源替代方案?
解决方案
是的,使用别人的驱动程序。进步使一个例如。
我不是代表 Oracle 就此驱动程序的质量或有关您决定不使用我们的驱动程序的法律条款发表意见。但是,我们的 Java 应用程序驱动程序还有其他替代方案,这就是其中之一。
推荐阅读
- ruby-on-rails - Shrine::Error: storage :cache 未在 FileUploader 上注册
- sql-server - 如何在 SQL Server 中执行“选择布尔表达式”,如 Mysql 中的 select 1>0?
- php - 创建一个 PHP 提交处理程序?
- java - Hazelcast 未加载分布式地图条目
- android - 在双卡手机中调用 telephonyMananger.getSimSerialNumber() 时会检查哪个 SIM 卡插槽?
- r - 如何从 R Plotly 工具提示中删除神秘的 tilda?
- testing - 如何使用 Vue 测试键盘导航?
- jsf - 使用 Stateful SessionScoped bean 在 JSF 应用程序中存储用户登录信息
- go - 即使包存在,Dep init 也会失败
- javascript - 如何在 Angular 2 中映射和绑定数据?