Понякога се нуждаете от информация за драйверите на Oracle JDBC, като например последните версии, коя да използвате за дадена версия на база данни, журналите за промени и т.н.

В тази публикация се опитах да ви събера цялата тази информация на едно място. Ако нещо липсва, не се колебайте да коментирате, за да мога да го поправя. Това не е публикация само за четене!

В момента се поддържат 3 основни версии на тези драйвери:

  • 19.X.X.X известен като дългосрочна поддръжка (или LTS); последна версия: 19.18.0.0; краят на разширената поддръжка е април 2027 г
  • 21.X.X.X известен като Innovation Release; последна версия: 21.9.0.0; краят на поддръжката е април 2024 г
  • 23.X.X.X известен като бъдеща дългосрочна поддръжка; ранна версия: 23.2.0.0 донесе новата база данни на Oracle 23c БЕЗПЛАТНО — версия за разработчици

Дневниците на промените на тези версии могат да бъдат намерени съответно тук за 19 и тук за 21.

Тези драйвери се предлагат в 2 варианта:

  • thin: Драйвер от ниво 4, 100% написан на Java, полезен за собствени изображения на GraalVM, достъпен на Maven Central, напр.:

Maven зависимости:

<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.18.0.0</version>
</dependency>
<dependency>
 <groupId>com.oracle.database.jdbc</groupId>
 <artifactId>ojdbc8</artifactId>
 <version>21.9.0.0</version>
</dependency>
<dependency>
 <groupId>com.oracle.database.jdbc</groupId>
 <artifactId>ojdbc11</artifactId>
 <version>23.2.0.0</version>
</dependency>

Gradle зависимости:

implementation 'com.oracle.database.jdbc:ojdbc8:19.18.0.0'
implementation 'com.oracle.database.jdbc:ojdbc8:21.9.0.0'
implementation 'com.oracle.database.jdbc:ojdbc11:23.2.0.0'
  • thick: Драйвер от ниво 2, който изисква споменатите по-горе Java зависимости заедно с допълнителни библиотеки като Oracle Instant Client; не е много добър за контейнерни изображения (по-голям размер)

Добро място за получаване на най-новата информация е официалният портал с често задавани въпроси на Oracle JDBC!

Един от въпросите, които може да си зададете, е кой драйвер трябва да използвам за дадена версия на база данни и дадена JVM версия. От често задаваните въпроси по-горе изглежда, че разчитането на ojdbc8.jar е най-добрият избор за сега, тъй като остава съвместимо с JDK 8 и JDK 11, както и с бази данни на Oracle 19c и 21c, докато е съвместимо със спецификацията JDBC 4.2.

За JDK 17 и по-нова версия трябва да използвате ojdbc11.jar, освен това той е съвместим с JDBC 4.3.

От ЧЗВ това означава:

Ако тогава използвате JDK11, ojdbc8.jar все още е по-добър избор, тъй като включва всички функции 4.3, но като разширения на Oracle. Клиентите могат да използват ojdbc10.jar само ако имат нужда от JDBC 4.3 функции, достъпни чрез стандартния Java SE.
Пример:
ojdbc8.jar:

Connection conn = DriverManager.getConnection(...);    
// would fail because beginRequest is not in Java 8
conn.beginRequest(); 

// succeeds because beginRequest is provided as an Oracle extension
((OracleConnection)conn).beginRequest();

ojdbc10.jar:

Connection conn = DriverManager.getConnection(...);    
// succeeds because beginRequest is in Java 10
conn.beginRequest(); 

// succeeds because OracleConnection supports JDBC 4.3 (in Java 10)
// and beginRequest is part of JDBC 4.3
((OracleConnection)conn).beginRequest();

Бърза бележка относно 23c, драйверът JDBC 19 е понастоящем минималната планирана версия за поддръжка на тази предстояща версия за дългосрочна поддръжка (LTS).

От началото на април, с новото съобщение за Oracle Database 23c FREE — Developer release, 23c JDBC драйверите вече са налични в OTN и в Maven Central.

Не на последно място, препоръчвам следната документация:

И не забравяйте да прочетете тази бележка, ако се свързвате към автономна база данни.