SlideShare a Scribd company logo
1 of 14
ORM 框架 —— Hibernate3.3

         Hibernate核心 A PI
Hibernate简介

 Hibernate是一个面向 Java 环境的对象 / 关系数据库
  映射工具。
 Hibernate不仅仅管理 Java 类到数据库表的映射(包
  括 Java 数据类型到 S QL 数据类型的映射),还提
  供数据查询和获取数据的方法,可以大幅度减少
  开发时人工使用 S QL 和 JDB C 处理数据的时间。
 Hibernate的目标是对于开发者通常的数据持久化相
  关的编程任务,解放其中的 95% 。




www.sodi.com.cn
“ 三个准备 ”—— 导入 Hibernate库

 解压缩从 Hibernate官方网站
  ( htp://www.hibernat
        t            e.org/)下载的 Hibernate发布包,
  我们使用 3.3.2GA 。
 将下载目录 /hibernate3.jar 和 /lib/required 下的
  Hibernate运行时必须的包加入项目的 classpath 中。
 另外,为了便于进行日志处理,还需要从 S LF4J
  官方网站( htp://www.sf4j
                t          l .org/ )下载 slf4j-
  nop-1.5.8.jar ,并加入项目的 classpath 中。
 最后,将对应数据库的 JDB C 驱动包加入项目的
  classpath 中。


www.sodi.com.cn
“ 三个准备 ”— — 添加 Hibernate配置文件

 建立 Hibernate配置文件: hibernate.cfg.xm 。
                                    l
      从参考文档中 copy 。
      修改对应的数据库连接配置。
      注释掉暂时用不上的内容。




www.sodi.com.cn
“ 三个准备 ”—— 添加实体类和映射文件

 实体类是指其实例需要被 Hibernate持久化到数据
  库中的类,符合 JavaB ean 的规范。
 Hibernate采用 XML 格式的文件来指定对象和关系
  数据之间的映射。在运行时, Hibernate将根据这
  个映射文件来生成各种 S QL 语句。




www.sodi.com.cn
使用 Hibernate 的 “ 七个步骤 ”

                                        1、
                                    Configuration

                                                 2、
           7、
                                                 创建
         关闭 Session
                                            SessionFactory


                                                  3、
            6、
                                                 打开
           提交事务
                                                Session

                           5、          4、
                                     开始一个事务
                       持久化操作
                  save/update/delete/find


www.sodi.com.cn
Dem — 第一个 Hibernate应用程序
   o—

 1. 创建 Java 项目。
 2. 在项目中引入 Hibernate。
 3. 创建 S COTT 用户的 DE PT 表对应的持久化类
  Dept 。
 4. 创建 hibernate.cfg.xm 文件并配置有效的数据库
                        l
  连接。
 5. 创建一个简单的实体映射文件:
  Dept.hbm l 。
          .xm
 6. 将实体映射文件加入到 hibernate配置文件中。
 7. 进行简单的测试( session.save( ) 方法)。

www.sodi.com.cn
简单分析 Hibernate执行过程


    创建和销毁都相当耗
    费资源,通常一个系         Configuration           Hibernate.cfg.xml
    统内一个数据库只创
       建一个                  创建
                     SessionFactory           FWXX.cfg.xml
                                               Dept.hbm.xml
     类似于 JDBC 中的
                            创建
      Connection
                         Session
                                         开始
                            执行
                                                 Transaction
复杂的查询操作稍后介绍        save delete update get

                            tx.commit()
                            session.close()

                         结束

www.sodi.com.cn
Hibernate Core A PI ——Configuration

 进行配置信息的管理。
 启动 Hibernate。
 创建 S essionFactory 对象。




www.sodi.com.cn
Hibernate Core A PI —— S essionFactory

 初始化 Hibernate,充当数据存储源的代理。
 创建和管理 S ession 对象。
 通常情况下,每个应用只需要一个
  S essionFactory ,除非要访问多个数据库的情况。
 管理 Hibernate二级缓存。




www.sodi.com.cn
Hibernate Core A PI ——S ession

 管理一个数据库的任务单元。
 负责保存、更新、删除、加载和查询对象。
 管理 Hibernate一级缓存。




www.sodi.com.cn
Hibernate Core A PI ——Transaction

 Hibernate的数据库事务接口,对底层的事务接口做
  了封装,有助于在应用在不同的环境和容器中一
  致。




