Я знаю, что есть некоторые вопросы по этому поводу, но ни один из них не говорит о том, как выбирать. Итак, у меня есть база данных Oracle версии 19c и микросервис jdk 17. Когда я смотрю Часто задаваемые вопросы по Oracle, у меня есть 3 варианта использования.
Кроме того, как я уже сказал, у меня есть jdk 17. Это означает, что я могу использовать ojdbc10 или ojdbc8.
Я позволил своему родителю весенней загрузки выбирать, не указывая версию, как в pom
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.database.nls</groupId>
<artifactId>orai18n</artifactId>
</dependency>
и когда я mvn install
вижу, что он устанавливается jdbc 21.9.0.0
. Насколько я могу судить, когда я посмотрю первый график, он будет работать с базой данных 19.x. Но я не уверен, что он совместим с JDK17. Вторая диаграмма показывает, что ojdbc8 с базой данных 19.x полностью совместим с JDK17, но как это? Разве эта диаграмма не должна быть в формате jdbc version x jdbc jar. Какое отношение jdk имеет к версии базы данных?
На самом деле я не спрашивал, какой из них лучше всего мне использовать. Я лишь спросил, как проверить, какие версии я могу использовать согласно официальным документам Oracle. Это просто «научи человека ловить рыбу, и ты накормишь его на всю жизнь».
Первая таблица показывает, что вы правы, но мне нужно знать, сертифицирован ли соответствующий jar для jdk 17, какую вторую таблицу пытается мне показать. Но таблица описывает связь через версию базы данных Oracle, что меня смущает, поскольку я ожидаю, что версия драйвера JDBC позволит выбрать, какой JDK с каким из них совместим. Работники Oracle отвечают на некоторые темы, например, Джин, будьте любезны. Вы можете легко игнорировать тему, если не заинтересованы в помощи.
Имя библиотеки — «ojdbc8», что указывает на то, что она была скомпилирована с использованием Java 8 и, следовательно, реализует спецификацию JDBC 4.2. Драйвер JDBC 21c совместим с сервером 19c. С JDK17 вы можете использовать ojdbc8.jar или ojdbc10.jar. Если вы планируете использовать API JDBC 4.3, вам следует использовать ojdbc10.jar.
В FAQ есть список таблиц с JDBC 4.2 in ojdbc8.jar
и JDBC 4.3 in ojdbc10.jar
для базы данных 19.x в разделе What are the Oracle JDBC releases Vs JDBC specifications?
. Я полагаю, что это должна быть версия JDBC, а не версия базы данных Oracle, такая же, как в таблице раздела What are the Oracle JDBC releases Vs JDK versions?
.
Java 8 — это JDBC 4.2, Java 9+ — JDBC 4.3. Я обновил ваш ответ.
Используйте самую высокую версию, совместимую с вашей базой данных (драйвер 23.3), и версию ojdbcxx, равную или более низкую версии вашей Java (ojdbc11 в случае 23.3). Кроме того, я проголосовал за закрытие, поскольку другие люди с радостью будут утверждать, что вам следует использовать версию, соответствующую версии вашей базы данных.