当前位置:首页 > 工业技术
Hibernate OR映射最佳实践
Hibernate OR映射最佳实践

Hibernate OR映射最佳实践PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:陶勇,李晓军编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2007
  • ISBN:9787302157571
  • 页数:528 页
图书介绍:本书介绍Hibernate OR映射基本理论,实践经验等。
《Hibernate OR映射最佳实践》目录

第1章 对象-关系映射概述 1

1.1 分层体系结构 1

1.1.1 层次结构 2

1.1.2 分层架构特点 4

1.1.3 Java数据持久层设计 6

1.2 软件设计模型 10

1.2.1 概念模型 10

1.2.2 数据模型 11

1.2.3 域模型 13

1.3 对象-关系映射技术背景 22

1.3.1 关系数据库操作 24

1.3.2 数据持久化 25

1.3.3 直接使用JDBC的弊端 28

1.3.4 对象-关系映射基本概念 28

1.4 对象-关系映射工具 30

1.4.1 Hibernate 31

1.4.2 JDO 32

1.4.3 iBATIS 32

1.5 小结 33

第2章 快速上手 34

2.1 准备工作 34

2.2 Hibernate起步 35

2.2.1 开发环境准备 35

2.2.2 创建持久化类 37

2.2.3 创建对象-关系映射文件 38

2.2.4 创建Hibernate配置文件 39

2.2.5 用Hibernate持久化数据 41

2.2.6 加载并存储对象 43

2.3 Hibernate体系结构 46

2.3.1 结构及构成 46

2.3.2 Hibernate基本API 48

2.3.3 Configuration 48

2.3.4 SessionFactory 48

2.3.5 Session 48

2.3.6 SessionFactory的配置 48

2.4 Hibernate Tools 53

2.4.1 Hibernate基本开发环境 53

2.4.2 在Ant环境中使用Hibernate Tools 54

2.4.3 在Eclipse中使Hibernate Tools 58

2.5 小结 64

第3章 对象/关系数据库映射 65

3.1 映射定义 65

3.1.1 映射文件概要 65

3.1.2 映射文件结构 66

3.2 映射文件生成 69

3.2.1 使用XDoclet生成映射文件 69

3.2.2 安装Doclipse插件 70

3.2.3 编写Java类对象 71

3.2.4 编写类对象的XDoclet Hibernate标签 74

3.2.5 执行Ant Task生成配置文件 80

3.3 对象标识符 82

3.3.1 内置对象标识符 83

3.3.2 increment策略 84

3.3.3 高/低位算法生成策略 86

3.3.4 标识字段和序列 89

3.3.5 自定义对象标识符 91

3.4 映射类型 95

3.4.1 基本映射类型 95

3.4.2 自定义映射类型 98

3.5 小结 101

第4章 关联关系与组件 102

4.1 关联关系 102

4.2 一对一关联 104

4.2.1 使用主键关联 104

4.2.2 使用外键关联 109

4.3 一对多关联 112

4.3.1 单向关联 112

4.3.2 最佳实践——提高删除性能 118

4.3.3 双向关联 119

4.4 多对多关联 122

4.5 检索策略 127

4.5.1 检索策略 128

4.5.2 多对一 129

4.5.3 一对一 132

4.5.4 一对多/多对多 134

4.6 组件映射 137

4.7 传播性持久化 141

4.8 小结 142

第5章 集合类映射 143

5.1 集合 143

5.1.1 Java中的集合 143

5.1.2 Hibernate中的集合 144

5.2 映射Map 145

5.2.1 Java中的Map 146

5.2.2 映射Map 150

5.3 映射Set 157

5.3.1 Java中的Set 157

5.3.2 映射Set 159

5.4 映射List 162

5.4.1 Java中的List 163

5.4.2 映射List 164

5.5 映射Bag 172

5.5.1 映射Bag 172

5.5.2 映射idbag 176

5.6 集合排序 179

5.6.1 数据库排序 179

5.6.2 内存排序 181

5.7 小结 183

第6章 继承映射 184

6.1 继承映射 184