www.sodi.com.cn
Hibernate Core A PI —— Query

 执行数据库查询。




www.sodi.com.cn
www.sodi.com.cn

More Related Content

What's hot

Nuget iis6 虛擬目錄Config錯誤排除
Nuget iis6 虛擬目錄Config錯誤排除Nuget iis6 虛擬目錄Config錯誤排除
Nuget iis6 虛擬目錄Config錯誤排除leeju lee
 
D2-ETao-show
D2-ETao-showD2-ETao-show
D2-ETao-showleneli
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应zhaolinjnu
 
Hadoop监控
Hadoop监控Hadoop监控
Hadoop监控snakebbf
 
Ch05 Servlet進階API、過濾器與傾聽器
Ch05 Servlet進階API、過濾器與傾聽器Ch05 Servlet進階API、過濾器與傾聽器
Ch05 Servlet進階API、過濾器與傾聽器Justin Lin
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門Will Huang
 
发布系统安装说明
发布系统安装说明发布系统安装说明
发布系统安装说明Yiwei Ma
 
MySQL快速入门与提高
MySQL快速入门与提高MySQL快速入门与提高
MySQL快速入门与提高mysqlpub
 
Apache服务之虚拟目录详解.pdf
Apache服务之虚拟目录详解.pdfApache服务之虚拟目录详解.pdf
Apache服务之虚拟目录详解.pdfwiyixi
 
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理Justin Lin
 
4 hibernate对象管理和缓存结构
4 hibernate对象管理和缓存结构4 hibernate对象管理和缓存结构
4 hibernate对象管理和缓存结构Zelin Wang
 
nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用dong yuwei
 
MySQL和IO(上)
MySQL和IO(上)MySQL和IO(上)
MySQL和IO(上)Feng Yu
 
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應Justin Lin
 

What's hot (18)

Nuget iis6 虛擬目錄Config錯誤排除
Nuget iis6 虛擬目錄Config錯誤排除Nuget iis6 虛擬目錄Config錯誤排除
Nuget iis6 虛擬目錄Config錯誤排除
 
MySQL aio
MySQL aioMySQL aio
MySQL aio
 
D2-ETao-show
D2-ETao-showD2-ETao-show
D2-ETao-show
 
Mysql Replication
Mysql ReplicationMysql Replication
Mysql Replication
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应
 
Hadoop监控
Hadoop监控Hadoop监控
Hadoop监控
 
Ch05 Servlet進階API、過濾器與傾聽器
Ch05 Servlet進階API、過濾器與傾聽器Ch05 Servlet進階API、過濾器與傾聽器
Ch05 Servlet進階API、過濾器與傾聽器
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
 
发布系统安装说明
发布系统安装说明发布系统安装说明
发布系统安装说明
 
MySQL快速入门与提高
MySQL快速入门与提高MySQL快速入门与提高
MySQL快速入门与提高
 
Apache服务之虚拟目录详解.pdf
Apache服务之虚拟目录详解.pdfApache服务之虚拟目录详解.pdf
Apache服务之虚拟目录详解.pdf
 
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
 
中软
中软中软
中软
 
4 hibernate对象管理和缓存结构
4 hibernate对象管理和缓存结构4 hibernate对象管理和缓存结构
4 hibernate对象管理和缓存结构
 
摘星
摘星摘星
摘星
 
nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用
 
MySQL和IO(上)
MySQL和IO(上)MySQL和IO(上)
MySQL和IO(上)
 
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
 

Viewers also liked

11 hibernate 组件映射
11 hibernate 组件映射11 hibernate 组件映射
11 hibernate 组件映射Zelin Wang
 
10 hibernate 多对多关系映射
10 hibernate 多对多关系映射10 hibernate 多对多关系映射
10 hibernate 多对多关系映射Zelin Wang
 
Plan - innovative måter å møte unge på
Plan - innovative måter å møte unge påPlan - innovative måter å møte unge på
Plan - innovative måter å møte unge påDelta-prosjektet
 
Kommune + unge + sosiale medier = sant
Kommune + unge + sosiale medier = santKommune + unge + sosiale medier = sant
Kommune + unge + sosiale medier = santDelta-prosjektet
 
7 hibernate最佳实践
7 hibernate最佳实践7 hibernate最佳实践
7 hibernate最佳实践Zelin Wang
 
