《IBM最佳实践 Java企业级持久化技术指南》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)巴西亚(Barcia.R.)等编著
  • 出 版 社:北京:科学出版社
  • 出版年份:2010
  • ISBN:9787030278852
  • 页数:386 页
图书介绍:在创建企业级应用程序持久性方面,本书在技术上是一个独特、客观的最新指南,IBM的五位开发专家基于自身的广泛经验,仔细研究了一些扩展性较好的关键性应用程序,着眼于所采用的持久层的问题,给出这种解决方案。

第1部分 持久性的一个问题 2

第1章 对象关系映射简史 2

1.1 对象关系阻抗失配 3

1.2 Java史前课程 3

1.2.1 Delphi 4

1.2.2 Rogue Wave DBTools.h++ 4

1.2.3 NeXT DbKit 4

1.2.4 TopLink for Smalltalk 5

1.2.5 IBM ObjectExtender 5

1.3 第一代Java解决方案 6

1.3.1 JDBC 1.0和2.0 6

1.3.2 Java的TopLink 7

1.3.3 EJB 1.0 7

1.3.4 VisualAge Persistence Builder 7

1.3.5 EJB 2.0 8

1.4 开源及下一代 9

1.4.1 Hibernate 10

1.4.2 iBATIS 10

1.5 吸收对象数据库的反主流文化 11

1.5.1 ODMG 11

1.5.2 JDO 12

1.5.3 JPA 12

1.6 面向服务架构及之后 13

1.6.1 信息作为服务 13

1.6.2 pureQuery和ProjectZero 14

1.7 小结 15

1.8 参考文献 16

第2章 高层需求和持久性 17

2.1 一些“必要的”背景 17

2.1.1 了解利益相关者 17

2.1.2 不同的人有不同的需求 18

2.2 管理人员和业务需求 19

2.2.1 硬件和软件的依赖 22

2.2.2 标准的支持 23

2.2.3 开源和社区驱动的活动 24

2.2.4 供应商、许可协议和支持 25

2.2.5 知识产权的考虑 25

2.2.6 可用的技术人员 27

2.2.7 有效的培训和指导 27

2.2.8 开发和管理工具 28

2.2.9 构建还是购买 29

2.3 IT负责人和企业级品质的解决方案 30

2.3.1 功能性和业务流程 31

2.3.2 可靠性和事务请求 33

2.3.3 可用性和用户会话 34

2.3.4 有效性和运行时资源 35

2.3.5 可维护性和应用组件 38

2.3.6 可移植性和标准平台 39

2.3.7 互操作性和企业级品质的解决方案 41

2.4 小结 42

2.5 参考资料 43

第3章 设计持久对象服务 44

3.1 一些基本概念 44

3.1.1 模式语言 44

3.1.2 领域模型模式 45

3.2 领域建模最佳实践 46

3.2.1 选择某种建模符号来沟通必要细节 46

3.2.2 项目利益相关者参与创建和修改领域模型 47

3.2.3 领域模型不是设计模型 48

3.2.4 领域模型并不总是必需的 48

3.2.5 基于变化的规划 49

3.3 公共的ORM范例的价值 49

3.3.1 领域模型 50

3.3.2 数据库模式 53

3.3.3 数据库约束 54

3.3.4 数据库规范化方法 55

3.3.5 服务接口 57

3.3.6 单元测试用例 59

3.4 再谈对象关系映射阻抗失配 63

3.4.1 关联 64

3.4.2 组合 67

3.4.3 包容 68

3.4.4 封装 69

3.4.5 继承 70

3.4.6 多态性 72

3.4.7 对象标识 73

3.4.8 对象导航 74

3.5 对象关系映射方法 76

3.5.1 自顶而下 76

3.5.2 自底而上 77

3.5.3 中间对接 78

3.6 可考虑的其他模式 79

3.6.1 元数据映射、延迟加载和工作单元 79

3.6.2 分布式外观和数据传输对象 79

3.7 小结 80

3.8 参考资料 81

第4章 如何评估可选项 83

4.1 同型比较 83

4.1.1 能够体现好、更好和最好的语境 84

4.1.2 建立独立的标准 84

4.1.3 制订清单并检查两次 86

4.1.4 保持清单真实 87

4.2 企业级持久性 89

4.2.1 一种规格并非处处适用 90

4.2.2 不问是否,而问什么与为何 90

4.2.3 细节就是问题所在 91

4.3 一个可用的评估模板 92

4.3.1 背景 93

4.3.2 架构概况 93

4.3.3 编程模型 94

4.3.4 ORM功能支持 96

