java.sql. Проблема совместимости соединения между java 1.5 и java 1.6 - PullRequest
1 голос
/ 20 января 2012

java.sql.Connection реализован в подробное соединение для получения дополнительной информации для модульных тестов.

Использование компилятора java 1.6 приводит к следующим ошибкам компиляции:

The type VerboseConnection must implement the inherited abstract method Connection.createArrayOf(String, Object[]) 
    The type VerboseConnection must implement the inherited abstract method Connection.createBlob() 
    The type VerboseConnection must implement the inherited abstract method Connection.createClob() 
    The type VerboseConnection must implement the inherited abstract method Connection.createNClob() 
    The type VerboseConnection must implement the inherited abstract method Connection.createSQLXML() 
    The type VerboseConnection must implement the inherited abstract method Connection.createStruct(String, Object[]) 
    The type VerboseConnection must implement the inherited abstract method Connection.getClientInfo() 
    The type VerboseConnection must implement the inherited abstract method Connection.getClientInfo(String) 
    The type VerboseConnection must implement the inherited abstract method Connection.isValid(int) 
    The type VerboseConnection must implement the inherited abstract method Connection.setClientInfo(Properties) 
    The type VerboseConnection must implement the inherited abstract method Connection.setClientInfo(String, String) 
    The type VerboseConnection must implement the inherited abstract method Wrapper.isWrapperFor(Class) 
    The type VerboseConnection must implement the inherited abstract method Wrapper.unwrap(Class) 

Реализация вышеуказанных методов работает хорошо в 1.6. Но опять же, если мы используем Компилятор Java 1.5, приводит к следующим ошибкам компиляции

NClob cannot be resolved to a type 
    SQLClientInfoException cannot be resolved to a type 
    SQLClientInfoException cannot be resolved to a type 
    SQLXML cannot be resolved to a type
    The import java.sql.NClob cannot be resolved 
    The import java.sql.SQLClientInfoException cannot be resolved 
    The import java.sql.SQLXML cannot be resolved

Подскажите, пожалуйста, как заставить его работать в обеих версиях без поддержание 2 разных файлов для разных версий?

1 Ответ

1 голос
/ 20 января 2012

Если вам нужно предоставить реализацию Java 1.5 и Java 1.6, вы можете использовать абстрактный базовый класс в своем проекте и добавить реализацию, зависящую от версии Java, в отдельный проект.

В зависимости от Javaскомпилируйте одну или другую версию и включите полученные файлы классов в ваш основной файл jar.

Этот подход мы используем при реализации Jaybird (драйвер JDBC Firebird).

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