6.2 继承映射的几种策略 188

6.2.1 每个类继承结构一张表 188

6.2.2 每个子类一张表 195

6.2.3 每个子类一张表,使用辨别标志 200

6.2.4 混合使用“每个类继承结构一张表”和“每个子类一张表” 203

6.2.5 每个具体类一张表 207

6.2.6 每个具体类一张表,使用隐式多态 211

6.3 小结 218

第7章 操作持久化对象 219

7.1 持久对象的生命周期 219

7.1.1 瞬时对象 220

7.1.2 持久对象 221

7.1.3 脱管对象 224

7.1.4 区分持久对象 225

7.1.5 equals()和hashCode() 228

7.2 理解Session清理 232

7.2.1 Session缓存 232

7.2.2 Session清理 235

7.2.3 深入Session清理机制 237

7.3 Session操作对象的方法 239

7.3.1 save() 240

7.3.2 get() 242

7.3.3 update() 243

7.3.4 delete() 245

7.3.5 saveOrUpdate() 246

7.4 传播性持久化 247

7.5 小结 251

第8章 Hibernate查询 252

8.1 Hibernate的查询方式 252

8.1.1 通过对象标识符查询 252

8.1.2 面向对象查询——HQL 253

8.1.3 按条件查询方式——QBC 254

8.1.4 按样例查询方式——QBE 255

8.1.5 传统的查询方式——Native SQL 256

8.1.6 选择合适的抓取策略 256

8.2 查询实现 258

8.2.1 Session的createQuery()方法 258

8.2.2 迭代获取结果 258

8.2.3 多对象查询 260

8.2.4 统计查询 260

8.2.5 绑定参数式查询 261

8.3 过滤器 262

8.3.1 Hibernate过滤器 262

8.3.2 集合过滤器 264

8.4 Hibernate分页支持 265

8.4.1 Hibernate分页实现 265

8.4.2 Hibernate分页原理 266

8.5 使用条件查询 269

8.5.1 创建Criteria实例 269

8.5.2 Criteria结构 273

8.5.3 Criterion 274

8.5.4 Projection 276

8.6 使用Native SQL查询 277

8.6.1 创建一个基于SQL的Query 277

8.6.2 命名SQL查询 278

8.6.3 指定字段/别名 279

8.6.4 使用存储过程来查询 280

8.6.5 Native SQL查询常用方法 281

8.7 查询优化 282

8.7.1 开启Hibernate SQL日志功能 282

8.7.2 单步跟踪应用执行情况 283

8.8 小结 283

第9章 HQL查询语言 285

9.1 HQL语言特点 285

9.1.1 HQL概要 286

9.1.2 面向对象 290

9.1.3 大小写敏感性 290

9.1.4 跨数据库性 292

9.1.5 相关Hibernate设置 293

9.1.6 关于本章例程 295

9.2 HQL查询构成 296

9.2.1 FROM——指定查询对象 296

9.2.2 理解多态查询 298

9.2.3 SELECT——指定查询结果 300

9.2.4 JOIN——使用连接 304

9.2.5 WHERE——指定查询条件 309

9.2.6 表达式 310

9.2.7 查询分组与查询排序 313

9.2.8 子查询 314

9.2.9 批量更新与删除 314

9.3 小结 315

第10章 事务与并发 317

10.1 事务概念 317

10.2 声明事务边界 318

10.2.1 在数据库中声明事务边界 318

10.2.2 在JDBC中声明事务边界 320

10.2.3 在JTA中声明事务边界 321

10.2.4 在Hibernate中声明事务边界 323

10.3 事务与Session的关系 327

10.4 事务隔离级别 329

10.5 Hibernate并发控制 330

10.5.1 悲观锁定 331

10.5.2 乐观锁定 332

10.5.3 session的lock方法与update方法的区别 340

10.6 最佳实践——怎样划分事务 341

10.7 小结 344

第11章 理解Hibernate缓存 346

11.1 缓存原理 346

11.2 Hibernate缓存 349

11.2.1 Hibernate一级缓存 350

