当前位置: 网学 > 编程文档 > JAVA > 正文

Hibernate 的原理与配置

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/08/04
对于开发者而言,你所要做的工作非常简单:只需从一个Configuration类中创建一个SessionFactory类就可以了。    创建一个SessionFactory对象    为了能创建一个SessionFactory对象,你必须在Hibernate初始化时创建一个Configuration类的实例,并将已写好的映射文件交由它处理。这样,Configuration对象就可以创建一个SessionFactory对象,当SessionFactory对象创建成功后,Configuration对象就没有用了,你可以简单地抛弃它。如下是示例代码:    Configuration cfg = new Configuration();   cfg.addResource("hello/Message.hbm.xml");   cfg.setProperties( System.getProperties() );   SessionFactory sessions = cfg.buildSessionFactory();    在以上代码中,Message.hb.xml这个映射文件的位置比较特殊,它与当前的classpath相关。例如classpath包含当前目录,那在上述代码中的Message.hbm.xml映射文件就可以保存在当前目录下的hello目录中。    作为一种约定,Hibernate的映射文件默认以.htm.xml作为其扩展名。另一个约定是坚持为每一个持久类写一个配置文件,想一想如果你将所有持久类的映射写入一个单独的配置文件中的话,那这个配置文件肯定非常庞大,不易维护。但这里又出现了一个新问题:如果为每个类写一个配置文件的话,这么多的配置文件应该存放在哪里呢?    Hibernate推荐你将每个映射文件保存在与持久类相同的目录下,并且与持久类同名。例如我们第一个示例程序中的Message持久类放在hello目录下,那你必须在这个目录下存放名为Message.hbm.xml的映射文件。这样一个持久类都有自己的一个映射文件,避免了出现像struts项目中的“struts-config.xml地狱”的情况。如果你不遵循这种规定,那你必须手动地用addResource()方法将一个个的映射文件载入;但你如果遵循这种规定,那你可以方便地用addClass()方法同时将持久类和它的映射文件载入,以下是体现这种便利性的示例代码:    SessionFactory sessions = new Configuration()   .addClass(org.hibernate.auction.model.Item.class)   .addClass(org.hibernate.auction.model.Category.class)   .addClass(org.hibernate.auction.model.Bid.class)   .setProperties( System.getProperties() )   .buildSessionFactory();    当然,Hibernate的映射文件还有很多其它的配置选项,比如数据库连接的设定,或是能够改变Hibernate运行时行为的一些设定。所有的设置可能是非常庞杂的,足以让你喘不过气来,但是不必担心,因为Hibernate为绝大多数值都设定了一个合理缺省值,你只需要修改这些配置文件中的极小一部分值。    你可以通过以下几种方式来修改Hibernate的系统配置参数:    · 将一个Java.util.Properties实例作为参数传给Configuration类的setProperties()方法。    · 在Hibernate启动时用Java –Dproperty=value的方式设置值。    · 在classpath可以找到的路径下创建一个名为hibernate.properties的配置文件。    · 在classpath可以找到的路径下创建一个名为hibernate.cfg.xml的文件,并在其<property>标签中定义属性值。    以上就是对Hibernate的一个大致介绍,如果你想知道得更多,那本文还是远远不够的,但有一点是毫无疑问的:它的确是一个非常优秀的持久层解决方案!

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号