2.3.1 创建SessionFactory

为了创建一个SessionFactory,你在程序初始化的时候创建一个单实例的Configuration,这个对象用来指定映射文件的位置。配置完之后,这个Configuration对象被用来创建SessionFactory。一旦你成功创建SessionFactory之后,你就不再需要Configuration对象了。

下面的代码用来启动Hibernate:

Configuration cfg=new Configuration();

cfg.addResource(“hello/Message.hbm.xml”);

cfg.setProperties(System.getProperties());

SessionFactory sessions=cfg.buildSessionFactory();

映射文件的位置是相对于应用程序的classpath的。

按照约定,Hibernate的映射文件的后缀名都是hbm.xml。另外一个约定是每个类对应一个映射文件,如果把多个类的映射放到同一个文件中,那整个代码将变得无比混乱。

Hibernate推荐我们将类和它的映射文件放在同一个目录下,就像之前的Message类,需要将它的映射文件也放在hello文件下。如果我们写了另外一个持久化类,那么我们将为其定义属于它自己的映射文件。有些框架推荐几种管理映射文件的方式,例如Struts,它的配置文件struts-config.xml,当配置数据越来越多的时候,维护这样的文件将是一个噩梦。通过addResource方法来加载你需要的映射文件。当然,如果你按照我们刚才的建议来完成类和映射文件的话,你也可以通过addClass方法,把持久化类作为方法的参数就好了。

SessionFactory sessions = new Configuration().addClass(org.hibernate.aution.model.Item.class).setProperties(System.getProperties()).buildSessionFactory();

一般情况下,在你的程序中创建一个SessionFactory即可,除非你同时要支持多个数据库,这时你就需要多个SessionFactory,每个SessionFactory对应其中的一个数据库。

当然,配置Hibernate并不仅仅是找到它的映射文件的位置就行了,其实你需要做更多的事情,例如如何获得数据库的连接。关于Hibernate配置的选项很多,但是不用担心,很多配置都提供了默认的选项,只有一小部分需要你去手动修改。

为了能够指定你要修改的选项,你可以使用以下的技术

  • 为Configuration.setProperties方法传递一个java.util.Properties实例。
  • 设置系统属性java -Dproperty=value
  • 在classpath上放置一个hibernate.properties文件
  • 在hibernate.cfg.xml中包含属性

第一种和第二种放在只有在测试中才会被使用,通常情况下你会需要一个固定的配置文件。hibernate.cfg.xml和hibernate.properties的功能都是配置Hibernate,你可以根据自身的需要来选择使用其中的一种文件,甚至你也可以混用它们,在后面我们将看到这方面的例子。

一个不太常用的选项是可以在创建Session的时候提供一个JDBC的连接,这样你可不用指定任何关于数据库连接的选项,但是我们并不推荐这么做。

在所有的配置选项中,数据库连接的选项应该是最重要的。关于数据库连接的配置在不同的环境中是不一样的,在下面我们将分别进行说明。首先来看一下非管理环境。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值