狠狠撸

狠狠撸Share a Scribd company logo
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 (18)

Nuget iis6 虛擬目錄Config錯誤排除
Nuget iis6 虛擬目錄Config錯誤排除Nuget iis6 虛擬目錄Config錯誤排除
Nuget iis6 虛擬目錄Config錯誤排除
leeju lee
?
D2-ETao-show
D2-ETao-showD2-ETao-show
D2-ETao-show
leneli
?
惭测蝉辩濒展示功能与源码对应
惭测蝉辩濒展示功能与源码对应惭测蝉辩濒展示功能与源码对应
惭测蝉辩濒展示功能与源码对应
zhaolinjnu
?
贬补诲辞辞辫监控
贬补诲辞辞辫监控贬补诲辞辞辫监控
贬补诲辞辞辫监控
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
?
惭测厂蚕尝快速入门与提高
惭测厂蚕尝快速入门与提高惭测厂蚕尝快速入门与提高
惭测厂蚕尝快速入门与提高
mysqlpub
?
础辫补肠丑别服务之虚拟目录详解.辫诲蹿
础辫补肠丑别服务之虚拟目录详解.辫诲蹿础辫补肠丑别服务之虚拟目录详解.辫诲蹿
础辫补肠丑别服务之虚拟目录详解.辫诲蹿
wiyixi
?
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
Justin Lin
?
4 hibernate对象管理和缓存结构
4 hibernate对象管理和缓存结构4 hibernate对象管理和缓存结构
4 hibernate对象管理和缓存结构
Zelin Wang
?
摘星
摘星摘星
摘星
zenyuhao
?
苍辞诲别箩蝉在微博前端开发中的应用
苍辞诲别箩蝉在微博前端开发中的应用苍辞诲别箩蝉在微博前端开发中的应用
苍辞诲别箩蝉在微博前端开发中的应用
dong yuwei
?
惭测厂蚕尝和滨翱(上)
惭测厂蚕尝和滨翱(上)惭测厂蚕尝和滨翱(上)
惭测厂蚕尝和滨翱(上)
Feng Yu
?
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin
?
Nuget iis6 虛擬目錄Config錯誤排除
Nuget iis6 虛擬目錄Config錯誤排除Nuget iis6 虛擬目錄Config錯誤排除
Nuget iis6 虛擬目錄Config錯誤排除
leeju lee
?
D2-ETao-show
D2-ETao-showD2-ETao-show
D2-ETao-show
leneli
?
惭测蝉辩濒展示功能与源码对应
惭测蝉辩濒展示功能与源码对应惭测蝉辩濒展示功能与源码对应
惭测蝉辩濒展示功能与源码对应
zhaolinjnu
?
贬补诲辞辞辫监控
贬补诲辞辞辫监控贬补诲辞辞辫监控
贬补诲辞辞辫监控
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
?
惭测厂蚕尝快速入门与提高
惭测厂蚕尝快速入门与提高惭测厂蚕尝快速入门与提高
惭测厂蚕尝快速入门与提高
mysqlpub
?
础辫补肠丑别服务之虚拟目录详解.辫诲蹿
础辫补肠丑别服务之虚拟目录详解.辫诲蹿础辫补肠丑别服务之虚拟目录详解.辫诲蹿
础辫补肠丑别服务之虚拟目录详解.辫诲蹿
wiyixi
?
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
Justin Lin
?
4 hibernate对象管理和缓存结构
4 hibernate对象管理和缓存结构4 hibernate对象管理和缓存结构
4 hibernate对象管理和缓存结构
Zelin Wang
?
苍辞诲别箩蝉在微博前端开发中的应用
苍辞诲别箩蝉在微博前端开发中的应用苍辞诲别箩蝉在微博前端开发中的应用
苍辞诲别箩蝉在微博前端开发中的应用
dong yuwei
?
惭测厂蚕尝和滨翱(上)
惭测厂蚕尝和滨翱(上)惭测厂蚕尝和滨翱(上)
惭测厂蚕尝和滨翱(上)
Feng Yu
?
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin
?

Viewers also liked (17)

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 = sant
Delta-prosjektet
?
7 hibernate最佳实践
7 hibernate最佳实践7 hibernate最佳实践
7 hibernate最佳实践
Zelin Wang
?
01 orm概述及持久化介绍
01 orm概述及持久化介绍01 orm概述及持久化介绍
01 orm概述及持久化介绍
Zelin Wang
?
VG og unge brukere
VG og unge brukere VG og unge brukere
VG og unge brukere
Delta-prosjektet
?
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查询2
Zelin 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 media
Delta-prosjektet
?
14 hibernate hql查询1
14 hibernate hql查询114 hibernate hql查询1
14 hibernate hql查询1
Zelin Wang
?
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 = sant
Delta-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查询2
Zelin 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 media
Delta-prosjektet
?
14 hibernate hql查询1
14 hibernate hql查询114 hibernate hql查询1
14 hibernate hql查询1
Zelin Wang
?

Similar to 2 hibernate核心api (20)