01 orm概述及持久化介绍
01 orm概述及持久化介绍01 orm概述及持久化介绍
01 orm概述及持久化介绍Zelin Wang
 
6 事务和并发控制
6 事务和并发控制6 事务和并发控制
6 事务和并发控制Zelin Wang
 
3 hibernate映射元素和类型
3 hibernate映射元素和类型3 hibernate映射元素和类型
3 hibernate映射元素和类型Zelin Wang
 
9 hibernate 一对多关系映射
9 hibernate 一对多关系映射9 hibernate 一对多关系映射
9 hibernate 一对多关系映射Zelin Wang
 
12 hibernate 集合映射
12 hibernate 集合映射12 hibernate 集合映射
12 hibernate 集合映射Zelin Wang
 
15 hibernate hql查询2
15 hibernate hql查询215 hibernate hql查询2
15 hibernate hql查询2Zelin Wang
 
8 hibernate 一对一关系映射
8 hibernate 一对一关系映射8 hibernate 一对一关系映射
8 hibernate 一对一关系映射Zelin Wang
 
13 hibernate 继承映射
13 hibernate 继承映射13 hibernate 继承映射
13 hibernate 继承映射Zelin Wang
 
16 hibernate criteria查询
16 hibernate criteria查询16 hibernate criteria查询
16 hibernate criteria查询Zelin Wang
 
youth civic engagement in social media
youth civic engagement in social mediayouth civic engagement in social media
youth civic engagement in social mediaDelta-prosjektet
 
14 hibernate hql查询1
14 hibernate hql查询114 hibernate hql查询1
14 hibernate hql查询1Zelin Wang
 

Viewers also liked (17)

11 hibernate 组件映射
11 hibernate 组件映射11 hibernate 组件映射
11 hibernate 组件映射
 
10 hibernate 多对多关系映射
10 hibernate 多对多关系映射10 hibernate 多对多关系映射
10 hibernate 多对多关系映射
 
Plan - innovative måter å møte unge på
Plan - innovative måter å møte unge påPlan - innovative måter å møte unge på
Plan - innovative måter å møte unge på
 
Kommune + unge + sosiale medier = sant
Kommune + unge + sosiale medier = santKommune + unge + sosiale medier = sant
Kommune + unge + sosiale medier = sant
 
7 hibernate最佳实践
7 hibernate最佳实践7 hibernate最佳实践
7 hibernate最佳实践
 
01 orm概述及持久化介绍
01 orm概述及持久化介绍01 orm概述及持久化介绍
01 orm概述及持久化介绍
 
VG og unge brukere
VG og unge brukere VG og unge brukere
VG og unge brukere
 
6 事务和并发控制
6 事务和并发控制6 事务和并发控制
6 事务和并发控制
 
3 hibernate映射元素和类型
3 hibernate映射元素和类型3 hibernate映射元素和类型
3 hibernate映射元素和类型
 
9 hibernate 一对多关系映射
9 hibernate 一对多关系映射9 hibernate 一对多关系映射
9 hibernate 一对多关系映射
 
12 hibernate 集合映射
12 hibernate 集合映射12 hibernate 集合映射
12 hibernate 集合映射
 
15 hibernate hql查询2
15 hibernate hql查询215 hibernate hql查询2
15 hibernate hql查询2
 
8 hibernate 一对一关系映射
8 hibernate 一对一关系映射8 hibernate 一对一关系映射
8 hibernate 一对一关系映射
 
13 hibernate 继承映射
13 hibernate 继承映射13 hibernate 继承映射
13 hibernate 继承映射
 
16 hibernate criteria查询
16 hibernate criteria查询16 hibernate criteria查询
16 hibernate criteria查询
 
youth civic engagement in social media
youth civic engagement in social mediayouth civic engagement in social media
youth civic engagement in social media
 
14 hibernate hql查询1
14 hibernate hql查询114 hibernate hql查询1
14 hibernate hql查询1
 

Similar to 2 hibernate核心api

NHibernate分享(1) share
NHibernate分享(1) shareNHibernate分享(1) share
NHibernate分享(1) shareXu Huang
 
中远公司 Java培训资料
中远公司  Java培训资料中远公司  Java培训资料
中远公司 Java培训资料yiditushe
 
