Hibernate有五大核心接口,分别是:Session Transaction Query SessionFactoryConfiguration 。这五个接口构成了Hibernate运行的基本要素,可以执行存取,持久化,事务管理等操作。这五个接口可以位于系统的业务逻辑层和持久化层。下面是一张Hibernate的关系图:

Session接口:

Session接口 Session 接口对于Hibernate 开发人员来说是一个最重要的接口。然而在Hibernate中,实例化的Session是一个轻量级的类,创建和销毁它都不会占用很多资源。这在实际项目中确实很重要,因为在客户程序中,可能会不断地创建以及销毁Session对象,如果Session 的开销太大,会给系统带来不良影响。但是Session对象是非线程安全的,因此在你的设计中,最好是一个线程只创建一个Session对象。 session可以看作介于数据连接与事务管理一种中间接口。我们可以将session想象成一个持久对象的缓冲区,Hibernate能检测到这些持久对象的改变,并及时刷新数据库。我们有时也称Session是一个持久层管理器,因为它包含这一些持久层相关的操作, 诸如存储持久对象至数据库,以及从数据库从获得它们。需要注意的是,Hibernate的session不同于JSP 应用中的HttpSession。当我们使用session这个术语时,我们指的Hibernate 中的session,而我们以后会将HttpSesion 对象称为用户session。

SessionFactory接口:

SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。

Transaction接口

Transaction接口负责事务相关的操作,一般在Hibernate的增删改中出现,但是使用Hibernate的人一般使用Spring去管理事务。

Query接口

Query负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。它的返回值一般是List。需要自己转换。

Configuration接口:

Configuration对象用于配置并根启动Hibernate。Hibernate应用通过Configuration实例来指定对象—关系映射文件的位置或者动态配置Hibernate的属性,然后创建SessionFactory实例。我们可以查看Configuration的源代码。

最新文章

  1. The Java Enum: A Singleton Pattern [reproduced]
  2. mysql问题
  3. Msbuild项目集成右键菜单编译
  4. Hibernate部署问题总结
  5. Deep Learning 9_深度学习UFLDL教程:linear decoder_exercise(斯坦福大学深度学习教程)
  6. [转]asp.net的ajax以及json
  7. C语言第4天循环,流程控制。
  8. Struts2基本包作用详解
  9. display:none与visible:hidden区别
  10. ORACLE之PACKAGE-游标变量
  11. Android开发之ListView-BaseAdapter的使用
  12. oracle查看所有表及字段
  13. iOS开发——Localizable.strings
  14. bootstrap 栅格系统 HTTP协议 软件架构 B/S C/S 常见的WEB服务器
  15. [INet] WebSocket 协议中的数据收发过程
  16. 简单的自定义ViewGroup
  17. 阿里云CentOS 7无外网IP的ECS访问外网(配置网关服务器)
  18. 【CH5104】I-country 线性dp+路径输出
  19. jQuery validate and groups - how to avoid errorPlacement usage?
  20. PAT A1110 Complete Binary Tree (25 分)——完全二叉树,字符串转数字

热门文章

  1. Angular $http解析通过接口获得的json数据
  2. Android IOS WebRTC 音视频开发总结(六七)-- 在线教育虽火要做好其实不容易
  3. 微信的 JSSDK
  4. file access , argc, argv[ ]
  5. MySQL CMake参数说明手册
  6. delphi对象赋值
  7. HTML5基础总结
  8. redis密码管理
  9. poj 2446 Chessboard (二分匹配)
  10. hdu 5666 (大数乘法) Segment