`

Hibernate的几个术语

阅读更多
  Session接口

  Session接口对于Hibernate   开发人员来说是一个最重要的接口。然而在Hibernate中,实例化的Session是一个轻量级的类,创建和销毁它都不会占用很多资源。这在实际项目中确实很重要,因为在客户程序中,可能会不断地创建以及销毁Session对象,如果Session的开销太大,会给系统带来不良影响。但值得注意的是Session对象是非线程安全的,因此在你的设计中,最好是一个线程只创建一个Session对象。

  在Hibernate的设计者的头脑中,他们将session看作介于数据连接与事务管理一种中间接口。我们可以将session想象成一个持久对象的缓冲区,Hibernate能检测到这些持久对象的改变,并及时刷新数据库。我们有时也称Session是一个持久层管理器,因为它包含这一些持久层相关的操作,诸如存储持久对象至数据库,以及从数据库从获得它们。请注意,Hibernate   的session不同于JSP应用中的HttpSession。当我们使用session这个术语时,我们指的是Hibernate中的session,而我们以后会将HttpSesion对象称为用户session。

  SessionFactory   接口

  这里用到了一个设计模式――工厂模式,用户程序从工厂类SessionFactory中取得Session的实例。

  令你感到奇怪的是SessionFactory并不是轻量级的!实际上它的设计者的意图是让它能在整个应用中共享。典型地来说,一个项目通常只需要一个SessionFactory就够了,但是当你的项目要操作多个数据库时,那你必须为每个数据库指定一个SessionFactory。
SessionFactory在Hibernate中实际起到了一个缓冲区的作用,它缓冲了Hibernate自动生成的SQL语句和一些其它的映射数据,还缓冲了一些将来有可能重复利用的数据。

  Configuration   接口

  Configuration接口的作用是对Hibernate进行配置,以及对它进行启动。在Hibernate的启动过程中,Configuration类的实例首先定位映射文档的位置,读取这些配置,然后创建一个SessionFactory对象。

  虽然Configuration接口在整个Hibernate项目中只扮演着一个很小的角色,但它是启动hibernate时你所遇到的每一个对象。

  Transaction   接口

  Transaction接口是一个可选的API,你可以选择不使用这个接口,取而代之的是Hibernate的设计者自己写的底层事务处理代码。   Transaction接口是对实际事务实现的一个抽象,这些实现包括JDBC的事务、JTA中的UserTransaction、甚至可以是CORBA事务。之所以这样设计是能让开发者能够使用一个统一事务的操作界面,使得自己的项目可以在不同的环境和容器之间方便地移值。

  Query和Criteria接口

  Query接口让你方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL语言或本地数据库的SQL语句。Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。

  Criteria接口与Query接口非常类似,它允许你创建并执行面向对象的标准化查询。

  值得注意的是Query接口也是轻量级的,它不能在Session之外使用。

  Callback   接口  

  当一些有用的事件发生时――例如持久对象的载入、存储、删除时,Callback接口会通知Hibernate去接收一个通知消息。一般而言,Callback接口在用户程序中并不是必须的,但你要在你的项目中创建审计日志时,你可能会用到它。
分享到:
评论

相关推荐

    Struts与Hibernate结合

    5.2.2 几个术语 5.2.3 Java中如何解决国际化的问题: 5.2.4 一个简单的国际化程序 5.2.5 Web国际化 5.2.6 中文编码问题 5.3 Tomcat5.5中配置连接池和数据源 5.4 5.4 对象关联关系的映射(1对1)

    SpringBootBackend-master.zip

    故事有几个类别,如工程、洞察力、教程,而且类别可以轻松扩展。 故事最多可以有五个标签。(对标签的内容没有限制) 所有的故事都可以被所有的访问者访问,用户可以发表评论,将文章加入书签,或者喜欢这篇文章。 ...

    Java语言基础下载

    DOM以及广义的基于树的处理具有几个优点 399 文档对象模型(DOM)解析实例 402 DOM对象 404 DOM解析的例子: 406 SAX解析实例 409 DOM4J解析实例 412 JDOM解析实例 413 JAVA操纵XML 实例讲解 414 通过JAVA写数据到...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    因此,在具体设计实现该博客网站时,主要考虑了主流博客网站的几个主要功能:(1)博客的注册、登录验证功能(2) 网络用户通过关键字搜索博文功能(3) 最热门博客页面推荐浏览(4) 文章详细内容及相关评论显示(5) 博客...

    开源框架 Spring Gossip

    结合 JSTL <spring:bind> 标签 数据绑定的几个方法 <spring:message> 标签 <spring:transform> 标签 其它 View 层 除了 JSP View 层技术之外,您还可以使用其它的 View 层技术,或建立...

    Spring in Action(第2版)中文版

    15.2.6几个结束工作 15.3高级web流程技术 15.3.1使用decision状态 15.3.2提炼子流程并使用子状态 15.4集成springwebflow与其他框架 15.4.1jakartsstruts 15.4.2javaserverface 15.5小结 第16章集成其他web...

    Spring in Action(第二版 中文高清版).part2

    15.2.6 几个结束工作 15.3 高级Web流程技术 15.3.1 使用decision状态 15.3.2 提炼子流程并使用子状态 15.4 集成Spring Web Flow与其他框架 15.4.1 Jakarts Struts 15.4.2 JavaServer Face 15.5 小结 第16...

    Spring in Action(第二版 中文高清版).part1

    15.2.6 几个结束工作 15.3 高级Web流程技术 15.3.1 使用decision状态 15.3.2 提炼子流程并使用子状态 15.4 集成Spring Web Flow与其他框架 15.4.1 Jakarts Struts 15.4.2 JavaServer Face 15.5 小结 第16...

    DWR.xml配置文件说明书(含源码)

    有几个术语有必要理解,参数叫做converted,远程Bean叫做created.如果远程Bean A有个方法A.blah(B),那么你需要为A建立一个created,为B建立一个converted. 配置文件init部分声明那些用于建立远程bean和在方法调用中转...

    基于J2EE框架的个人博客系统项目毕业设计论...

    因此,在具体设计实现该博客网站时,主要考虑了主流博客网站的几个主要功能:(1)博客的注册、登录验证功能(2) 网络用户通过关键字搜索博文功能(3) 最热门博客页面推荐浏览(4) 文章详细内容及相关评论显示(5) 博客...

Global site tag (gtag.js) - Google Analytics