如何将oracle.sql.STRUCT替换为oracle.jpub.runtime.MutableStruct使用的java.sql.Struct

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

长话短说,我有一个项目,它使用 JPublisher 从 PL/SQL 包生成代码。目前,该项目正在使用 ojdbc14.jar + 相应的配套 jar 运行。但是,我必须将驱动程序升级到 ojdbc8.jar + 它的配套 jar。在某个时刻,在其中一个课程中,我有以下代码片段:

oracle.sql.Datum d = <some value here>;
MutableStruct struct = new MutableStruct((STRUCT)d, sqlType, factory);

MutableStruct 的构造函数采用以下参数: (STRUCT arg0、int[] arg1、ORADataFactory[] arg2)

我检查了这篇文章,正如您所看到的,它建议使用 java.sql.Struct 代替。然而,在这种情况下,MutableStruct 不接受这样的参数并且不起作用。

所以,我的问题是,在这种情况下是否有任何解决方法可以避免使用已弃用的 STRUCT 对象?

java oracle19c ojdbc
1个回答
0
投票

你也不应该直接使用

MutableStruct
(可能,如果它是一个驱动程序类)。正确的方法是通过Java接口使用实现类,如
java.sql.Struct
。您可以看到
oracle.sql.STRUCT
实现了
java.sql.Struct
,因此您无论如何都会使用它,只需通过 JDBC 接口即可。

没有什么可以阻止您只使用实际的类,但您可能会使用一些在另一个版本中已删除或更改的半内部操作,而 JDBC 标准接口保持不变。

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