Проблема устаревших методов OracleConnection - PullRequest
0 голосов
/ 01 апреля 2019

Я работаю над обновлением класса, который использует Connection Pool. Особенно интерфейс:

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();
    }
.
.
.
.

1 Ответ

1 голос
/ 01 апреля 2019

Нет альтернативы 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.
После этого вы больше не будете знать об этом, что и есть то, к чему стремятся интерфейсы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...