《Hibernate Quickly中文版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:〔美〕Patrick Peak Nick Heudecker著;孙中华译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2006
  • ISBN:7115148538
  • 页数:316 页
图书介绍:本书介绍常用的Hibernate知识。

第1章 为何使用Hibernate 1

1.1 理解对象持久化 3

1.1.1 相同 3

1.1.2 继承 4

1.1.3 关联 4

1.1.4 对象/关系映射 5

1.2 使用JDBC 7

1.2.1 应用示例 7

1.2.2 使用JDBC检索对象图 8

1.2.3 将对象图持久化到关系数据库中 12

1.2.4 删除对象图 14

1.2.5 查询对象图 14

1.3.1 简单和灵活 15

1.3 使用Hibernate进行持久化 15

1.3.2 功能完备 16

1.3.3 性能 17

1.4 总结 18

第2章 使用Ant创建和编译项目 19

2.1 获取Hibernate 21

2.2 安装Ant 22

2.2.1 获取Ant 22

2.2.2 解压缩和安装Ant 23

2.3 安装数据库 23

2.3.1 获取MySQL 24

2.3.2 测试MySQL 24

2.3.3 MySQL驱动程序 26

2.4 创建项目 26

2.4.1 定义目录 26

2.4.2 Ant 101 27

2.4.3 运行Ant 30

2.5 创建高效的编译文件 31

2.5.1 连接Hibernate 32

2.5.2 可复用的编译文件 34

2.5.3 扩充知识 37

2.6 总结 37

第3章 Hibernate基础 39

3.1 配置Hibernate 40

3.2 创建映射定义 44

3.2.1 ID和生成器 45

3.2.2 属性 46

3.2.3 多对一元素(many-to-one) 47

3.2.4 代理(Proxy) 48

3.2.5 集合 49

3.2.6 级联(Cascade) 50

3.2.7 获取关联的对象 51

3.3 构建SessionFactory 51

3.4 持久化对象 52

3.5 检索对象 54

3.6 Session缓存 55

3.7 高级配置 56

3.7.1 连接池 56

3.7.2 事务 57

3.7.3 缓存提供者 59

3.8 继承 62

3.8.1 每个类层次一个表 62

3.8.2 每个子类一个表 64

3.9 总结 65

第4章 关联和组件 67

4.1 关联 68

4.1.1 深入分析多对一关系 69

4.1.2 中央配置文件 73

4.1.3 定义示例数据 74

4.2 使用Ant和SchemaExport创建数据库表 76

4.2.1 使用log4j和Commons Logging 79

4.2.2 运行SchemaExport 80

4.2.3 加载Event 81

4.2.4 重构 83

4.4 总结 84

4.2.5 查询Event 87

4.2.6 级联 89

4.3 组件 90

4.3.1 组件包含什么 90

4.3.2 映射组件 92

4.3.3 为何使用组件 93

第5章 集合与自定义类型 95

5.1 持久化集合和数组 96

5.1.1 使用接口 97

5.1.2 映射持久化集合 98

5.1.3 集合类型 101

5.1.4 延迟集合 106

5.1.5 有序集合 107

5.1.6 双向关联 108

5.1.7 级联集合 111

5.2 实现自定义类型 112

5.2.1 UserType 113

5.2.2 实现CompositeUserType 118

5.3 总结 122

第6章 查询持久化对象 123

6.1 使用HQL 124

6.1.1 session.find(...) 125

6.1.2 Query接口 125

6.1.3 外连接与HQL 128

6.1.4 显示SQL 129

6.1.5 查询替换 129

6.1.6 查询解析器 130

6.2 使用HQL查询对象 130

6.2.1 FROM子句 130

6.2.2 连接 131

6.2.3 查询(select) 132

6.2.4 使用函数 134

6.2.5 HQL属性 136

6.2.6 使用表达式 136

6.4 存储过程 140

6.3 Criteria查询 140

6.5 Hibern8IDE 141

6.6 总结 142

第7章 使用Spring和DAO来组织项目 143

7.1 无处不在的DAO模式 144

7.2 分析DAO 149

7.2.1 样本代码 149

7.2.2 潜在的重复 149

7.2.3 只有脱管对象(detached object) 149

7.3 层超类型模式 150

7.4 Spring框架 154

7.4.1 模板包含什么 155

7.4.2 Bean及其工厂 158

7.5 总结 164

第8章 Web框架:WebWork、Struts和Tapestry 165