4.3.5 调优选项 98

4.3.6 公共范例的开发过程 99

4.4 充分利用你的经验 100

4.4.1 尽早并经常使用调查问卷 100

4.4.2 记住历史以免重蹈覆辙 101

4.5 小结 101

4.6 参考资料 102

第2部分 同型比较 104

第5章 JDBC 104

5.1 背景 104

5.1.1 框架类型 104

5.1.2 历史 105

5.2 层次架构概况 105

5.2.1 标准遵守 106

5.2.2 平台要求 107

5.2.3 其他依赖 107

5.2.4 供应商和许可协议 108

5.2.5 现有文献 108

5.3 编程模型 109

5.3.1 初始化 110

5.3.2 连接 111

5.3.3 事务 113

5.3.4 创建 115

5.3.5 检索 116

5.3.6 更新 118

5.3.7 删除 119

5.3.8 存储过程 119

5.3.9 批处理 119

5.3.10 框架扩展 120

5.3.11 错误处理 120

5.4 ORM功能支持 121

5.4.1 对象 122

5.4.2 继承 123

5.4.3 键 124

5.4.4 属性 124

5.4.5 被包含对象 125

5.4.6 关联关系 126

5.4.7 约束 126

5.4.8 派生属性 127

5.5 调优选项 127

5.5.1 查询优化 127

5.5.2 缓存 128

5.5.3 加载相关联对象 128

5.5.4 锁 129

5.6 公共范例的开发过程 129

5.6.1 定义对象 129

5.6.2 实现服务 132

5.6.3 组件打包 137

5.6.4 单元测试 137

5.6.5 生产部署 138

5.7 小结 138

5.8 参考资料 139

第6章 Apache iBATIS 140

6.1 背景 140

6.1.1 框架类型 140

6.1.2 历史 140

6.2 架构概况 141

6.2.1 标准遵守 142

6.2.2 平台要求 142

6.2.3 其他依赖 142

6.2.4 供应商和许可协议 143

6.2.5 现有文献 143

6.3 编程模型 144

6.3.1 初始化 144

6.3.2 连接 146

6.3.3 事务 146

6.3.4 创建 148

6.3.5 检索 150

6.3.6 更新 151

6.3.7 删除 152

6.3.8 存储过程 153

6.3.9 批处理 154

6.3.10 框架扩展 155

6.3.11 错误处理 157

6.4 ORM功能支持 158

6.4.1 对象 158

6.4.2 继承 158

6.4.3 键 162

6.4.4 属性 163

6.4.5 被包含对象 166

6.4.6 关系 166

6.4.7 约束 169

6.4.8 派生属性 170

6.5 调优选项 172

6.5.1 查询优化 172

6.5.2 缓存 172

6.5.3 加载相关联对象 173

6.5.4 锁 174

6.6 公共范例的开发过程 174

6.6.1 定义对象 174

6.6.2 实现服务 181

6.6.3 组件打包 188

6.6.4 单元测试 189

6.6.5 生产部署 189

6.7 小结 189

6.8 参考资料 191

第7章 Hibernate Core 192

7.1 背景 192

7.1.1 框架类型 193

7.1.2 历史 193

7.2 架构概况 193

7.2.1 标准遵守 193

7.2.2 平台要求 194

7.2.3 其他依赖 194

7.2.4 供应商和许可协议 194

7.2.5 现有文献 194

7.3 编程模型 195

7.3.1 初始化 196

7.3.2 连接 198

7.3.3 事务 198

7.3.4 创建 200

7.3.5 检索 201

7.3.6 更新 204

7.3.7 删除 205

7.3.8 存储过程 207

7.3.9 批处理 208

7.3.10 框架扩展 208

7.3.11 错误处理 208

7.4 ORM功能支持 209

7.4.1 对象 209

7.4.2 继承 211

7.4.3 键 212

7.4.4 属性 216

7.4.5 被包含对象 217

7.4.6 关联关系 219

7.4.7 约束 220

7.4.8 派生属性 220

7.5 调优选项 221

7.5.1 查询优化 221

7.5.2 缓存 221

7.5.3 加载相关联对象 222

7.5.4 锁 224

7.6 公共范例的开发过程 226

7.6.1 定义对象 226

7.6.2 实现服务 232

7.6.3 组件打包 238

7.6.4 单元测试 239

7.6.5 生产部署 239

7.7 小结 239

7.8 参考资料 240

第8章 Apache OpenJPA 241

8.1 背景 241

8.1.1 框架类型 242

8.1.2 历史 242

8.2 架构概况 242

