`

hibernate.properties 文件与hibernate.cfg.xml文件的区别

    博客分类:
  • java
阅读更多

很多朋友不知道两者的区别,我在这里详细说说吧。
如果是使用hibernate.properties作为配置文件的话,配置文件的内容大概是这样的:

--------------------------------------------------------------
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://localhost:3306/work
hibernate.connection.username=root
hibernate.connection.password=1234
hibernate.show_sql=true

===============================================
而我们想用hibernate.cfg.xml的话,内容大概是这样的:
<hibernate-configuration>
        <session-factory>
                <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
                <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
                <property name="connection.url">jdbc:mysql://localhost:3306/work</property>
                <property name="connection.username">root</property>
                <property name="connection.password">1234</property>
                <mapping resource="bean/Note.hbm.xml"/>
                <mapping resource="bean/User.hbm.xml"/>
        </session-factory>
</hibernate-configuration>
大家有没有发现什么不同的地方呢?对了,以hibernate.properties配置的话,没有配置被映射的类。那hibernate不能在hibernate.properties中知道需要映射的类,在哪里我们能让它知道呢?答案就在源文件里了。
      当我们使用hibernate.properties作为配置文件的时候,我们的源文件中需要这样构造一个config:

这个方法用静态的方法修饰,或者放在构造函数中。

    

static{
     try{
      // Create a configuration based on the properties file we've put
       Configuration config = new Configuration();
       config.addClass(Company.class)
             .addClass(HourlyEmployee.class)
             .addClass(SalariedEmployee.class);
      // Get the session factory we can use for persistence
      sessionFactory = config.buildSessionFactory();
    }catch(Exception e){e.printStackTrace();}

  }

 
    这里的config我们必须调用addClass()方法,这就是我们使hibernate知道映射类的地方了。当然使用hibernate.cfg.xml来配置的话,我们就可以这样写:
               Configuration config = new Configuration();
              SessionFactory sf = config.configure("/hibernate.cfg.xml").buildSessionFactory();
               //这里调用了configure()方法来指定hibernate.cfg.xml的位置
              Session session = sf.openSession();
        我们就不用再配置需要映射的类了,重复配置的话会出现重复映射异常。
        总之,我们要使用两种方法其中一种就行了,就是说如果hibernate.cfg.xml中没有说明映射关系的话,在源文件中使用addClass()方法就可以了,但不能重复!。

       hibernate.properties 文件是默认读取的。
        另外,在hibernate的启动过程中,会先找hibernate.properties,然后读取hibernate.cfg.xml,后者会覆盖前者相同的属性

分享到:
评论

相关推荐

    ssh整合,不带hibernate.cfg.xml的方式

    在这个场景中,我们关注的是不通过传统的`hibernate.cfg.xml`文件来配置Hibernate,而是借助Spring框架的`LocalSessionFactoryBean`进行整合。 首先,`hibernate.cfg.xml`是Hibernate传统配置文件,它包含了数据库...

    6 用Properties补充hibernate.cfg.xml配置

    通过这样的方式,我们可以将`hibernate.cfg.xml`中的配置分散到多个`.properties`文件中,提高代码的可维护性和安全性。这在大型项目或团队协作中尤其重要,因为它允许团队成员更专注于业务逻辑,而不是反复修改配置...

    hibernate的dtd 包含hibernate.properties

    `hibernate-configuration-3.0.dtd`是Hibernate 3.0版本的配置文件格式的规范,它规定了`hibernate.cfg.xml`文件中元素和属性的语法。例如,`&lt;session-factory&gt;`是配置文件中的核心元素,它可以包含如`&lt;property&gt;`...

    使用dom4j生成和读取hibernate.cfg.xml

    在IT行业中,XML文件是常用于配置和存储数据的格式,尤其在Java世界里,比如Hibernate框架的配置文件`hibernate.cfg.xml`。本文将深入探讨如何使用DOM4J库来生成和读取`hibernate.cfg.xml`,这是一个强大的Java XML...

    Hibernate的配置文件

    在Java Web开发中,SSH(Struts、Spring、Hibernate)是...下载提供的`hibernate.cfg.xml`文件,可以作为参考模板,根据自己的数据库和应用需求进行修改,从而快速搭建Hibernate环境,实现Java对象与数据库的无缝交互。

    Hibernate.cfg.xml配置总结[借鉴].pdf

    首先,`Hibernate.cfg.xml`文件有两种形式,即基于属性的.properties文件和基于XML的配置文件。本文主要讨论基于XML的配置方式,因为其更具有可读性和灵活性。 ### 1. 数据源配置 在`Hibernate.cfg.xml`中,数据源...

    hibernate的dtd文件

    `hibernate.cfg.xml`是另一种常用的Hibernate配置方式,相比`hibernate.properties`,它提供了更灵活的XML结构来配置Hibernate。`hibernate-configuration-3.0.dtd`中包含了如`session-factory`、`property`、`...

    hibernate c3p0 数据库连接池参数详解.txt

    在 Hibernate 中,C3P0 的配置主要通过 `hibernate.properties` 或 `hibernate.cfg.xml` 文件中的属性进行设置。这些配置项对于控制连接池的行为至关重要。 #### 3. 关键配置参数详解 ##### 3.1 hibernate....

    有关数据库连接的系统配置技术.PPT

    本讲将深入探讨如何配置Hibernate系统,主要包括hibernate.properties文件和hibernate.cfg.xml文件的使用。 首先,Hibernate的默认配置参数使其能够在多种环境下工作。默认配置样例文件hibernate.properties位于...

    Hibernate配置文件.pdf

    本文将详细讨论`hibernate.properties`和`hibernate.cfg.xml`这两种配置文件的使用。 1. **hibernate.properties**: - 这是Hibernate的一种配置方式,通常用于较简单的设置。在Hibernate 3.1的`etc`目录下提供了...

    简单配置hibernate

    【hibernate.properties】与【hibernate.cfg.xml】配置 在 Hibernate 框架中,配置文件主要有两种形式:`hibernate.properties` 和 `hibernate.cfg.xml`。两者的主要区别在于管理映射文件的方式。使用 `hibernate....

    有关数据库连接的系统配置技术

    本讲主要探讨了如何配置Hibernate系统以实现数据库连接,涵盖了两种主要的配置文件格式:`hibernate.properties`和`hibernate.cfg.xml`。 首先,Hibernate配置文件有两类型:`hibernate.properties`和`hibernate....

    Eclipse上使用Hibernate

    Eclipse 上使用 Hibernate ...在 hibernate.cfg.xml 文件的首部,您需要添加 DOCTYPE 声明,以便 Hibernate 能够正确地解析配置文件。 通过以上步骤,您就能够在 Eclipse 环境中使用 Hibernate 完成持久层的开发。

    hibernate-configuration-3.0.dtd、hibernate-mapping-3.0.dtd

    这个文件是Hibernate配置文件的文档类型定义(DTD),用于验证配置文件`hibernate.cfg.xml`的格式是否正确。它规定了如数据库连接信息、缓存设置、实体类加载路径等配置项的结构和属性。例如,其中 `...

    springboot集成hibernate

    在本文中,我们将深入探讨如何将Spring Boot框架与Hibernate ORM集成,特别是在不使用JPA(Java Persistence API)的情况下。Spring Boot以其便捷的自动配置和简化Java应用开发而广受欢迎,而Hibernate作为Java领域...

    hibernate显示不带?的完整sql

    在你的`hibernate.cfg.xml`配置文件中,找到或添加以下行: ```xml &lt;property name="hibernate.show_sql"&gt;true ``` 这将让Hibernate在控制台打印出执行的SQL语句,但它们仍然是带有问号占位符的形式。 要显示不带...

    hibernate源码分析一[启动过程]

    在加载配置文件时,`Configuration`类会优先考虑`hibernate.cfg.xml`中的配置,如果存在相同的配置项,那么`hibernate.cfg.xml`中的值将覆盖`hibernate.properties`中的值。此外,通过`Configuration`类提供的方法,...

    hibernate配置properties

    1. **XML配置文件**:如`hibernate.cfg.xml`。 2. **程序代码中的Properties对象**:如本文档中所示。 3. **注解**:在实体类中使用注解进行配置。 4. **程序代码中的Configuration对象**:设置各种属性值。 #### ...

    Hibernate 中配置C3P0连接池

    C3P0的配置通常有两种方式,通过`hibernate.properties`或`hibernate.cfg.xml`文件。在`hibernate.properties`中,你需要定义一系列以`hibernate.c3p0.`开头的属性,例如: ``` hibernate.connection.driver_class ...

    Hibernate配置[归类].pdf

    XML配置文件(`hibernate.cfg.xml`) - `hibernate.cfg.xml`是另一种配置方式,包含所有Hibernate的配置信息以及数据库连接参数。 - `dialect`属性定义数据库方言,与`hibernate.properties`中的`hibernate.dialect...

Global site tag (gtag.js) - Google Analytics