注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计其他编程语言/工具JDO核心技术

JDO核心技术

JDO核心技术

定 价:¥48.00

作 者: (美)Sameer Tyagi[等]著;侯普秀,曹振新译;侯普秀译
出版社: 清华大学出版社
丛编项:
标 签: Java

ISBN: 9787302099451 出版时间: 2005-03-01 包装: 简裝本
开本: 26cm 页数: 351 字数:  

内容简介

  Java Data Objects(JDO)提供了以Java为核心的使对象持久化的机制,以及将应用程序连接到底层持久数据仓库的标准API,从而简化了开发过程。对于每个有经验的Java开发人员来说,本书提供了关于JDO持久化的权威而全面的指导。通过实际的代码示例,本书介绍了持久对象的创建、读取、更新和删除,对象的生命周期和状态转换,JDO类和API,查询,体系结构,安全性等内容。此外还讨论了如何将JDO和EJBTM、JTA、JCA以及其他J2EETM技术集成,并且介绍了在单独程序和J2EETM组件中使用JDO的最优方法。如果您希望将更多的时间用于解决业务问题,而不是在持久性问题上浪费过多时间,那么就需要使用JDO技术,并且需要一本书来深入了解JDO,本书就是您最佳的选择。

作者简介

  Sameer Tyagi是SunMicrosystems的企业级Java架构师,在马萨诸塞州伯灵顿的Java中心工作。他与他人合著了多部涉及Java技术中不同领域的著作,如ProfessionalJSP、ProfessionalJspJ2EEEdition和ProfessionalJavaServerProgramming-J2EEEdition。他还常常为JavaPro,JavaWorld以及JavaDevelopersJournal杂志撰写文章。KeironMcCammon是Versant公司的CTO。他负责制定产品的策略以及定位,帮助金融和电信客户开发和部署大范围的JavaJ2EE分布式对象解决方案。Keiron也是JDO专家组(JSR 12)的成员,经常出席有关JDO的重要会议。

图书目录

