0

我正在升级一个使用连接池的类。特别是界面:

oracle.jdbc.OracleConnection

现在这个接口有很多被弃用的方法。我只是想知道这个界面还有其他选择,所以我不会得到通常的:

The type XXXX must implement the inherited abstract method OracleConnection.getJavaObject(String)

等等等等。以前,代码通过 SupressWarning 注释进行检查。我不喜欢那样。有什么办法可以克服这个吗?还是注释是唯一的方法?

我的 maven 依赖导入就像,如果这有任何帮助:

<!-- https://mvnrepository.com/artifact/com.oracle/ojdbc6 -->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.4</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.oracle/ucp -->
        <dependency>
            <groupId>com.oracle.jdbc</groupId>
            <artifactId>ucp</artifactId>
            <version>12.2.0.1</version>
        </dependency>

添加代码(该类仅覆盖 OracleConnection 接口中的所有方法),我很确定它没有被太多使用,但由于它是旧代码,因此不能确定。

@SuppressWarnings("deprecation")
public class APPDBConnection implements OracleConnection {

    private OracleConnection connection;

    public APPDBConnection (OracleConnection connection) {
        super();
        this.connection = connection;
    }

    @Override
    public <T> T unwrap(Class<T> iface) throws SQLException {
        return connection.unwrap(iface);
    }

    @Override
    public boolean isWrapperFor(Class<?> iface) throws SQLException {
        return connection.isWrapperFor(iface);
    }

    @Override
    public void clearWarnings() throws SQLException {
        connection.clearWarnings();
    }
.
.
.
.
4

1 回答 1

1

OracleConnection我所知道的没有其他选择,尤其是对于 Oracle 11g。

你确定你绝对需要知道OracleConnection吗?
您基本上是将您的实现绑定到特定的提供者。

您有效地使用了哪些由您提供的OracleConnection方法?
考虑针对java.sql.Connection接口进行编程。


public class APPDBConnection implements Connection {
    private final Connection connection;

    public APPDBConnection(final Connection connection) {
        this.connection = connection;
    }

只需传入一个已经构建的OracleConnection.
在那之后,您将不再了解它,恕我直言,接口的目标是什么。

于 2019-04-01T08:04:57.203 回答