Java 休眠配置文件

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/16335279/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-16 06:22:47  来源:igfitidea点击:

Hibernate configuration file

javahibernateconfigurationmappingconfig

提问by Cocottier

It seems that I have a problem with my configuration file but I really don't find out what it could be.

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

I used to use hibernate 3.6, I now use hibernate 4.2, there are proly some important changes that I ignore, but the doc seems to not change this part.

我曾经使用 hibernate 3.6,我现在使用 hibernate 4.2,我忽略了一些重要的变化,但文档似乎没有改变这部分。

Here is my configuration file:

这是我的配置文件:

<?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>

And here is my java source:

这是我的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.");
        }
    }
}

And here is the return statement:

这是返回语句:

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.

I really don't get what is wrong, maybe someone will be able to enlight me. Sorry for possible disturbance and if my post isn't adapted, this is my first one.

我真的不明白有什么问题,也许有人能够启发我。对不起,可能的打扰,如果我的帖子没有改编,这是我的第一个。

Best regards.

此致。

采纳答案by Kevin Bowersox

Specify the port in the connection.url.

中指定端口connection.url

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

回答by Arti M

I have read an article which says in Hibernate 4 we require to mention the "hibernate" keyword in the property nametag of the configuration file.

我读过一篇文章,它说在 Hibernate 4 中我们需要在配置文件的属性名称标签中提及“ hibernate”关键字。

Sample format is -

样本格式是 -

Hibernate earlier version

休眠早期版本

    <?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 version 4

休眠版本 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>

Observe the "hibernate" keyword in the property nametag

观察属性名标签中的“ hibernate”关键字

The exact link is as follows -

具体链接如下——

hibernate.cfg.xml with Hibernate 4.0.0

带有 Hibernate 4.0.0 的 hibernate.cfg.xml

回答by Nitul

    <?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">

When you change the XML file as per above comments, you must change the DTD definition.

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