Как подключиться к базе данных оракула с помощью весенней загрузки

Я работаю с приложением Spring Boot и пытаюсь получить доступ к базе данных Oracle. Хотя он был успешно создан, он выдает следующую ошибку, когда я пытаюсь выполнить развертывание в Kubernetes.

Я изменил файл application.properties и файл pom.xml со следующими конфигурациями:

Application.yml

 spring.datasource.url=jdbc:oracle:thin:@<IP>:1521:orcl
 spring.datasource.username=<username>
 spring.datasource.password=<password>
 spring.datasource.driver.class=oracle.jdbc.driver.OracleDriver

POM-файл

 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-jdbc</artifactId>
 </dependency>

Исключение

***************************
APPLICATION FAILED TO START
***************************
 Description:
 Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource:
     Property: driverclassname
    Value: oracle.jdbc.OracleDriver
    Origin: "driverClassName" from property source "source"
    Reason: Failed to load driver class oracle.jdbc.OracleDriver in either of 
            HikariConfig class loader or Thread context classloader
 Action:
 Update your application's configuration   

Вам нужен драйвер OJDBC

Pijotrek 22.01.2019 10:47

Проверьте мой ответ на spring.datasource.driver.class=oracle.jdbc.driver.OracleDriv‌​er, это должен быть driver.class-name

smilyface 23.01.2019 07:43

@Dhanushka - Если проблема устранена, выберите правильный ответ. Это может быть полезно для других. Ваше здоровье

smilyface 20.05.2019 07:28
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
3
35 646
6

Ответы 6

Вам необходимо загрузить jar-файл драйвера Oracle JDBC и добавить его в путь к классам, чтобы ваше приложение загружало класс oracle.jdbc.OracleDriver.

Драйвер можно скачать с здесь.

Я уже пробовал это в IntelliJ. Он успешно построил его в IDE. Но когда я пытаюсь развернуть его в kubernetes, выдает ошибку. пожалуйста помоги

Dhanushka Sampath 22.01.2019 10:55

Вы создаете толстую банку? Если да, то вы можете явно включить jar драйвера.

Darshan Mehta 22.01.2019 11:09

Зависимость Мавена:

    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc7</artifactId>
        <version>12.1.0</version>
    </dependency>

файл application.yml:

# Oracle settings
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=system
spring.datasource.password=password
spring.datasource.driver.class-name=oracle.jdbc.OracleDriver

Примечание : имя_класса_драйвера

Иногда вам может понадобиться добавить spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect в файл application.yml (для Oracle 10).

Вы можете проверить, помогает ли пример Приложение Spring Boot.

Добавьте ниже зависимость и репозиторий в pom

<dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
    </dependency>

<repositories>
    <repository>
        <id>codelds</id>
        <url>https://code.lds.org/nexus/content/groups/main-repo</url>
    </repository>
   </repositories>

Также добавьте следующие свойства в application.properties

    spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
    spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe(SID)
    spring.datasource.username=system
    spring.datasource.password=pw

Обновите драйвер db в файле Application.yml до

spring.datasource.driver-class-name=oracle.jdbc.**driver**.OracleDriver or spring.datasource.driver-class-name=oracle.jdbc.OracleDriver

Очередная нестыковка? spring.datasource.driver.имя-класса v/s spring.datasource.driver-имя-класса

user12264329 23.10.2019 18:19

Запросы на разъяснения или дополнительную информацию от OP должны быть в комментарии, а не в ответе. Пожалуйста, публикуйте ответ только в том случае, если он действительно отвечает на вопрос.

mypetlion 23.10.2019 18:22

Кстати, я нашел ответы на свои вопросы: используйте spring.datasource.driver-class-name=oracle.jdbc.OracleDriver для >Oracle 9i (не требуется Водитель) Однако, если я распаковываю ojdbc6.jar, я вижу оба класса там. И правильный атрибут для использования — spring.datasource.driver-class-name.

user12264329 23.10.2019 20:09

Для БД Oracle,

Настройки Мавена:

<dependency>
    <groupId>com.oracle.ojdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.3.0.0</version>
</dependency>

Настройки свойств:

spring.datasource.url=jdbc:oracle:thin:@172.16.10.12:1521/orcl11
spring.datasource.username=[username]
spring.datasource.password=[password]

Не используйте

spring.datasource.driver-class-name=oracle.jdbc.OracleDriver

Другие вопросы по теме