Hibernate не удается открыть соединение с Oracle 11g?

#java #oracle #hibernate #oracle11g

#java #Oracle #спящий режим #oracle11g

Вопрос:

Я выполнил базовый тест JUnit для настройки этой базы данных Oracle на моем компьютере с помощью hibernate. База данных работает и все такое, но попытка подключить ее к Hibernate оказывается сложной задачей. Мой конфигурационный файл может быть здесь:

Тест JUnit довольно прост, и я уверен, что он должен работать, но я получаю этот сбой JUnit:

 org.hibernate.exception.JDBCConnectionException: Cannot open connection
  

Есть идеи, что с этим не так?

Свойства соединения в файле конфигурации Hibernate:

 <session-factory>
    <property name="hibernate.connection.driver_class">
        oracle.jdbc.OracleDriver</property>
    <property name="hibernate.connection.url">
        jdbc:Oracle:thin:@127.0.0.1:8080/slyvronline</property>
    <property name="hibernate.connection.username">
        YouNoGetMyLoginInfo</property>
    <property name="hibernate.connection.password">
        YouNoGetMyLoginInfo</property>
    <property name="dialect">
        org.hibernate.dialect.OracleDialect</property>
    <!-- Other -->
    <property name="show_sql">true</property>
    <property name="hibernate.hbm2ddl.auto">validate</property>

    <!-- Mapping files -->
    <mapping class="com.slyvr.pojo.Person"/>
</session-factory>
  

Ответ №1:

Маловероятно (но возможно), что ваша БД прослушивает порт 8080. Oracle по умолчанию использует порт 1521. Начните с этого.

(Поскольку это проблема с подключением, полезны соответствующие части конфигурации Hibernate; я отредактировал, чтобы отразить.)

Комментарии:

1. Ах, вы правы. Похоже, URL-адрес работает с: jdbc:oracle:thin:@localhost:1521:xe . За исключением того, что я получаю сообщение об ошибке с указанием отсутствующей последовательности или таблицы: hibernate_sequence

2. @slyvr Это проблема с отображением; должно быть под новым вопросом.

Ответ №2:

В вашей строке подключения возможны две проблемы

во-первых, это порт, указанный Дейвом Ньютоном, во-вторых, после порта вы должны добавить sid после: not / .

Так что попробуйте это как решение:

 jdbc:Oracle:thin:@127.0.0.1:1521:slyvronline
  

Ответ №3:

При подключении к oracle нет необходимости указывать имя схемы, поэтому URL-адрес подключения выглядит так, как показано ниже

     jdbc:oracle:thin:@<hostname>:<port>:<sid>
    ex:
    jdbc:oracle:thin:@localhost:1521:xe