8.2.1 标准遵守 242

8.2.2 平台要求 243

8.2.3 其他依赖 243

8.2.4 供应商和许可协议 243

8.2.5 现有文献 244

8.3 编程模型 245

8.3.1 初始化 246

8.3.2 连接 247

8.3.3 事务 250

8.3.4 创建 253

8.3.5 检索 253

8.3.6 更新 255

8.3.7 删除 257

8.3.8 存储过程 258

8.3.9 批处理 258

8.3.10 框架扩展 259

8.3.11 错误处理 259

8.4 ORM功能支持 260

8.4.1 对象 261

8.4.2 继承 262

8.4.3 键 267

8.4.4 属性 272

8.4.5 被包含对象 276

8.4.6 关联关系 279

8.4.7 约束 283

8.4.8 派生属性 283

8.5 调优选项 285

8.5.1 查询优化 285

8.5.2 缓存 285

8.5.3 加载相关联对象 287

8.5.4 锁 287

8.6 公共范例的开发过程 288

8.6.1 定义对象 288

8.6.2 实现服务 292

8.6.3 组件打包 296

8.6.4 单元测试 298

8.6.5 生产部署 298

8.7 小结 298

8.8 参考文献 300

第9章 pureQuery和Project Zero 301

9.1 背景 301

9.1.1 框架类型 302

9.1.2 历史 302

9.2 层次架构概况 303

9.2.1 标准遵守 305

9.2.2 平台要求 306

9.2.3 其他依赖 306

9.2.4 供应商和许可协议 306

9.2.5 现有文献 307

9.3 编程模型 308

9.3.1 初始化 309

9.3.2 连接 310

9.3.3 事务 311

9.3.4 创建 313

9.3.5 检索 316

9.3.6 更新 318

9.3.7 删除 319

9.3.8 存储过程 320

9.3.9 批处理 321

9.3.10 框架扩展 321

9.3.11 错误处理 323

9.4 ORM功能支持 323

9.4.1 对象 324

9.4.2 继承 324

9.4.3 键 326

9.4.4 属性 327

9.4.5 被包含对象 327

9.4.6 关联关系 327

9.4.7 约束 328

9.4.8 派生属性 328

9.5 调优选项 329

9.5.1 查询优化 329

9.5.2 缓存 330

9.5.3 加载相关联对象 330

9.5.4 锁 331

9.6 公共范例的开发过程 331

9.6.1 定义对象 333

9.6.2 实现服务 336

9.6.3 组件打包 341

9.6.4 单元测试 343

9.6.5 生产部署 344

9.7 小结 344

9.8 参考资料 346

第10章 将理论付诸实践 348

10.1 评估一览 348

10.1.1 背景 348

10.1.2 架构概况 349

10.1.3 编程模型 349

10.1.4 ORM功能支持 351

10.1.5 调优选项 351

10.1.6 公共范例的开发过程 352

10.2 现在要做什么 353

10.2.1 不要另起炉灶来避免权衡 353

10.2.2 利用和扩展开源项目 354

10.2.3 使用敏捷过程并持续重构 355

10.2.4 做好重访决定的准备 358

10.3 小结 358

10.4 参考资料 359

附录A 安装公共范例 360

A.1 支撑技术的简要背景 360

A.1.1 Apache Derby 360

A.1.2 Eclipse 361

A.1.3 JUnit和DbUnit 361

A.2 安装前提条件 362

A.2.1 下载源代码 362

A.2.2 JDK 5.0 363

A.2.3 Eclipse 3.2+ 363

A.2.4 Apache Derby Eclipse Plug-in 363

A.2.5 Project Zero M1 Eclipse Plug-In 363

A.3 导入和运行特定持久性技术的代码 363

A.3.1 导入Java SE应用程序 363

A.3.2 解决项目的DbUnit问题 365

A.3.3 添加Apache Derby特性 366

A.3.4 启动Apache Network Server 367

A.3.5 运行数据库脚本 368

A.3.6 运行JDBC的单元测试 368

A.3.7 解决iBATIS的依赖问题 369

A.3.8 运行iBATIS JUnit 371

A.3.9 解决Hibernate的依赖问题 372

A.3.10 运行Hibernate应用程序 373

A.3.11 解决OpenJPA的依赖问题 374

A.3.12 运行OpenJPA的字节码增强 376

A.3.13 运行OpenJPA应用程序 377

A.3.14 运行Project Zero应用程序 378

A.3.15 使用IBM EJB 3功能包来运行EJB3应用程序 380

A.3.16 疑难解答 386

A.4 参考资料 386