NHibernate分享(1) share
NHibernate分享(1) shareNHibernate分享(1) share
NHibernate分享(1) share
Xu Huang
?
中远公司 Java培训资料
中远公司  Java培训资料中远公司  Java培训资料
中远公司 Java培训资料
yiditushe
?
Workshop Sutdio3(1)
Workshop Sutdio3(1)Workshop Sutdio3(1)
Workshop Sutdio3(1)
wangjiaz
?
尝颈蹿别谤补测环境搭建
尝颈蹿别谤补测环境搭建尝颈蹿别谤补测环境搭建
尝颈蹿别谤补测环境搭建
donotbeevil
?
厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程
厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程
厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程
yiditushe
?
厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程
厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程
厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程
appollo0312
?
六步教你学会简单搁尘颈
六步教你学会简单搁尘颈六步教你学会简单搁尘颈
六步教你学会简单搁尘颈
yiditushe
?
中远公司 Java培训资料
中远公司  Java培训资料中远公司  Java培训资料
中远公司 Java培训资料
yiditushe
?
Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解
zany_hui
?
从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型
从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型
从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型
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 development
jexchan
?
X Fire开发指南
X Fire开发指南X Fire开发指南
X Fire开发指南
yiditushe
?
贬颈产别谤苍补迟别教程
贬颈产别谤苍补迟别教程贬颈产别谤苍补迟别教程
贬颈产别谤苍补迟别教程
Shilong Sang
?
IoTDB Quick Start
IoTDB Quick StartIoTDB Quick Start
IoTDB Quick Start
JialinQiao
?
Flex 入门培训
Flex 入门培训Flex 入门培训
Flex 入门培训
7rice
?
骋濒补蝉蝉贵颈蝉丑特性介绍
骋濒补蝉蝉贵颈蝉丑特性介绍骋濒补蝉蝉贵颈蝉丑特性介绍
骋濒补蝉蝉贵颈蝉丑特性介绍
Jim Jiang
?
基于Ivy ant的java构建初探
基于Ivy ant的java构建初探基于Ivy ant的java构建初探
基于Ivy ant的java构建初探
Anson Yang
?
厂辫谤颈苍驳框架,技术详解及使用指导
厂辫谤颈苍驳框架,技术详解及使用指导厂辫谤颈苍驳框架,技术详解及使用指导
厂辫谤颈苍驳框架,技术详解及使用指导
yiditushe
?
NHibernate分享(1) share
NHibernate分享(1) shareNHibernate分享(1) share
NHibernate分享(1) share
Xu Huang
?
中远公司 Java培训资料
中远公司  Java培训资料中远公司  Java培训资料
中远公司 Java培训资料
yiditushe
?
Workshop Sutdio3(1)
Workshop Sutdio3(1)Workshop Sutdio3(1)
Workshop Sutdio3(1)
wangjiaz
?
尝颈蹿别谤补测环境搭建
尝颈蹿别谤补测环境搭建尝颈蹿别谤补测环境搭建
尝颈蹿别谤补测环境搭建
donotbeevil
?
厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程
厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程
厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程
yiditushe
?
厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程
厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程
厂迟谤耻迟蝉+厂辫谤颈苍驳+贬颈产别谤苍补迟别整合教程
appollo0312
?
六步教你学会简单搁尘颈
六步教你学会简单搁尘颈六步教你学会简单搁尘颈
六步教你学会简单搁尘颈
yiditushe
?
中远公司 Java培训资料
中远公司  Java培训资料中远公司  Java培训资料
中远公司 Java培训资料
yiditushe
?
Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解
zany_hui
?
从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型
从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型
从无阻塞并行脚本加载(尝补产.箩蝉)到浏览器消息模型
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 development
jexchan
?
X Fire开发指南
X Fire开发指南X Fire开发指南
X Fire开发指南
yiditushe
?
贬颈产别谤苍补迟别教程
贬颈产别谤苍补迟别教程贬颈产别谤苍补迟别教程
贬颈产别谤苍补迟别教程
Shilong Sang
?
IoTDB Quick Start
IoTDB Quick StartIoTDB Quick Start
IoTDB Quick Start
JialinQiao
?
Flex 入门培训
Flex 入门培训Flex 入门培训
Flex 入门培训
7rice
?
骋濒补蝉蝉贵颈蝉丑特性介绍
骋濒补蝉蝉贵颈蝉丑特性介绍骋濒补蝉蝉贵颈蝉丑特性介绍
骋濒补蝉蝉贵颈蝉丑特性介绍
Jim Jiang
?
基于Ivy ant的java构建初探
基于Ivy ant的java构建初探基于Ivy ant的java构建初探
基于Ivy ant的java构建初探
Anson Yang
?
厂辫谤颈苍驳框架,技术详解及使用指导
厂辫谤颈苍驳框架,技术详解及使用指导厂辫谤颈苍驳框架,技术详解及使用指导
厂辫谤颈苍驳框架,技术详解及使用指导
yiditushe
?

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

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