`
sarin
  • 浏览: 1753739 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
E3b14d1f-4cc5-37dd-b820-b6af951740bc
Spring数据库访问系列...
浏览量:173346
C2083dc5-6474-39e2-993e-263652d27795
Android学习笔记
浏览量:367627
5f40a095-b33c-3e8e-8891-606fcf3b8d27
iBatis开发详解
浏览量:188916
B272a31d-e7bd-3eff-8cc4-c0624ee75fee
Objective-C学习...
浏览量:99530
社区版块
存档分类
最新评论

hibernate.properties和hibernate.cfg.xml

阅读更多
    hibernate配置文件可以有两种方式:官方推荐的XML配置文件和属性配置文件。我们大都采用XML方式的配置,因为结构良好,配置灵活,可读性强。而且可以在XML中直接配置映射文件而属性文件则不行。但是我们可能忽略的一个问题是:hibernate首先查找的配置文件却是属性配置文件hibernate.properties。
    看看下面这张图,就很清楚了。

    可以看到Hibernate首先去找了hibernate.properties配置文件,但是没找到。然后创建字节码支持器,用到cglib,之后用了时间戳控制,之后才是读取hibernate.cfg.xml配置文件。这些在最前面的日志信息我们可能会忽略它,但是我们要明白hibernate的一些加载原理。既然Hibernate第一读取的是属性配置文件,那么下面我们用属性配置文件做一个例子来看看效果。

    将XML文件打成.bak,加入属性配置文件,其中的配置和XML相同。
hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
hibernate.connection.url=jdbc:oracle:thin:@localhost:1521:orcl
hibernate.connection.username=hibernate
hibernate.connection.password=hibernate
hibernate.dialect=org.hibernate.dialect.OracleDialect
hibernate.current_session_context_class=thread
hibernate.show_sql=true
hibernate.format_sql=true

    程序中,我们这样写就行了。
package demo;
import java.util.Date;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;
import demo.domain.User;
public class Test {
	public static void main(String[] args) {
		Configuration config = new Configuration();
		config.addResource("demo/domain/User.hbm.xml");// 加载映射文件
// config.addClass(demo.domain.User.class); 另外一种加载方式
		SessionFactory sessionFactory = config.buildSessionFactory();			
		Session session = sessionFactory.getCurrentSession();
		Transaction tx = session.beginTransaction();
		User user = new User();
		user.setName("Sarin");
		user.setPhone("15912345678");
		user.setDepartment("研发部");
		user.setCity("大连");
		user.setHireTime(new Date());
		session.save(user); 
		tx.commit();
	}
}

    在控制台,我们就看到这样的日志信息了。

    可以看出,Hibernate直接读取配置信息,然后是字节码支持提供,初始化时间戳,加载映射文件,后面的流程就是一样的了。
    hibernate.properties和hibernate.cfg.xml都是Hibernate解析配置文件时默认的命名方式,而且都必须放在类路径的根目录下,当然是不建议在使用时修改的,因为这就多此一举。如果有人不喜欢这种命名方式,当然可以自定义名称,不过此时你必须告诉Hibernate配置文件是哪个,可以如下方式进行,也是比较方便的。
File file = new File("src/demo/hibernate.xml");
Configuration config = new Configuration();
config.configure(file);

    同时,Hibernate支持在程序中设置新的属性,比如我们在配置时不设置show_sql和format_sql两个属性,那么在程序中也可以设置,如下进行即可。
config.setProperty(Environment.SHOW_SQL, "true");
config.setProperty(Environment.FORMAT_SQL, "true");

    所有Hibernate中可配置的属性都是org.hibernate.cfg.Environment类中的一个静态成员变量。这样在程序中添加新的属性了。
    org.hibernate.cfg.Configuration类的作用就是解析配置信息和映射信息,之后创建SessionFactory对象,此时配置信息都绑定在SessionFactory中,Configuration就没有使用价值了。这部分的Hibernate源码也是比较好理解的。
    欢迎交流,希望对使用者有用。
  • 大小: 33.7 KB
  • 大小: 10.4 KB
  • 大小: 33.7 KB
8
0
分享到:
评论

相关推荐

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

    总的来说,通过Spring的`LocalSessionFactoryBean`和属性文件配置,我们可以实现不依赖`hibernate.cfg.xml`的SSH整合,这种方式更符合Spring提倡的声明式配置和依赖注入原则,有利于提高代码的可维护性和灵活性。

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

    本文将探讨如何使用`Properties`类来补充`hibernate.cfg.xml`的配置,以实现更加灵活和模块化的设置。 首先,`hibernate.cfg.xml`文件通常包含了以下关键元素: 1. **数据库连接信息**:如数据库URL、用户名、密码...

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

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

    hibernate的dtd 包含hibernate.properties

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

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

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

    Hibernate的配置文件

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

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

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

    springboot集成hibernate

    Spring Boot以其便捷的自动配置和简化Java应用开发而广受欢迎,而Hibernate作为Java领域中强大的对象关系映射工具,能够帮助我们高效地处理数据库操作。下面我们将详细介绍这个集成过程,以及在DAO层如何利用...

    简单配置hibernate

    在 Hibernate 框架中,配置文件主要有两种形式:`hibernate.properties` 和 `hibernate.cfg.xml`。两者的主要区别在于管理映射文件的方式。使用 `hibernate.cfg.xml` 文件时,可以直接在配置文件中添加或修改`hbm`...

    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非常全面总结文档

    Hibernate 的配置通常包括两个文件:hibernate.properties 和 hibernate.cfg.xml。hibernate.properties 用于设置连接池、二级缓存等信息,而 hibernate.cfg.xml 则用于配置实体映射和加载策略。通过 Configuration ...

    Hibernate配置文件.pdf

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

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

    `Configuration`类是Hibernate配置的核心,它负责读取并解析`hibernate.cfg.xml`和`hibernate.properties`文件中的配置信息,将这些信息转换为`Settings`对象,供`SessionFactory`创建时使用。 #### SessionFactory...

    Hibernate原理与应用 ppt

    配置文件通常有两个:hibernate.properties和hibernate.cfg.xml,用来设置数据库连接信息、方言、缓存等参数。例如,将方言配置从properties格式转换为XML格式: Properties: hibernate.dialect org.hibernate....

    hibernate的dtd文件

    通过`hibernate.properties`或`hibernate.cfg.xml`,我们可以控制Hibernate的行为和数据库交互;而`hibernate-mapping-3.0.dtd`则让我们能够清晰地定义对象关系映射,从而实现对象持久化。掌握这些知识,不仅可以...

    Eclipse上使用Hibernate

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

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

Global site tag (gtag.js) - Google Analytics