第Ⅰ部分  引论
第1章  JDO概述 3
1.1  JDO的背景 3
1.2  域对象模型 3
1.3  垂直持久性 6
1.4  非受管环境与受管环境 11
1.4.1  非受管环境 11
1.4.2  受管环境 11
1.5  角色与职责 12
1.5.1  JDO规范 12
1.5.2  开发人员的职责 13
1.5.3  供应商的职责 14
1.6  小结 14
第2章  对象持久性的基础 15
2.1  应用程序中的持久性 15
2.2  JDK二进制串行化 16
2.2.1  串行化API 16
2.2.2  版本控制和串行化 17
2.2.3  需要使用对象串行化的情况 19
2.2.4  不需要使用对象串行化的情况 20
2.3  对象-关系映射 20
2.3.1  类和表 20
2.3.2  字符串、日期以及其他类型的映射 21
2.3.3  继承映射 22
2.3.4  安全性 25
2.3.5  查询语言转换 25
2.3.6  引用完整性、删除以及其他 25
2.3.7  O/R映射中的透明持久性 25
2.3.8  身份 26
2.4  建立自己的持久性映射层 26
2.4.1  缓存 27
2.4.2  事务数据库访问和事务对象 27
2.4.3  锁定 28
2.4.4  数组、集合、列表以及映射 28
2.4.5  性能和效率 28
2.4.6  建立与购买持久性框架 29
2.5  小结 29
第Ⅱ部分  分    论
第3章  JDO入门 33
3.1  JDO是如何工作的 33
3.2  JDO基础知识 36
3.3  定义类 37
3.3.1  JDO元数据 38
3.3.2  类到数据仓库的映射 39
3.4  连接数据仓库 39
3.5  创建对象 41
3.6  读取对象 42
3.6.1  使用导航读取数据 42
3.6.2  使用Extent读取数据 43
3.6.3  使用Query读取数据 44
3.7  更新对象 45
3.8  删除对象 46
3.9  JDO对象模型 47
3.9.1  基本类型 48
3.9.2  引用 49
3.9.3  集合类 52
3.9.4  数组 54
3.9.5  继承 55
3.9.6  修饰符 56
3.9.7  JDO不支持的内容 56
3.10  异常处理 56
3.11  对象身份 57
3.12  对象身份类型 59
3.12.1  数据仓库身份 59
3.12.2  应用程序身份 59
3.12.3  非持久的身份 62
3.13  对象生命周期 62
3.14  并发控制 63
3.14.1  ACID事务 63
3.14.2  乐观事务 64
3.15  小结 64
第4章  对象生命周期 65
4.1  持久对象的生命周期 65
4.1.1  对象的持久化 66
4.1.2  从数据仓库中创建对象 67
4.1.3  简化的生命周期 68
4.2  查找对象的状态 69
4.3  改变状态的操作 70
4.3.1  PersistenceManager.makePersistent 70
4.3.2  PersistenceManager.deletePersistent 71
4.3.3  PersistenceManager.makeTransient 71
4.3.4  Transaction.commit 71
4.3.5  Transaction.rollback 71
4.3.6  PersistenceManager.refresh 71
4.3.7  PersistenceManager.evict 71
4.3.8  读取事务中的字段 71
4.3.9  向事务写入字段 71
4.3.10  PersistenceManager.retrieve 72
4.4  回调 72
4.4.1  jdoPostLoad的使用 72
4.4.2  jdoPreStore的使用 73
4.4.3  jdoPreDelete的使用 73
4.4.4  jdoPreClear的使用 75
4.5  可选的状态 75
4.5.1  临时事务实例 75
4.5.2  临时事务实例的用法 76
4.5.3  非事务实例 76
4.5.4  乐观事务 78
4.6  综合运用 78
4.7  小结 82
第5章  使用JDO进行开发 83
5.1  JDO的概念 83
5.1.1  可持久性 83
5.1.2  JDO 元数据 84
5.1.3  默认读取组 85
5.1.4  可达性持久 85
5.1.5  第一类对象和第二类对象 86
5.1.6  对象身份 87
5.1.7  对象生命周期 87
5.1.8  事务 87
5.2  JDO接口和类 90
5.3  基本API 93
5.3.1  javax.jdo.PersistenceManagerFactory 93
5.3.2  PersistenceManager 102
5.3.3  Extent 119
5.3.4  Query 121
5.3.5  Transaction 127
5.3.6  InstanceCallbacks 133
5.4  异常类 135
5.4.1  JDOException 136
5.4.2  JDOFatalException 136
5.4.3  JDOFatalUserException 136
5.4.4  JDOFatalInternalException 136
5.4.5  JDOFatalDataStoreException 136
5.4.6  JDOOptimisticVerificationException 136
5.4.7  JDOCanRetryException 137
5.4.8  JDOUnsupportedOptionException 137
5.4.9  JDOUserException 137
5.4.10  JDODataStoreException 137
5.4.11  JDOObjectNotFoundException 137
5.5  其他的API 137
5.5.1  JDOHelper类 137
5.5.2  I18NHelper类 139
5.6  服务提供者接口API 139
5.6.1  PersistenceCapable 140
5.6.2  JDOPermission 140
5.6.3  JDOImplHelper 140
5.6.4  StateManager 140
5.7  小结 140
第6章  查找数据 141
6.1  通过身份查找对象 141
6.2  使用Extent查找一组对象 143
6.3  使用查询工具查找对象 144
6.4  JDOQL 147
6.5  查询、过滤器以及可选参数 153
6.5.1  声明参数 153
6.5.2  声明导入语句 155
6.5.3  声明变量 155
6.5.4  排序结果 155
6.5.5  查询中的命名空间 156
6.6  关于Query接口的更多内容 156
6.6.1  建立查询 156
6.6.2  查询与缓存 157
6.6.3  编译查询 157
6.6.4  查询模板 158
6.6.5  选择不同的查询语言 159
6.7  小结 160
第7章  体系结构 161
7.1  JDO与JDBC 161
7.2  RDBMS、ODBMS和平面文件 162
7.2.1  关系数据库中JDO的使用 162
7.2.2  对象数据库中JDO的使用 163
7.2.3  对象数据库与关系数据库 163
7.3  J2EE、RMI和CORBA 164
7.4  受管和非受管环境 165
7.4.1  连接管理 165
7.4.2  事务管理 166
7.5  多线程应用程序 167
7.5.1  多线程编程 167
7.5.2  简单的多线程编程 168
7.6  小结 168
第Ⅲ部分  J2EE
第8章  JDO和JCA 171
8.1  JCA概要 171
8.2  JDO和JCA 172
8.3  使用JDO和JCA 173
8.3.1  建立和配置 173
8.3.2  连接管理 173
8.3.3  事务管理 175
8.3.4  安全性 179
8.5  只使用JDO而不使用JCA 180
8.6  小结 180
第9章  JDO和EJB 181
9.1  概述 181
9.2  会话bean和JDO 183
9.2.1  事务管理 184
9.2.2  使用CMT的无状态会话bean示例 186
9.2.3  使用CMT的有状态会话bean示例 187
9.2.4  面向服务的体系结构(SOA) 189
9.3  消息驱动bean和JDO 199
9.4  实体bean和JDO 201
9.5  是否使用EJB 203
9.5.1  带有集群的、可伸缩的JDO应用程序 205
9.5.2  往返的方法 207
9.6  小结 207
第10章  安全性 209
10.1  安全级别 209
10.1.1  字段级别和类级别的安全性 209
10.1.2  数据仓库级别的安全性 210
10.1.3  应用程序级别的安全性 211
10.2  PersistenceCapable的实现 211
10.2.1  引用增强器 212
10.2.2  操作原理 213
10.2.3  跟踪字段访问 215
10.2.4  元数据访问 218
10.2.5  策略文件 218
10.2.6  安全问题 218
10.3  应用程序安全性 219
10.3.1  用户/密码的安全性 219
10.3.2  受管环境 220
10.3.3  应用程序特有的授权 221
10.4  小结 221
第11章  事务 222
11.1  事务的概念 222
11.1.1  参与者 223
11.1.2  本地事务 224
11.1.3  分布式事务 224
11.1.4  两阶段提交 224
11.2  Java中的事务 226
11.2.1  JDBC事务 226
11.2.2  JTA和JTS 227
11.3  JDO中的事务 229
11.3.1  理解乐观事务中的冲突 235
11.3.2  事务对象和非事务对象 236
11.3.3  保留和恢复值 239
11.3.4  J2EE应用程序服务器中的JDO和事务 240
11.3.5  事务回调的同步 248
11.4  小结 248
第Ⅳ部分  结    论
第12章  JDO和JDBC 251
12.1  JDBC 2.0和JDBC 3.0 251
12.1.1  使用JDBC的基本步骤 252
12.1.2  JDBC的发展史 253
12.1.3  JDBC 3.0规范中的新特性 253
12.1.4  供应商特有的JDBC API扩展 255
12.2  示例:使用JDBC将对象存储到关系数据库中 255
12.3  JDBC和JDO的比较 258
12.3.1  JDBC和JDO的特性比较 261
12.3.2  关于JDBC和JDO的一些错误理解 262
12.3.3  何时使用JDBC 265
12.3.4  何时在应用程序中使用JDO和JDBC 269
12.4  小结 270
第13章  提示、技巧以及最佳实践 271
13.1  数据模型 271
13.1.1  简介 271
13.1.2  包装器与原始类型 272
13.1.3  持久对象的引用 272
13.1.4  集合类型的字段 273
13.1.5  反向关系建模 275
13.1.6  继承层次结构 277
13.1.7  不要依赖于支持持久化(不是可持久)的类 278
13.2  JDO与Servlets 278
13.3  将域类与其他类分开 280
13.4  使用XML作为数据交换格式 281
13.4.1  简介 282
13.4.2  另一种选择 282
13.4.3  可用的技术 282
13.4.4  开始行动 284
13.5  验证 286
13.5.1  权衡 InstanceCallback的jdoPreStore方法 286
13.5.2  使用同步的beforeCompletion()方法 288
13.6  小结 290
第14章  未来的发展方向 291
14.1  高级的事务语义 291
14.1.1  嵌套事务 292
14.1.2  保存点 292
14.1.3  显式锁定 292
14.2  性能优化 292
14.3  受管关系 293
14.3.1  双向关系 293
14.3.2  级联删除 293
14.3.3  持久的垃圾回收 293
14.4  查询增强 294
14.4.1  字符串 294
14.4.2  聚合操作 294
14.4.3  投影 294
14.5  对象映射 294
14.6  枚举模式 295
14.7  小结 295
第15章  案例分析:Core JDO Library 296
15.1  文件、程序包和对象模型 296
15.2  持久化模型程序包 297
15.2.1  Publication类 297
15.2.2  Book类 299
15.2.3  CD类 300
15.2.4  Copy类 301
15.2.5  User类 303
15.2.6  Right和Rights类 304
15.3  usecase程序包 307
15.3.1  AbstractUsercase类 307
15.3.2  AddBooks 用例 310
15.4  BookOperation类 312
15.4.1  ListBooks用例 314
15.4.2  DetailedBook用例 317
15.4.3  Editbook用例 319
15.4.4  DeleteBook 用例 321
15.4.5  BorrowReturn类 322
15.4.6  Borrow用例 323
15.4.7  Return用例 324
15.5  综合运用 324
15.5.1  XML元数据 324
15.5.2  在命令行模式中运行 325
15.5.3  运行Servlet 325
附录A  JDO状态 327
附录B  XML元数据 329
B.1  元数据的位置 329
B.2  元数据元素 330
B.2.1  文件头 330
B.2.2  元素jdo 330
B.2.3  元素package 331
B.2.4  元素class 331
B.2.5  元素field 331
B.2.6  元素collection 332
B.2.7  元素map 333
B.2.8  元素array 333
B.2.9  元素extension 333
B.3  XML DTD 334
B.4  示例 335
附录C  JDOQL BNF表示法 336
C.1  文法表示法 336
C.1.1  参数声明 336
C.1.2  变量声明 337
C.1.3  导入声明 337
C.1.4  排序规范 337
C.1.5  过滤器表达式 337
C.1.6  类型 339
C.1.7  字面值 339
C.1.8  名称 340
附录D  PersistenceManagerFactory快速参考 341
D.1  可选特性 341
D.2  JDOHelper属性 342
附录E  JDO实现 344
E.1  JDO实现 344
E.1.1  商业JDO供应商 344
E.1.2  开放源代码的JDO项目 348
E.2  不兼容JDO的 Java持久化解决方案 349
E.2.1  商业供应商 349
E.2.2  开放源代码的持久性相关项目 350

本目录推荐