【问题标题】:Hibernate configuration file休眠配置文件
【发布时间】:2013-04-26 11:05:31
【问题描述】:

我的配置文件似乎有问题,但我真的不知道它可能是什么。

我以前用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.

我真的不明白哪里错了,也许有人能启发我。 抱歉可能造成的干扰,如果我的帖子没有被改编,这是我的第一篇。

最好的问候。

【问题讨论】:

  • 有什么好运的吗?
  • 我现在正在工作,我会在今天晚些时候告诉你,我想我会这样做的,我会让你知道的。

标签: java hibernate configuration mapping config


【解决方案1】:

connection.url中指定端口。

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

【讨论】:

  • 我只是测试了它,它没有改变任何东西。
  • @user2342594 嘘,我很确定你需要指定端口,但必须是别的东西。这可能是一个愚蠢的问题,但您的数据库是否已启动?
  • 是的,我显然在发帖之前尝试过。我认为问题在于找不到文件,我忽略了原因。 ( cf: INFO: HHH000206: hibernate.properties not found ) 我现在正在寻找它
  • 好的,确实是文件没有加载。我现在出现了一个新错误:“mai 02, 2013 10:58:05 PM org.hibernate.cfg.Configuration doConfigure INFO: HHH000041: Configured SessionFactory: null”。有什么想法吗?
【解决方案2】:

我读过一篇文章说在 Hibernate 4 中我们需要在配置文件的 property name 标签中提及“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>

休眠版本 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”关键字

具体链接如下——

hibernate.cfg.xml with Hibernate 4.0.0

【讨论】:

    【解决方案3】:
        <?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">
    

    当您按照上述 cmets 更改 XML 文件时,您必须更改 DTD 定义。

    【讨论】:

      猜你喜欢
      • 2017-04-30
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 2013-03-03
      • 2010-11-08
      • 2013-01-26
      • 2011-04-04
      • 2015-02-28
      相关资源
      最近更新 更多