8.2 MVC概述 167

8.1 定义应用 167

8.3 将Hibernate与Web层分离 173

8.3.1 处理脱管对象 173

8.3.2 Session的范围 174

8.3.3 从控制器访问Session 175

8.3.4 从服务层访问Session 179

8.4 WebWork 181

8.4.1 WebWork基础 182

8.4.2 创建控制器 182

8.5 Struts 194

8.5.1 Struts基础 194

8.5.2 创建Struts Action 196

8.6 Tapestry 200

8.6.3 HTML视图 201

8.6.1 起步 201

8.6.2 Tapestry基础 201

8.6.4 页面控制器 203

8.6.5 页面规范 206

8.6.6 Web.xml 207

8.7 在视图层使用Hibernate 208

8.8 总结 209

第9章 结合使用Hibernate和XDoclet 211

9.1 XDoclet基础 213

9.1.1 JavaDoc基础 213

9.1.2 XDoclet:创建自己的标签 214

9.1.3 安装XDoclet 215

9.1.4 配置Ant 216

9.2.1 @Hibernate.class标签 218

9.2 将单个对象指定为持久化的 218

9.2.2 @Hibernate.id标签 219

9.2.3 @Hibernate.property标签 221

9.2.4 @Hibernate.column标签 223

9.3 基本关系 225

9.3.1 @Hibernate.many-to-one标签 225

9.3.2 @Hibernate.component标签 226

9.4 创建集合 231

9.4.1 一对多:Speanker集合 231

9.4.2 @Hibernate.set标签 233

9.4.3 @Hibernate.collection-key标签 233

9.4.4 @Hibernate.collection-one-to-many标签 234

9.5 应对XDoclet滞后的情形 234

9.5.1 合并点 235

9.5.2 属性替换 236

9.6 生成hibernate.cfg.cml文件 237

9.7 总结 238

第10章 使用JUnit和DBUnit进行单元测试 239

10.1 单元测试简介 240

10.1.1 自动执行测试 241

10.1.2 断言(assertion) 241

10.1.3 失败消息 242

10.2 JUnit 243

10.2.1 测试感染的编译文件 243

10.2.2 修改编译文件 246

10.3 测试持久化层 247

10.3.1 要测试什么 248

10.3.2 测试基本的持久化 248

10.3.3 测试查询 251

10.3.4 通用的数据库测试技巧 252

10.4 使用DBUnit进行测试 256

10.4.1 加载测试数据 256

10.4.2 ProjectDatabase TestCase 259

10.5 总结 263

第11章 Hibernate 3的新特性 265

11.1 过滤器 266

11.2 映射的改进 267

11.2.1 多表映射 267

11.2.2 区分符规则(discriminator formula) 268

11.2.3 联合子类 269

11.2.4 属性引用 270

11.3 动态类 270

11.4 标记 271

11.5 存储过程和SQL 273

11.6 持久化事件 275

11.7 延迟属性 276

11.8 总结 277

附录A 完整的Hibernate映像目录 279

A.1 一个关联的例子 280

A.1.1 单向关系 280

A.1.2 双向关联 281

A.2 多对一 281

A.2.1 单向关联 281

A.2.2 双向关联 282

A.3 一对一 283

A.3.1 相同的主码 283

A.3.2 外码一对一 285

A.4 组件 286

A.4.1 单向关联 287

A.4.2 双向关联 288

A.5 Set:一对多 289

A.5.1 单向关联 289

A.5.2 双向关联 290

A.6 Set:多对多 290

A.6.1 单向关联 291

A.6.2 双向关联 292

A.7 List 293

A.7.1 单向的一对多list 293

A.7.2 简单值List 294

A.7.3 其他List 295

A.8 Map 295

A.8.1 一对多实体Map 296

A.8.2 多对多实体Map 297

A.8.3 组件Map 298

A.8.4 包含实体键的Map 299

A.8.5 其他Map 302

A.9 数组 302

A.9.1 实体数组 302

A.9.2 基本类型数组 303

A.9.3 其他数组 304

A.10 Bag 305

A.10.1 实体Bag:单向一对多 305

A.10.2 其他bag 306

A.11 子类 306

A.11.1 每个类层次结构一个表的策略 307

A.11.2 每个子类一个表的策略 308

A.11.3 每个具体类一个表的策略:any 309

A.11.4 每个具体类一个表的策略:union 314

A.12 总结 316