贯通 Hibernate开发(含光盘1张)
分類: 图书,计算机/网络,程序设计,Java Java Script J2EE,
作者: 李刚 等编著
出 版 社: 电子工业出版社
出版时间: 2008-8-1字数: 650000版次: 1页数: 464印刷时间: 2008/08/01开本: 大16开印次: 1纸张: 胶版纸I S B N : 9787121062230包装: 平装编辑推荐
本书内容遵循循序渐进的原则,逐步深入,致力于培养一名技术娴熟、能上手开发的Hibernate程序员。所以,从章来看,由浅入深,一步步深入介绍Hibernate;从章内的节来看,强调前期专家知识导学,过程中的内容详解和例题程序演示,后勤的课程作业巩固,力求使读者能深入扎实地学习Hibernate。
本书供有一定的Java语言和关系数据库基础的程序员作为参考用书,也可供社会Hibernate技术培训班作为教材使用,对于缺乏项目实战经验的程序员来说可用于快速积累项目开发经验。
内容简介
本书为Hibernate3学习必备书,逐步引领读者学习各个基础知识点的,进而开发出完整的系统。全书内容由浅入深,共15章,并辅以大量的实例说明,最后给出了一个完整的项目案例,包括系统分析与设计的相关指导。
随书的配套光盘中含有全书所有实例,以及项目案例的源代码,供读者学习参考使用。
本书供有一定的Java语言和关系数据库基础的程序员作为参考用书,也可供社会Hibernate技术培训班作为教材使用,对于缺乏项目实战经验的程序员来说可用于快速积累项目开发经验。
目录
第1篇 Hibernate 入门
第1章对象关系映射基础
1.1 对象持久化
1.2 对象-关系映射
1.3 对象持久化的实现模式
1.3.1主动域对象模式
1.3.2 CMP模式
1.3.3 JDO模式
1.4 感受ORM
1.4.1 JDBC操作数据库
1.4.2 Hibernate操作数据库
1.4.3 两种技术的比较
1.5 小结
1.6 习题
第2章Hibernate简介
2.1 中间件
2.1.1 中间件的概念
2.1.2 中间件的分类
2.2 Hibernate简介
2.2.1 Hibernate3产品套件简介
2.2.2 Hibernate的核心接口
2.2.3 Hibernate3的新特性
2.2.4 Hibernate的发展趋势
2.3 其他持久层框架
2.4 小结
2.5 习题
第2篇Hibernate开发快速上手
第3章Hibernate的安装与配置
3.1 开发环境介绍
3.1.1 Eclipse
3.1.2 Tomcat
3.1.3 Microsoft SQL Server
3.1.4 本书的相关约定
3.2 开发环境的搭建
3.2.1 搭建开发平台
3.2.2 下载Hibernate
3.2.3 设置用户库
3.3 Hibernate配置
3.3.1 Hibernate配置文件
3.3.2 可编程的配置方式
3.3.3 可选的配置属性
3.3.4 日志配置
3.3.5 数据库连接池配置
3.4 小结
3.5 习题
第4章第一个Hibernate程序
4.1 Hibernate基础文件讲解
4.1.1 Hibernate配置文件
4.1.2 数据库Schema
4.1.3 持久化类
4.1.4 映射文件
4.2 Hibernate工具简介
4.2.1 Middlegen-Hibernate
4.2.2 Hibernate-Extension之hbm2java和class2hbm
4.2.3 Hibernate的内置工具hbm2dll
4.2.4 Hibernate工具包
4.2.5 基础文件的生成路线
4.2.6 Hibernate和Ant示例
4.3 Hello World应用程序
4.3.1 创建数据库表
4.3.2 创建Java工程
4.3.3 创建Hibernate基础文件
4.3.4 Hello World程序实现
4.4 小结
4.5 习题
第3篇Hibernate应用开发
第5章映射定义与映射类型
5.1 Hibernate的映射定义
5.1.1 XML文件头
5.1.2 hibernate-mapping根元素
5.1.3 class元素定义持久化类
5.1.4 id元素定义持久化标志符
5.1.5 generator子元素定义持久化标志符的生成策略
5.1.6 持久化标志符生成策略示例
5.1.7 composite-id元素映射复合主键
5.1.8 property元素定义持久化类的属性
5.1.9 其他元素
5.2 Hibernate的映射类型
5.2.1 Hibernate的内置基本映射类型
5.2.2 用户自定义映射类型
5.3 小结
5.4 习题
第6章持久化对象
6.1 持久化类
6.2 Hibernate对象状态
6.2.1 瞬时(Transient)状态
6.2.2 持久(Persistent)状态
6.2.3 脱管(Detached)状态
6.2.4 状态转换关系
6.3 Session方法简介
6.3.1 save()方法
6.3.2 load()和get()方法
6.3.3 update()方法
6.3.4 saveOrUpdate()方法
6.3.5 delete()方法
6.3.6 其他方法
6.4 Session的缓存
6.5 持久化对象的级联操作
6.6 Hibernate的二级缓存
6.6.1 持久化层的缓存的范围
6.6.2 持久化层的缓存的并发访问策略
6.6.3 Hibernate的二级缓存
6.7 小结
6.8 习题
第7章集合类映射
7.1 概述
7.1.1 Java集合类简介
7.1.2 Hibernate中的集合类映射
7.2 集合类映射
7.2.1 集合类映射的定义
7.2.2 综合示例
7.3 小结
7.4 习题
第8章关联关系映射
8.1 基础知识
8.1.1 实体—关系模型
8.1.2 类之间的关系
8.2 关联关系映射
8.2.1 单向多对一关联
8.2.2 双向多对一关联
8.2.3 单向一对一关联
8.2.4 双向一对一关联
8.2.5 单向多对多关联
8.2.6 双向多对多关联
8.3 小结
8.4 习题
第9章继承映射
9.1 概述
9.2 每个类分层结构一张表
9.3 每个子类一张表
9.4 每个具体类一张表
9.5 小结
9.6 习题
第10章组件映射
10.1 概述
10.2 映射组件
10.3 映射组件集合
10.4 组件作为联合主键
10.5 小结
10.6 习题
第11章HQL查询语言
11.1 select子句
11.2 from子句
11.3 关联与连接
11.3.1 标准SQL的连接查询
11.3.2 HQL的连接查询
11.4 where子句
11.5 order by子句
11.6 group by子句
11.7 子查询
11.8 批量的update和delete
11.9 其他
11.10 小结
11.11 习题
第12章事务与并发
12.1 数据库的事务与并发
12.1.1 数据库事务
12.1.2 数据库并发产生的问题
12.1.3 数据库锁与封锁协议
12.1.4 数据库的死锁
12.1.5 数据库的事务隔离级别
12.2 Hibernate的事务范围
12.3 Hibernate的事务声明
12.4 乐观并发控制
12.4.1 应用程序级别的手工版本检查
12.4.2 扩展周期的Session和自动版本化
12.4.3 使用脱管对象的自动版本化
12.4.4 定制自动版本化行为
12.5 采用悲观锁
12.6 小结
12.7 习题
第4篇Hibernate框架集成
第13章Hibernate与Struts框架的集成
13.1 Hibernate与Struts框架
13.1.1 MVC模式
13.1.2 Struts框架简介
13.1.3 框架集成策略
13.1.4 框架集成示例
13.1.5 Eclipse配置
13.2 Hibernate与动态菜单
13.2.1 动态菜单
13.2.2 Struts-Menu应用简介
13.2.3 一个动态菜单的实现
13.3 小结
13.4 习题
第14章Hibernate、Struts、Spring框架的集成
14.1 Sping框架简介
14.2 Hibernate与Spring、Struts框架的集成策略
14.3 环境搭建
14.3.1 Struts 2和Spring集成
14.3.2 Hibernate和Spring集成
14.3.3 Spring 2事务配置
14.3.4 Spring 2事务配置小结
14.4 小结
14.5 习题
第5篇项目实战
第15章科研项目管理系统
15.1 系统需求分析
15.2 系统总体架构设计
15.3 系统建模
15.3.1 域模型分析
15.3.2 建立映射文件
15.3.3 生成持久化类
15.3.4 数据库建模
15.4 系统设计
15.4.1 模块功能设计
15.4.2 接口设计
15.4.3 用户界面设计
15.4.4 目录设计
15.5 配置文件
15.5.1 hibernate.cfg.xml
15.5.2 struts.config.xml
15.6 系统初始界面
15.7 技术领域管理模块
15.7.1 技术领域列表
15.7.2 添加技术领域
15.7.3 修改技术领域
15.7.4 删除技术领域
15.8 项目管理模块
15.8.1 项目列表
15.8.2 添加项目
15.8.3 修改项目
15.8.4 删除项目
15.8.5 为项目指定人员
15.9 人员管理模块
15.9.1 人员列表
15.9.2 添加人员
15.9.3 修改人员
15.9.4 删除人员
15.9.5 为人员指定项目
15.10 综合查询
15.10.1 查询条件
15.10.2 查询结果
15.11 需要改进的地方
15.12 小结
15.13 习题
附录A Java 集合类
ArrayList类
HashMap类
HashSet类
SortedMap类
SortedSet类
Vector类
Hashtable类
附录B 光盘内容与使用说明
B.1 光盘内容
B.1.1 示例源代码
B.1.2 实战项目源代码
B.2 使用示例源代码
B.3 使用ant应用示例源代码
B.4 使用实战项目源代码
B.5 使用Hibernate与Spring、Struts框架集成源代码
B.6 恢复数据库
书摘插图
第1章 对象关系映射基础
本章知识导学
对象是现实世界中各种实体在计算机世界中的抽象,关系数据库中则同样可以存储代表着现实实体的相关数据,其物理形式是一个个数据文件,逻辑形式则是关系,即关系数据库中的表。
Hibernate中间件是连接Java对象和关系型数据库的桥梁,将Java对象映射为各种关系型数据库中的二维关系,或者反之,将关系数据库表中所存储的关系映射为Java对象,这便是Hibernate的主要职责。同时,Hibernate还屏蔽了Java对于各种关系型数据库的操作,使得程序员对数据库的编程变得更加容易。
本章首先从对象持久化讲起,引导读者明确什么是对象关系映射,对象关系映射有什么重要的作用。明确这一点之后,读者便会明白Hibernate是用来做什么的了。
1.1 对象持久化
“持久”(Persistence)是与“暂时”、“临时”(Transient)等相对应的一个概念,举个例子来讲,在计算机内存(RAM)中存储的数据在切断电源之后便全部丢失,因此这些数据是暂时、临时的,而存储在ROM、硬盘或者光盘中的数据则不会这样轻易丢失,此所谓持久数据。所以“持久化”的概念就是将数据从“临时”状态转换为“持久”状态。持久化的途径包括很多种,最常见的方式是使用文件来存储持久化数据,正如在我们的硬盘中,绝大多数数据都是以文件的形式存在的。
软件世界发展到面向对象的阶段之后,现实世界中的实体都被以对象的形式来表示。对象是一组数据以及对这些数据操作的集合,是现实世界中实体的反映,它可以更加真实地反映这个世界,更加符合人类的思维规律。
这里请读者区分一下数据持久化和对象持久化这两个概念。数据持久化是对象持久化的基础,对象持久化的主要操作对象是对象里的数据,也就是属性。当然,对象的属性仍然可以是对象,那么这里便要对对象属性进行进一步的持久化操作。不做特殊说明,本书在后面的章节中所提到的“持久化”均指对象持久化。
对象代表实体,而实体最通常的存储方式便是关系型数据库,另外,实体之间的关系也在关系数据库中以单一主键、联合主键、外键等方式得以体现。因此将对象持久化到关系型数据库中是目前对象持久化技术大多采用的方式。
……