2013-05-02 5 views
1

Кажется, что у меня проблема с файлом конфигурации, но я действительно не понимаю, что это может быть.Конфигурационный файл Hibernate

Я использовал hibernate 3.6, теперь я использую hibernate 4.2, есть некоторые важные изменения, которые я игнорирую, но документ, похоже, не изменяет эту часть.

Вот мой конфигурационный файл:

<?xml version='1.0' encoding='utf-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 

<hibernate-configuration> 
    <session-factory> 
     <!-- Database connection settings --> 
     <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="connection.url">jdbc:mysql://localhost/Test</property> 
     <property name="connection.username">root</property> 
     <property name="connection.password">*****</property> 

     <!-- JDBC connection pool (use the built-in) --> 
     <property name="connection.pool_size">10</property> 
     <property name="maxActive" value="10" /> 

     <!-- SQL dialect --> 
     <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> 

     <!-- Enable Hibernate's automatic session context management --> 
     <property name="current_session_context_class">thread</property> 

     <!-- Disable the second-level cache --> 
     <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property> 

     <!-- Echo all executed SQL to stdout --> 
     <property name="show_sql">true</property> 

     <!-- Drop and re-create the database schema on startup --> 
     <property name="hbm2ddl.auto">create</property> 

     <!-- Mapping files --> 
     <mapping resource="database/config/mapping/test.hbm.xml"/> 
    </session-factory> 
</hibernate-configuration> 

А вот мой источник Java:

public class CreateDB { 
    public static void main(String argv[]){ 
     try { 
      Configuration configuration = new Configuration(); 
      configuration.configure("database/config/DBCreate.cfg.xml"); 
      ServiceRegistryBuilder serviceRegistryBuilder = new ServiceRegistryBuilder().applySettings(configuration 
       .getProperties()); 
      SessionFactory sessionFactory = configuration 
       .buildSessionFactory(serviceRegistryBuilder.buildServiceRegistry()); 
     DBConnect.Disconnect(null, sessionFactory.openSession()); // Just logout from a session 
     } catch (Exception e) { 
      System.out.println("Database unreachable."); 
     } 
    } 
} 

А вот оператор возврата:

mai 02, 2013 11:41:59 AM org.hibernate.annotations.common.Version <clinit> 
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final} 
mai 02, 2013 11:41:59 AM org.hibernate.Version logVersion 
INFO: HHH000412: Hibernate Core {4.2.0.Final} 
mai 02, 2013 11:41:59 AM org.hibernate.cfg.Environment <clinit> 
INFO: HHH000206: hibernate.properties not found 
mai 02, 2013 11:41:59 AM org.hibernate.cfg.Environment buildBytecodeProvider 
INFO: HHH000021: Bytecode provider name : javassist 
mai 02, 2013 11:41:59 AM org.hibernate.cfg.Configuration configure 
INFO: HHH000043: Configuring from resource: database/config/DBCreate.cfg.xml 
mai 02, 2013 11:41:59 AM org.hibernate.cfg.Configuration getConfigurationInputStream 
INFO: HHH000040: Configuration resource: database/config/DBCreate.cfg.xml 
Database unreachable. 

Я действительно не понять, что не так, может быть, кто-то сможет просветить меня. Извините за возможные нарушения, и если мой пост не адаптирован, это мой первый.

С уважением.

+0

Любые удачи, чтобы это работало? –

+0

Я сейчас на работе, я расскажу вам позже сегодня, я думаю, что это сделает, я буду держать вас в курсе. – Cocottier

ответ

0

Укажите порт в connection.url.

<property name="connection.url">jdbc:mysql://localhost:3306/Test</property> 
+0

Я только что протестировал его, ничего не изменил. – Cocottier

+0

@ user2342594 Shucks, я уверен, что вам нужно указать порт, хотя должно быть что-то еще. Это может быть глупый вопрос, но ваша база данных? –

+0

Yup it, я, очевидно, пробовал его перед публикацией здесь. Я думаю, проблема в том, что файл не найден, я игнорирую почему. (cf: INFO: HHH000206: hibernate.properties не найдено) Я ищу его прямо сейчас – Cocottier

0

Я прочитал статью, в которой говорится, в Hibernate 4 мы требуем, чтобы упомянуть «зимуют» ключевое слово в названии собственности тег файла конфигурации.

формат Образец -

Hibernate ранняя версия

<?xml version='1.0' encoding='utf-8'?> 
    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration 
     DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 
    <hibernate-configuration> 
    <session-factory> 
     <property name="connection.url">jdbc:mysql://localhost/noob</property> 

     <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 

     <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> 

     <property name="connection.username">root</property> 
     <property name="connection.password"></property> 

     <!-- DB schema will be updated if needed --> 
     <property name="hbm2ddl.auto">create-drop</property> 
     <property name="show_sql">false</property> 
     <property name="format_sql">false</property> 

    </session-factory> 
    </hibernate-configuration> 

Hibernate версия 4

<hibernate-configuration xmlns="http://www.hibernate.org/xsd/hibernate- 
     configuration"> 

    <session-factory> 
     <!-- Database connection settings --> 
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="hibernate.connection.url">jdbc:mysql://localhost/noob</property> 
     <property name="hibernate.connection.username">root</property> 

     <property name="hibernate.connection.password"></property> 

     <!-- JDBC connection pool (use the built-in) --> 
     <property name="hibernate.connection.pool_size">1</property> 

     <!-- SQL dialect --> 
     <property 
      name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> 

     <!-- Enable Hibernate's automatic session context management --> 
     <property name="hibernate.current_session_context_class">thread</property> 

     <!-- Disable the second-level cache --> 
     <property 
    name="hibernate.cache.provider_class">org.hibernate.cache.internal.NoCacheProvider 
     </property> 

     <!-- Echo all executed SQL to stdout --> 
     <property name="hibernate.show_sql">true</property> 

     <!-- Drop and re-create the database schema on startup --> 
     <property name="hibernate.hbm2ddl.auto">update</property> 
    </session-factory> 

    </hibernate-configuration> 

Обратите внимание на "зимуют" ключевое слово в названии недвижимости тег

Точная ссылка выглядит следующим образом -

hibernate.cfg.xml with Hibernate 4.0.0

0
<?xml version='1.0' encoding='utf-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 

При изменении файла XML, как указано выше комментарии, вы должны изменить определение DTD.

Смежные вопросы