Workshop Sutdio3(1)
Workshop Sutdio3(1)Workshop Sutdio3(1)
Workshop Sutdio3(1)wangjiaz
 
Liferay环境搭建
Liferay环境搭建Liferay环境搭建
Liferay环境搭建donotbeevil
 
Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程yiditushe
 
Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程appollo0312
 
六步教你学会简单Rmi
六步教你学会简单Rmi六步教你学会简单Rmi
六步教你学会简单Rmiyiditushe
 
中远公司 Java培训资料
中远公司  Java培训资料中远公司  Java培训资料
中远公司 Java培训资料yiditushe
 
Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解zany_hui
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型Jackson Tian
 
Flex 4.5 action custom component development
Flex 4.5 action custom component developmentFlex 4.5 action custom component development
Flex 4.5 action custom component developmentjexchan
 
X Fire开发指南
X Fire开发指南X Fire开发指南
X Fire开发指南yiditushe
 
IoTDB Quick Start
IoTDB Quick StartIoTDB Quick Start
IoTDB Quick StartJialinQiao
 
Flex 入门培训
Flex 入门培训Flex 入门培训
Flex 入门培训7rice
 
GlassFish特性介绍
GlassFish特性介绍GlassFish特性介绍
GlassFish特性介绍Jim Jiang
 
基于Ivy ant的java构建初探
基于Ivy ant的java构建初探基于Ivy ant的java构建初探
基于Ivy ant的java构建初探Anson Yang
 
網站設計100步
網站設計100步網站設計100步
網站設計100步evercislide
 
Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导yiditushe
 

Similar to 2 hibernate核心api (20)

NHibernate分享(1) share
NHibernate分享(1) shareNHibernate分享(1) share
NHibernate分享(1) share
 
Exodus2 大局观
Exodus2 大局观Exodus2 大局观
Exodus2 大局观
 
中远公司 Java培训资料
中远公司  Java培训资料中远公司  Java培训资料
中远公司 Java培训资料
 
Workshop Sutdio3(1)
Workshop Sutdio3(1)Workshop Sutdio3(1)
Workshop Sutdio3(1)
 
Liferay环境搭建
Liferay环境搭建Liferay环境搭建
Liferay环境搭建
 
Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程
 
Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程
 
六步教你学会简单Rmi
六步教你学会简单Rmi六步教你学会简单Rmi
六步教你学会简单Rmi
 
中远公司 Java培训资料
中远公司  Java培训资料中远公司  Java培训资料
中远公司 Java培训资料
 
Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 
Flex 4.5 action custom component development
Flex 4.5 action custom component developmentFlex 4.5 action custom component development
Flex 4.5 action custom component development
 
X Fire开发指南
X Fire开发指南X Fire开发指南
X Fire开发指南
 
Hibernate教程
Hibernate教程Hibernate教程
Hibernate教程
 
IoTDB Quick Start
IoTDB Quick StartIoTDB Quick Start
IoTDB Quick Start
 
Flex 入门培训
Flex 入门培训Flex 入门培训
Flex 入门培训
 
GlassFish特性介绍
GlassFish特性介绍GlassFish特性介绍
GlassFish特性介绍
 
基于Ivy ant的java构建初探
基于Ivy ant的java构建初探基于Ivy ant的java构建初探
基于Ivy ant的java构建初探
 
網站設計100步
網站設計100步網站設計100步
網站設計100步
 
Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导
 

