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

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的方式

    继续在 LocalSessionFactoryBean 中配置,使用hibernateProperties属性继续来配置其他的属性,注意值是properties属性文件

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

    NULL 博文链接:https://elf8848.iteye.com/blog/340731

    Hibernate小例子

    正如其名,Configuration 类负责管理Hibernate 的配置信息。...这些属性在hibernate配置文件(hibernate.cfg.xml 或hibernate.properties)中加以设 定(参见前面“Hibernate配置”中的示例配置文件内容)。

    最简单的Hibernate工程

    一个最简单的Hibernate工程,可通过hibernate.cfg.xml或者hibernate.properties加载数据源并对对象操作,下载后可直接导入eclipse运行

    最简单Hibernate工程代码

    最简单的Hibernate工程代码,可通过hibernate.cfg.xml或者hibernate.properties加载数据源,此工程下载后可直接导入eclipse运行

    Hibernate使用技巧汇总

    两种配置文件: A.hibernate.cfg.xml 和 B.hibernate.properties A中可含映射文件的配置,而B中hard codes加映射文件。 A。Configuration config=new Configuration().config(); B. ...

    spring2.5 struts2.0 hibernate3.2.5 搭建的企业级开发基础模块

    Hibernate:spring.local.hibernate.cfg.xml Struts:struts.xml、struts.properties 配置很简单,用点心看就会了,多的不说了,好好享受咯 哦 忘记介绍了, 当中还有本人写的几个自定义标签:...

    Hibernate实践例子程序

    1) Hibernate全局配置文件,hibernate.properties或者hibernate.cfg.xml.。一般使用XML文件。 2) 数据O/R mapping 配置文件,也就是数据库中每一条记录的详细说明,包括field, PrimaryKey等。*.hbm.xml,*一般用...

    毕业设计+源码(项目管理系统)完整框架

    绝版作品!一切都只是曾经,神马都是浮云!...运行先改jdbc.properties和hibernate.cfg.xml里面的数据库配置!数据库最好事先存在。 再运行test包的testCreateDB-》testData(插入数据!)即可运行!

    hibernate_annotation_所需jar包

    myeclipse的自带hibernate jar包不支持注解;自己找的hibernate注解所需的jar包:hibernate-core;hibernate-annotation;hbm-cfg-xml;log4j.properties

    SSH代码生成工具 SSH代码生成器

    Hibernate3.2配置--> hibernate.cfg.xml JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置...

    hibernate-源代码-01

    另一种是XML 格式的配置文件, XML 配置文件的默认名称为 hibernate.cfg,xml。 上述两种格式的配置文件是等价的,具体使用哪个可以自由选择。 XML 格式的配置文件更易于修改,配置能力更强,当改变底层应用配置时不...

    Java框架SSH整合的所有配置文件

    内含有applicationContext.xml,c3p0-config.xml,c3p0-db.properties,hibernate.cfg.xml,log4j.properties,struts.xml,User.hbm.xml,pom.xml等等配置文件

Global site tag (gtag.js) - Google Analytics