微信扫一扫,移动浏览光盘
简介
本书站在客观评价Hibernate这门持久化技术的角度,来分析
Hibernate的基本构成、知识点及实现原理,汇总业界及作者在Hibernate
应用方面的实践经验,分清Hibernate的优势和劣势,及可代替的解决方案
,展示Hibernate对象关系映射技术的真谛,总结Hibernate在项目开发中
的最佳实践经验,使得读者在入门领悟Hibernate理论知识的同时,能了解
Hiberhate的优势和劣势,做到扬长避短,而不是盲目膜拜。
本书以Hibernate 3为基础,由浅入深介绍Hibernate OR映射的基本理
论知识及最佳实践经验。内容主要分三部分,第一部分是对象关系映射技
术的基本理论及Hibernate对象映射技术的基本知识点,第二部分讲解
Hibernate技术的查询和事务、缓存等高级性能,第三部分是Hibernate业
界应用的最佳实践经验,包括如何使用Spring集成Hibernate,使用DAO模
式透明化持久层设计,Hibernate在Web应用中的最佳实践和Hibernate性能
优化和如何使用iBATIS、JdbcTemplate来替代Hibernate。
本书特别适合使用Hibernate进行企业开发的开发人员作为参考书籍,
可以将书中的Hibernate最佳实践经验应用于项目中,也适合Hibernate的
入门读者作为入门书籍。
目录
第1章 对象.关系映射概述
1.1 分层体系结构
1.1.1 层次结构
1.1.2 分层架构特点
1.1.3 Java数据持久层设计
1.2 软件设计模型
1.2.1 概念模型
1.2.2 数据模型
1.2.3 域模型
1.3 对象-关系映射技术背景
1.3.1 关系数据库操作
1.3.2 数据持久化
1.3.3 直接使用JDBC的弊端
1.3.4 对象-关系映射基本概念
1.4 对象-关系映射工具
1.4.1 Hibernate
1.4.2 JDO
1.4.3 iBATIS
1.5 小结
第2章 快速上手
2.1 准备工作
2.2 Hibernate起步
2.2.1 开发环境准备
2.2.2 创建持久化类
2.2.3 创建对象一关系映射文件
2.2.4 创建Hibernate配置文件
2.2.5 用Hibernate持久化数据
2.2.6 加载并存储对象
2.3 Hibernate体系结构
2.3.1 结构及构成
2.3.2 Hibemate基本API
2.3.3 Configuration
2.3.4 SessionFactory
2.3.5 Session
2.3.6 SessionFactory的配置
2.4 Hibernate Tools
2.4.1 Hibernate基本开发环境
2.4.2 在Ant环境中使用Hibernate Tools
2.4.3 在Eclipse中使Hibernate Tools
2.5 小结
第3章 对象/关系数据库映射
3.1 映射定义
3.1.1 映射文件概要
3.1.2 映射文件结构
3.2 映射文件生成
3.2.1 使用XDoclet生成映射文件
3.2.2 安装Doclipse插件
3.2.3 编写Java类对象
3.2.4 编写类对象的XDoclet Hibernate标签
3.2.5 执行Ant Task生成配置文件
3.3 对象标识符
3.3.1 内置对象标识符
3.3.2 increment策略
3.3.3 高/低位算法生成策略
3.3.4 标识字段和序列
3.3.5 自定义对象标识符
3.4 映射类型
3.4.1 基本映射类型
3.4.2 自定义映射类型
3.5 小结
第4章 关联关系与组件
4.1 关联关系
4.2 一对一关联
4.2.1 使用主键关联
4.2.2 使用外键关联
4.3 一对多关联
4.3.1 单向关联
4.3.2 最佳实践——提高删除性能
4.3.3 双向关联
4.4 多对多关联
4.5 检索策略
4.5.1 检索策略
4.5.2 多对一
4.5.3 一对一
4.5.4 一对多/多对多
4.6 组件映射
4.7 传播性持久化
4.8 小结
第5章 集合类映射
5.1 集合
5.1.1 Java中的集合
5.1.2 Hibernate中的集合
5.2 映射Map
5.2.1 Java中的Map
5.2.2 映射Map
5.3 映射Set
5.3.1 Java中的Set
5.3.2 映射Set
5.4 映射List
5.4.1 Java中的List
5.4.2 映射List
5.5 映射Bag
5.5.1 映射Bag
5.5.2 映射idbag
5.6 集合排序
5.6.1 数据库排序
5.6.2 内存排序
5.7 小结
第6章 继承映射
6.1 继承映射
6.2 继承映射的几种策略
6.2.1 每个类继承结构一张表
6.2.2 每个子类一张表
6.2.3 每个子类一张表,使用辨别标志
6.2.4 混合使用“每个类继承结构一张表”和“每个子类一张表”
6.2.5 每个具体类一张表
6.2.6 每个具体类一张表,使用隐式多态
6.3 小结
第7章 操作持久化对象
7.1 持久对象的生命周期
7.1.1 瞬时对象
7.1.2 持久对象
7.1.3 脱管对象
7.1.4 区分持久对象
7.1.5 equals()和hashCode()
7.2 理解Session清理
7.2.1 Session缓存
7.2.2 Session清理
7.2.3 深入Session清理机制
7.3 Session操作对象的方法
7.3.1 save()
7.3.2 get()
7.3.3 update()
7.3.4 delete()
7.3.5 saveOrUpdate()
7.4 传播性持久化
7.5 小结
第8章 Hibernate查询
8.1 Hibernate的查询方式
8.1.1 通过对象标识符查询
8.1.2 面向对象查询——HQL
8.1.3 按条件查询方式——QBC
8.1.4 按样例查询方式——QBE
8.1.5 传统的查询方式——Native SQL
8.1.6 选择合适的抓取策略
8.2 查询实现
8.2.1 Session的createQuery()方法
8.2.2 迭代获取结果
8.2.3 多对象查询
8.2.4 统计查询
8.2.5 绑定参数式查询
8.3 过滤器
8.3.1 Hibernate过滤器
8.3.2 集合过滤器
8.4 Hibernate分页支持
8.4.1 Hibernate分页实现
8.4.2 Hibernate分页原理
8.5 使用条件查询
8.5.1 创建Criteria实例
8.5.2 Criteria结构
8.5.3 Criterion
8.5.4 Projection
8.6 使用Native SQL查询
8.6.1 创建一个基于SQL的Query
8.6.2 命名SQL查询
8.6.3 指定字段/别名
8.6.4 使用存储过程来查询
8.6.5 Native SQL查询常用方法
8.7 查询优化
8.7.1 开启Hibernate SQL日志功能
8.7.2 单步跟踪应用执行情况
8.8 小结
第9章 HQL查询语言
9.1 HQL语言特点
9.1.1 HQL概要
9.1.2 面向对象
9.1.3 大小写敏感性
9.1.4 跨数据库性
9.1.5 相关Hibernate设置
9.1.6 关于本章例程
9.2 HQL查询构成
9.2.1 FROM——指定查询对象
9.2.2 理解多态查询
9.2.3 SELECT——指定查询结果
9.2.4 JOIN——使用连接
9.2.5 WHERE——指定查询条件
9.2.6 表达式
9.2.7 查询分组与查询排序
9.2.8 子查询
9.2.9 批量更新与删除
9.3 小结
第10章 事务与并发
10.1 事务概念
10.2 声明事务边界
10.2.1 在数据库中声明事务边界
10.2.2 在JDBC中声明事务边界
10.2.3 在JTA中声明事务边界
10.2.4 在Hibernate中声明事务边界
10.3 事务与Session的关系
10.4 事务隔离级别
10.5 Hibernate并发控制
10.5.1 悲观锁定
lO.5.2 乐观锁定
lo.5.3 session的lock方法与update方法的区别
10.6 最佳实践——怎样划分事务
10.7 小结
第11章 理解Hibernate缓存
11.1 缓存原理
11.2 Hibernate缓存
11.2.1 Hibernate一级缓存
11.2.2 Hibernate二级缓存
11.2.3 第三方缓存实现
11.2.4 缓存并发策略
11.2.5 最佳实践——二级缓存的应用
11.2.6 Hibernate查询缓存
11.2.7 最佳实践——查询缓存的应用
11.3 不要放任缓存增长
11.3.1 精确控制缓存失效策略
11.3.2 大数据量处理及时清除缓存
11.4 使用OSCache进行缓存
11.4.1 OSCache介绍
11.4.2 使用OSCache
11.4.3 OSCache集群缓存支持
11.5 小结
第12章 通过Spring访问Hibernate
12.1 简化Hibernate使用难度
12.1.1 会话管理的困难
12.1.2 业界流行做法
12.1.3 集中管理Session
12.1.4 最佳实践
12.2 Spring的Hibernate支持
12.2.1 Hibernate SessionFactory注入
12.2.2 借助模板访问Hibernate
12.2.3 回调Callback机制
12.2.4 HibernateDaoSupport支持
12.2.5 异常处理
12.3 Spring事务支持
12.3.1 事务声明
12.3.2 编程式事务管理
12.3.3 声明式事务管理
12.3.4 事务管理策略
12.3.5 最佳实践
12.4 小结
第13章 DAO透明持久化
13.1 DAO模式核心思想
13.1.1 DAO模式中的对象
13.1.2 数据访问对象
13.1.3 业务对象
13.1.4 传输对象
13.2 基于DAO模式的Hibernate设计
13.2.1 DAO模式设计
13.2.2 DAO接口设计
13.2.3 采用范型的DAO接口设计
13.3 DAO设计策略
13.3.1 事务的界定
13.3.2 DAO和透明持久化
13.3.3 数据访问操作的粒度
13.3.4 透明持久化和对象状态
13.3.5 DAO中域对象状态维护
13.4 DAO模式注意事项
13.5 不要让应用局限于Hibernate
13.5.1 使用Hibemate的局限性
13.6 小结
第14章 Web应用中的Hibemate
14.1 Web应用分层中的Hibernate
14.1.1 MVC模式
14.1.2 Web应用分层
14.2 Struts与Hibernate的最佳结合
14.2.1 Struts中的ActionForm
14.2.2 集成ActionForm与POJO
14.2.3 使用Spring建立桥梁
14.3 让分页不再是烦恼
14.3.1 页面分页几种方案
14.3.2 使用Hibernate的分页实现
14.3.3 适配不同持久方法的分页封装
14.4 异常处理
14.4.1 异常捕捉机制
14.4.2 在何处处理异常
14.5 使用拦截器与事件
14.5.1 Hibernate中的拦截器
14.5.2 Hibernate中的事件
14.6 Struts与Spring、Hibernate结合应用示例
14.7 小结
第15章 Hibernate性能
15.1 不要使Hibernate性能变成瓶颈
15.1.1 Hibernate的性能担忧
15.1.2 Hibernate的性能优化机制
15.1.3 提高Hibernate启动速度
15.2 不要掉入批量处理陷阱
15.2.1 Hibernate批量操作实现
15.2.2 批量插入改进方案
15.2.3 批量更新改进方案
15.2.4 考虑使用无状态Session批量操作
15.2.5 尽可能使用DML风格的批量操作
15.3 Web应用中的Hibernate优化
15.4 考虑替代方案
15.4.1 使用iBATIS实现
15.4.2 iBATIS持久策略
15.4.3 Spring中集成iBATIS
15.4.4 使用Spring中的JdbcTemplate替代
15.5 小结
1.1 分层体系结构
1.1.1 层次结构
1.1.2 分层架构特点
1.1.3 Java数据持久层设计
1.2 软件设计模型
1.2.1 概念模型
1.2.2 数据模型
1.2.3 域模型
1.3 对象-关系映射技术背景
1.3.1 关系数据库操作
1.3.2 数据持久化
1.3.3 直接使用JDBC的弊端
1.3.4 对象-关系映射基本概念
1.4 对象-关系映射工具
1.4.1 Hibernate
1.4.2 JDO
1.4.3 iBATIS
1.5 小结
第2章 快速上手
2.1 准备工作
2.2 Hibernate起步
2.2.1 开发环境准备
2.2.2 创建持久化类
2.2.3 创建对象一关系映射文件
2.2.4 创建Hibernate配置文件
2.2.5 用Hibernate持久化数据
2.2.6 加载并存储对象
2.3 Hibernate体系结构
2.3.1 结构及构成
2.3.2 Hibemate基本API
2.3.3 Configuration
2.3.4 SessionFactory
2.3.5 Session
2.3.6 SessionFactory的配置
2.4 Hibernate Tools
2.4.1 Hibernate基本开发环境
2.4.2 在Ant环境中使用Hibernate Tools
2.4.3 在Eclipse中使Hibernate Tools
2.5 小结
第3章 对象/关系数据库映射
3.1 映射定义
3.1.1 映射文件概要
3.1.2 映射文件结构
3.2 映射文件生成
3.2.1 使用XDoclet生成映射文件
3.2.2 安装Doclipse插件
3.2.3 编写Java类对象
3.2.4 编写类对象的XDoclet Hibernate标签
3.2.5 执行Ant Task生成配置文件
3.3 对象标识符
3.3.1 内置对象标识符
3.3.2 increment策略
3.3.3 高/低位算法生成策略
3.3.4 标识字段和序列
3.3.5 自定义对象标识符
3.4 映射类型
3.4.1 基本映射类型
3.4.2 自定义映射类型
3.5 小结
第4章 关联关系与组件
4.1 关联关系
4.2 一对一关联
4.2.1 使用主键关联
4.2.2 使用外键关联
4.3 一对多关联
4.3.1 单向关联
4.3.2 最佳实践——提高删除性能
4.3.3 双向关联
4.4 多对多关联
4.5 检索策略
4.5.1 检索策略
4.5.2 多对一
4.5.3 一对一
4.5.4 一对多/多对多
4.6 组件映射
4.7 传播性持久化
4.8 小结
第5章 集合类映射
5.1 集合
5.1.1 Java中的集合
5.1.2 Hibernate中的集合
5.2 映射Map
5.2.1 Java中的Map
5.2.2 映射Map
5.3 映射Set
5.3.1 Java中的Set
5.3.2 映射Set
5.4 映射List
5.4.1 Java中的List
5.4.2 映射List
5.5 映射Bag
5.5.1 映射Bag
5.5.2 映射idbag
5.6 集合排序
5.6.1 数据库排序
5.6.2 内存排序
5.7 小结
第6章 继承映射
6.1 继承映射
6.2 继承映射的几种策略
6.2.1 每个类继承结构一张表
6.2.2 每个子类一张表
6.2.3 每个子类一张表,使用辨别标志
6.2.4 混合使用“每个类继承结构一张表”和“每个子类一张表”
6.2.5 每个具体类一张表
6.2.6 每个具体类一张表,使用隐式多态
6.3 小结
第7章 操作持久化对象
7.1 持久对象的生命周期
7.1.1 瞬时对象
7.1.2 持久对象
7.1.3 脱管对象
7.1.4 区分持久对象
7.1.5 equals()和hashCode()
7.2 理解Session清理
7.2.1 Session缓存
7.2.2 Session清理
7.2.3 深入Session清理机制
7.3 Session操作对象的方法
7.3.1 save()
7.3.2 get()
7.3.3 update()
7.3.4 delete()
7.3.5 saveOrUpdate()
7.4 传播性持久化
7.5 小结
第8章 Hibernate查询
8.1 Hibernate的查询方式
8.1.1 通过对象标识符查询
8.1.2 面向对象查询——HQL
8.1.3 按条件查询方式——QBC
8.1.4 按样例查询方式——QBE
8.1.5 传统的查询方式——Native SQL
8.1.6 选择合适的抓取策略
8.2 查询实现
8.2.1 Session的createQuery()方法
8.2.2 迭代获取结果
8.2.3 多对象查询
8.2.4 统计查询
8.2.5 绑定参数式查询
8.3 过滤器
8.3.1 Hibernate过滤器
8.3.2 集合过滤器
8.4 Hibernate分页支持
8.4.1 Hibernate分页实现
8.4.2 Hibernate分页原理
8.5 使用条件查询
8.5.1 创建Criteria实例
8.5.2 Criteria结构
8.5.3 Criterion
8.5.4 Projection
8.6 使用Native SQL查询
8.6.1 创建一个基于SQL的Query
8.6.2 命名SQL查询
8.6.3 指定字段/别名
8.6.4 使用存储过程来查询
8.6.5 Native SQL查询常用方法
8.7 查询优化
8.7.1 开启Hibernate SQL日志功能
8.7.2 单步跟踪应用执行情况
8.8 小结
第9章 HQL查询语言
9.1 HQL语言特点
9.1.1 HQL概要
9.1.2 面向对象
9.1.3 大小写敏感性
9.1.4 跨数据库性
9.1.5 相关Hibernate设置
9.1.6 关于本章例程
9.2 HQL查询构成
9.2.1 FROM——指定查询对象
9.2.2 理解多态查询
9.2.3 SELECT——指定查询结果
9.2.4 JOIN——使用连接
9.2.5 WHERE——指定查询条件
9.2.6 表达式
9.2.7 查询分组与查询排序
9.2.8 子查询
9.2.9 批量更新与删除
9.3 小结
第10章 事务与并发
10.1 事务概念
10.2 声明事务边界
10.2.1 在数据库中声明事务边界
10.2.2 在JDBC中声明事务边界
10.2.3 在JTA中声明事务边界
10.2.4 在Hibernate中声明事务边界
10.3 事务与Session的关系
10.4 事务隔离级别
10.5 Hibernate并发控制
10.5.1 悲观锁定
lO.5.2 乐观锁定
lo.5.3 session的lock方法与update方法的区别
10.6 最佳实践——怎样划分事务
10.7 小结
第11章 理解Hibernate缓存
11.1 缓存原理
11.2 Hibernate缓存
11.2.1 Hibernate一级缓存
11.2.2 Hibernate二级缓存
11.2.3 第三方缓存实现
11.2.4 缓存并发策略
11.2.5 最佳实践——二级缓存的应用
11.2.6 Hibernate查询缓存
11.2.7 最佳实践——查询缓存的应用
11.3 不要放任缓存增长
11.3.1 精确控制缓存失效策略
11.3.2 大数据量处理及时清除缓存
11.4 使用OSCache进行缓存
11.4.1 OSCache介绍
11.4.2 使用OSCache
11.4.3 OSCache集群缓存支持
11.5 小结
第12章 通过Spring访问Hibernate
12.1 简化Hibernate使用难度
12.1.1 会话管理的困难
12.1.2 业界流行做法
12.1.3 集中管理Session
12.1.4 最佳实践
12.2 Spring的Hibernate支持
12.2.1 Hibernate SessionFactory注入
12.2.2 借助模板访问Hibernate
12.2.3 回调Callback机制
12.2.4 HibernateDaoSupport支持
12.2.5 异常处理
12.3 Spring事务支持
12.3.1 事务声明
12.3.2 编程式事务管理
12.3.3 声明式事务管理
12.3.4 事务管理策略
12.3.5 最佳实践
12.4 小结
第13章 DAO透明持久化
13.1 DAO模式核心思想
13.1.1 DAO模式中的对象
13.1.2 数据访问对象
13.1.3 业务对象
13.1.4 传输对象
13.2 基于DAO模式的Hibernate设计
13.2.1 DAO模式设计
13.2.2 DAO接口设计
13.2.3 采用范型的DAO接口设计
13.3 DAO设计策略
13.3.1 事务的界定
13.3.2 DAO和透明持久化
13.3.3 数据访问操作的粒度
13.3.4 透明持久化和对象状态
13.3.5 DAO中域对象状态维护
13.4 DAO模式注意事项
13.5 不要让应用局限于Hibernate
13.5.1 使用Hibemate的局限性
13.6 小结
第14章 Web应用中的Hibemate
14.1 Web应用分层中的Hibernate
14.1.1 MVC模式
14.1.2 Web应用分层
14.2 Struts与Hibernate的最佳结合
14.2.1 Struts中的ActionForm
14.2.2 集成ActionForm与POJO
14.2.3 使用Spring建立桥梁
14.3 让分页不再是烦恼
14.3.1 页面分页几种方案
14.3.2 使用Hibernate的分页实现
14.3.3 适配不同持久方法的分页封装
14.4 异常处理
14.4.1 异常捕捉机制
14.4.2 在何处处理异常
14.5 使用拦截器与事件
14.5.1 Hibernate中的拦截器
14.5.2 Hibernate中的事件
14.6 Struts与Spring、Hibernate结合应用示例
14.7 小结
第15章 Hibernate性能
15.1 不要使Hibernate性能变成瓶颈
15.1.1 Hibernate的性能担忧
15.1.2 Hibernate的性能优化机制
15.1.3 提高Hibernate启动速度
15.2 不要掉入批量处理陷阱
15.2.1 Hibernate批量操作实现
15.2.2 批量插入改进方案
15.2.3 批量更新改进方案
15.2.4 考虑使用无状态Session批量操作
15.2.5 尽可能使用DML风格的批量操作
15.3 Web应用中的Hibernate优化
15.4 考虑替代方案
15.4.1 使用iBATIS实现
15.4.2 iBATIS持久策略
15.4.3 Spring中集成iBATIS
15.4.4 使用Spring中的JdbcTemplate替代
15.5 小结
Hibernate ORM最佳实践
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!