11.2.2 Hibernate二级缓存 352

11.2.3 第三方缓存实现 354

11.2.4 缓存并发策略 358

11.2.5 最佳实践——二级缓存的应用 360

11.2.6 Hibernate查询缓存 363

11.2.7 最佳实践——查询缓存的应用 366

11.3 不要放任缓存增长 366

11.3.1 精确控制缓存失效策略 367

11.3.2 大数据量处理及时清除缓存 368

11.4 使用OSCache进行缓存 370

11.4.1 OSCache介绍 370

11.4.2 使用OSCache 370

11.4.3 OSCache集群缓存支持 374

11.5 小结 377

第12章 通过Spring访问Hibernate 378

12.1 简化Hibernate使用难度 378

12.1.1 会话管理的困难 379

12.1.2 业界流行做法 382

12.1.3 集中管理Session 386

12.1.4 最佳实践 391

12.2 Spring的Hibernate支持 392

12.2.1 Hibernate SessionFactory注入 393

12.2.2 借助模板访问Hibernate 397

12.2.3 回调Callback机制 402

12.2.4 HibernateDaoSupport支持 405

12.2.5 异常处理 406

12.3 Spring事务支持 408

12.3.1 事务声明 408

12.3.2 编程式事务管理 411

12.3.3 声明式事务管理 416

12.3.4 事务管理策略 423

12.3.5 最佳实践 426

12.4 小结 428

第13章 DAO透明持久化 429

13.1 DAO模式核心思想 429

13.1.1 DAO模式中的对象 430

13.1.2 数据访问对象 431

13.1.3 业务对象 432

13.1.4 传输对象 433

13.2 基于DAO模式的Hibernate设计 433

13.2.1 DAO模式设计 434

13.2.2 DAO接口设计 439

13.2.3 采用范型的DAO接口设计 440

13.3 DAO设计策略 444

13.3.1 事务的界定 445

13.3.2 DAO和透明持久化 446

13.3.3 数据访问操作的粒度 450

13.3.4 透明持久化和对象状态 451

13.3.5 DAO中域对象状态维护 452

13.4 DAO模式注意事项 453

13.5 不要让应用局限于Hibernate 453

13.5.1 使用Hibernate的局限性 455

13.6 小结 456

第14章 Web应用中的Hibernate 457

14.1 Web应用分层中的Hibernate 457

14.1.1 MVC模式 457

14.1.2 Web应用分层 460

14.2 Struts与Hibernate的最佳结合 462

14.2.1 Struts中的ActionForm 463

14.2.2 集成ActionForm与POJO 467

14.2.3 使用Spring建立桥梁 472

14.3 让分页不再是烦恼 476

14.3.1 页面分页几种方案 477

14.3.2 使用Hibernate的分页实现 477

14.3.3 适配不同持久方法的分页封装 479

14.4 异常处理 483

14.4.1 异常捕捉机制 483

14.4.2 在何处处理异常 484

14.5 使用拦截器与事件 486

14.5.1 Hibernate中的拦截器 486

14.5.2 Hibernate中的事件 488

14.6 Struts与Spring、Hibernate结合应用示例 489

14.7 小结 493

第15章 Hibernate性能 494

15.1 不要使Hibernate性能变成瓶颈 494

15.1.1 Hibernate的性能担忧 494

15.1.2 Hibernate的性能优化机制 495

15.1.3 提高Hibernate启动速度 503

15.2 不要掉入批量处理陷阱 505

15.2.1 Hibernate批量操作实现 505

15.2.2 批量插入改进方案 506

15.2.3 批量更新改进方案 507

15.2.4 考虑使用无状态Session批量操作 509

15.2.5 尽可能使用DML风格的批量操作 509

15.3 Web应用中的Hibernate优化 514

15.4 考虑替代方案 519

15.4.1 使用iBATIS实现 520

15.4.2 iBATIS持久策略 520

15.4.3 Spring中集成iBATIS 524

15.4.4 使用Spring中的JdbcTemplate替代 525

15.5 小结 527

返回顶部