2 hibernate核心api

  • 1. ORM 框架 —— Hibernate3.3 Hibernate核心 A PI
  • 2. Hibernate简介  Hibernate是一个面向 Java 环境的对象 / 关系数据库 映射工具。  Hibernate不仅仅管理 Java 类到数据库表的映射(包 括 Java 数据类型到 S QL 数据类型的映射),还提 供数据查询和获取数据的方法,可以大幅度减少 开发时人工使用 S QL 和 JDB C 处理数据的时间。  Hibernate的目标是对于开发者通常的数据持久化相 关的编程任务,解放其中的 95% 。 www.sodi.com.cn
  • 3. “ 三个准备 ”—— 导入 Hibernate库  解压缩从 Hibernate官方网站 ( htp://www.hibernat t e.org/)下载的 Hibernate发布包, 我们使用 3.3.2GA 。  将下载目录 /hibernate3.jar 和 /lib/required 下的 Hibernate运行时必须的包加入项目的 classpath 中。  另外,为了便于进行日志处理,还需要从 S LF4J 官方网站( htp://www.sf4j t l .org/ )下载 slf4j- nop-1.5.8.jar ,并加入项目的 classpath 中。  最后,将对应数据库的 JDB C 驱动包加入项目的 classpath 中。 www.sodi.com.cn
  • 4. “ 三个准备 ”— — 添加 Hibernate配置文件  建立 Hibernate配置文件: hibernate.cfg.xm 。 l  从参考文档中 copy 。  修改对应的数据库连接配置。  注释掉暂时用不上的内容。 www.sodi.com.cn
  • 5. “ 三个准备 ”—— 添加实体类和映射文件  实体类是指其实例需要被 Hibernate持久化到数据 库中的类,符合 JavaB ean 的规范。  Hibernate采用 XML 格式的文件来指定对象和关系 数据之间的映射。在运行时, Hibernate将根据这 个映射文件来生成各种 S QL 语句。 www.sodi.com.cn
  • 6. 使用 Hibernate 的 “ 七个步骤 ” 1、 Configuration 2、 7、 创建 关闭 Session SessionFactory 3、 6、 打开 提交事务 Session 5、 4、 开始一个事务 持久化操作 save/update/delete/find www.sodi.com.cn
  • 7. Dem — 第一个 Hibernate应用程序 o—  1. 创建 Java 项目。  2. 在项目中引入 Hibernate。  3. 创建 S COTT 用户的 DE PT 表对应的持久化类 Dept 。  4. 创建 hibernate.cfg.xm 文件并配置有效的数据库 l 连接。  5. 创建一个简单的实体映射文件: Dept.hbm l 。 .xm  6. 将实体映射文件加入到 hibernate配置文件中。  7. 进行简单的测试( session.save( ) 方法)。 www.sodi.com.cn
  • 8. 简单分析 Hibernate执行过程 创建和销毁都相当耗 费资源,通常一个系 Configuration Hibernate.cfg.xml 统内一个数据库只创 建一个 创建 SessionFactory FWXX.cfg.xml Dept.hbm.xml 类似于 JDBC 中的 创建 Connection Session 开始 执行 Transaction 复杂的查询操作稍后介绍 save delete update get tx.commit() session.close() 结束 www.sodi.com.cn
  • 9. Hibernate Core A PI ——Configuration  进行配置信息的管理。  启动 Hibernate。  创建 S essionFactory 对象。 www.sodi.com.cn
  • 10. Hibernate Core A PI —— S essionFactory  初始化 Hibernate,充当数据存储源的代理。  创建和管理 S ession 对象。  通常情况下,每个应用只需要一个 S essionFactory ,除非要访问多个数据库的情况。  管理 Hibernate二级缓存。 www.sodi.com.cn
  • 11. Hibernate Core A PI ——S ession  管理一个数据库的任务单元。  负责保存、更新、删除、加载和查询对象。  管理 Hibernate一级缓存。 www.sodi.com.cn
  • 12. Hibernate Core A PI ——Transaction  Hibernate的数据库事务接口,对底层的事务接口做 了封装,有助于在应用在不同的环境和容器中一 致。 www.sodi.com.cn
  • 13. Hibernate Core A PI —— Query  执行数据库查询。 www.sodi.com.cn

Editor's Notes

  1. 对于这一节,《精通 Hibernate 》第二章 Hibernate 入门要好好看一下。
  2. 在今日的企业环境中,把面向对象的软件和关系数据库一起使用可能是相当麻烦、浪费时间的。 Hibernate 是一个面向 Java 环境的对象 / 关系数据库映射工具。对象 / 关系数据库映射 (object/relational mapping (ORM)) 这个术语表示一种技术,用来把对象模型表示的对象映射到基于 SQL 的关系模型数据结构中去。 Hibernate 不仅仅管理 Java 类到数据库表的映射(包括 Java 数据类型到 SQL 数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用 SQL 和 JDBC 处理数据的时间。 Hibernate 的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的 95% 。对于以数据为中心的程序来说 , 它们往往只在数据库中使用存储过程来实现商业逻辑 ,Hibernate 可能不是最好的解决方案 ; 对于那些在基于 Java 的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用, Hibernate 是最有用的。不管怎样, Hibernate 一定可以帮助你消除或者包装那些针对特定厂商的 SQL 代码,并且帮你把结果集从表格式的表示形式转换到一系列的对象去。
  3. 讲解说明: 简要说明 Hibernate/lib 的结构。 简要说明导入的这些 jar 包的作用。 使用以自定义库的方式加入项目 classpath 。 Hibernate3.2  核心包作用 包    作用    说明 jta.jar     标准的 JTA API     必要 commons-logging.jar     日志功能    必要 commons-collections.jar     集合类    必要 antlr.jar    Another Tool for Language Recognition(antlr)     必要 dom4j.jar    XML 配置和映射解释器    必要  Hibernate3.jar     核心库    必要 asm.jar    ASM 字节码库    如果使用“ cglib” 则必要 asm-attrs.jar    ASM 字节码库    如果使用“ cglib” 则必要 ehcache.jar    EHCache 缓存    如果没有其它的缓存,则它是必要的 cglib.jar    CGLIB  字节码解释器    如果使用“ cglib” 则必要
  4. 可以使用 SCOTT 用户的 BONUS 表。 创建持久化类需要注意的地方,可以参考《精通 Hibernate 》 P47 。 Hibernate 配置文件和实体映射文件全部从原始发布包中去取。 实体映射文件在这里简单讲一下,到第三章再着重讲。 关于第一个 Hibernate 应用程序,可以参考《 Hibernate_Reference 》里面的 Hibernate 入门一章。
  5. Configuration 接口的作用是对 Hibernate 进行配置,以及对它进行启动。在 Hibernate 的启动 过程中, Configuration 类的实例首先定位映射文档的位置,读取这些配置,然后创建一个 SessionFactory 对象。 虽然 Configuration 接口在整个 Hibernate 项目中只扮演着一个很小的角色,但它是启动 Hibernate 时你所遇到的每一个对象。 在讲 Configuration 对象的时候,把方法链的概念引入进来。
  6. 这里用到了一个设计模式――工厂模式,用户程序从工厂类 SessionFactory 中取得 Session 的 实例。令你感到奇怪的是 SessionFactory 并不是轻量级的!实际上它的设计者的意图是让它能在整个应用中共享。典型地来说,一个项目通常只需要一个 SessionFactory 就够了,但是当你的项目要操作多个数据库时,那你必须为每个数据库指定一个 SessionFactory 。 SessionFactory 在 Hibernate 中实际起到了一个缓冲区的作用,它缓冲了 Hibernate 自动生成的 SQL 语句和一些其它的映射数据,还缓冲了一些将来有可能重复利用的数据。 在讲 SessionFactory 的时候,把重量级对象的概念引入一下。
  7. 对于 Hibernate 开发人员来说是一个最重要的接口。然而在 Hibernate 中,实例化的 Session 是一个轻量级的类,创建和销毁它都不会占用很多资源。这在实际项目中确实很重要,因为在客户程序中,可能会不断地创建以及销毁 Session 对象,如果 Session 的开销太大,会给系统带来不良影响。但值得注意的是 Session 对象是非线程安全的,因此在你的设计中,最好是一个 线程只创建一个 Session 对象。 在 Hibernate 的设计者的头脑中,他们将 session 看作介于数据连接与事务管理一种中间接口。 我们可以将 session 想象成一个持久对象的缓冲区, Hibernate 能检测到这些持久对象的改变,并及时刷新数据库。我们有时也称 Session 是一个持久层管理器,因为它包含这一些持久层相关的操作, 诸如存储持久对象至数据库,以及从数据库从获得它们。请注意, Hibernate 的 session 不同于 JSP 应用中的 HttpSession 。当我们使用 session 这个术语时,我们指的 Hibernate 中的 session ,而我们以后会将 HttpSession 对象称为用户 session 。 在讲 Session 的时候,把轻量级对象的概念引入一下,并和重量级对象 SessionFactory 做对比。
  8. Transaction 接口是一个可选的 API ,你可以选择不使用这个接口,取而代之的是 Hibernate 的设计者自己写的底层事务处理代码。 Transaction 接口是对实际事务实现的一个抽象,这些实现包 括 JDBC 的事务、 JTA 中的 UserTransaction 、甚至可以是 CORBA 事务。之所以这样设计是能让开发者能够使用一个统一事务的操作界面,使得自己的项目可以在不同的环境和容器之间方便地移值。