JDO开发
JDO开发
David Jordan, Craig Russell
O'Reilly Taiwan公司 编译
出版时间:2006年02月
页数:366
《JDO开发》彻底革新了Java开发者与数据库及其他数据存储空间的交互方式。JDO可以让你以Java程序员的最自然的方式来存储及撷取对象。你不需要在数据库的数据表中使用JDBC或EJB的由容器管理的持久保存机制:JDO实现会在幕后处理持久保存,而你则使用一般的Java语法依据Java对象的字段来进行查询。
这样产生的软件会是真正的面向对象程序,而非在后端含有大量数据库程序的部分面向对象程序。JDO可让你存储平凡的一般Java对象,而且也不强迫你使用不同的数据模型及类型来处理数据存储的操作。因此,程序变得比较容易维护、再使用以及测试。此外,你也不会被限定于特定的数据库供货商:JDO程序是完全与数据库无关的。你甚至不需知道数据库是关系数据库、对象数据库还是只是一组文件。
这本由JDO规范的主导人及主要制订人所编写的书,详尽地论述了JDO API。从示范许多JDO功能的简单应用程序开始,本书彻底地介绍了JDO。《JDO开发》会告诉你如何让类成为持久保存的、JDO如何将持久保存类映射至数据库、如何在运行时设定JDO、如何执行事务以及如何进行查询。更深入的章节包括如非事务式访问及乐观事务这样的选择性功能。本书最后则讨论如何在网络应用程序及J2EE环境中使用JDO。
无论你是只想了解有趣的新技术,还是认真地考虑除了JDBC或EJB CMP之外的技术,你都会发现这本书很重要。至目前为止,这是最具权威且最完整的一本讲述JDO的书。
David Jordan是JDO专家小组的主要制订人,也是JDOCentral.com的仲裁员。他是Object Identity公司的负责人,这间公司提供JDO的咨询服务。Craig Russell是Java数据对象规范的主导人,他也是Sun ONE应用程序服务器的由容器管理的持久保存组件的设计师。
“这是一本彻底且清楚的JDO持久保存机制的使用导引。”
— Martin Fowler
  1. 前言
  2. 第一章 初探
  3. 定义持久保存的对象模型
  4. 项目的编译环境
  5. 建立数据存储空间连接与事务
  6. 操作实例
  7. 小结
  8. 第二章 JDO接口概论
  9. javax.jdo包
  10. javax.jdo.spi包
  11. 选择性的功能
  12. 第三章 JDO架构
  13. 应用程序JVM内的架构
  14. 访问数据存储空间
  15. JDO应用程序的系统结构
  16. 第四章 定义持久保存类
  17. 类与实例的种类
  18. Java类与元数据
  19. 字段
  20. 第五章 数据存储空间的映射
  21. 映射的方式
  22. 建立关系模型的结构
  23. 建立Java与关系模型中的模型结构
  24. 将类映射至数据表
  25. 将单一值的字段映射至数据列
  26. 标识
  27. 继承
  28. 引用
  29. 集合与关系
  30. 第六章 类的增强
  31. 增强的方式
  32. 二进制兼容性
  33. 增强对源代码的影响
  34. 增强工具所做的改变
  35. 第七章 建立JDO运行时环境
  36. 配置PersistenceManagerFactory
  37. 取得PersistenceManager
  38. 事务
  39. 多个PersistenceManager
  40. 多线程
  41. 第八章 管理实例
  42. 实例的持久保存性
  43. Extent的访问
  44. 访问与更新实例
  45. 删除实例
  46. 第九章 JDO查询语言
  47. 查询的成员
  48. 创建与初始化查询
  49. 高速缓存中的改变
  50. 查询的命名空间
  51. 查询的执行
  52. 查询过滤器
  53. 排序查询的结果
  54. 关闭查询
  55. 第十章 标识
  56. 概述
  57. 数据存储空间标识
  58. 应用程序标识
  59. 非持久性标识
  60. 标识的方法
  61. 高级议题
  62. 第十一章 生命周期状态与转换
  63. 生命周期状态
  64. 状态的查询
  65. 状态转换
  66. 第十二章 管理字段
  67. 事务式字段
  68. null值
  69. 取得字段
  70. 串行化
  71. 在生命周期事件中管理字段
  72. 第一级与第二级对象
  73. 第十三章 管理高速缓存
  74. 明确地管理高速缓存中的实例
  75. 复制
  76. 瞬时事务式实例
  77. 使持久保存实例成为瞬时的
  78. 第十四章 非事务式的数据访问
  79. 非事务式功能
  80. 在事务外读取数据
  81. 非事务式持久保存状态
  82. 在确认事务时保留值
  83. 在回滚事务时还原值
  84. 在事务外修改持久保存实例
  85. 第十五章 乐观事务
  86. 确认时的验证
  87. 乐观事务的生命周期状态的转换
  88. 删除实例
  89. 使实例成为事务式
  90. 修改实例
  91. 确认
  92. 回滚
  93. 第十六章 网络服务器的环境
  94. 网络服务器
  95. Struts与JDO
  96. 第十七章 J2EE应用程序服务器
  97. Enterprise JavaBeans架构
  98. Stateless Session Bean
  99. 由bean自行管理的事务
  100. Message-Driven Bean
  101. 持久保存实体与JDO
  102. 附录一 生命周期状态与转换
  103. 附录二 JDO元数据DTD
  104. 附录三 JDO接口与异常类
  105. 附录四 JDO查询语言的BNF
  106. 附录五 范例的源代码
  107. 索引
书名:JDO开发
译者:O'Reilly Taiwan公司 编译
国内出版社:东南大学出版社
出版时间:2006年02月
页数:366
书号:7-5641-0238-1
原版书出版商:O'Reilly Media
David Jordan
 
David Jordan在2001年成立了Object Identity公司来提供JDO咨询服务。当他在1980年初攻读计算机科学的硕士时,开始对对象类型的系统集成与数据库发生兴趣。1985年,他在Bell实验室开创了全世界第一个C++对象数据库的开发计划。David已经将C++对象模型运用在网络、关系型以及对象型数据库系统上,并开发出许多不同的应用程序。在1990年时,Bell实验室颁给他杰出技术人员奖,以表彰他在对象与数据库技术上的贡献。
在1993年时,对象数据管理组织(Object Data Management Group,ODMG)邀请David担任其C++的编辑。直到2000年为止他一直担任该职,并于1998年又担任该组织的Java编辑。有四本ODMG出版的书都是由David参与编辑的。从1994年到1996年,他担任描述ODMG标准的C++ Report专栏作家,并在这段期间内开始编写第一本书 —— 《C++ Object Databases》。
在1995年末David开始使用Java。在被任命为ODMG的Java编辑时,他也成为Java Report的专栏作家,起初先撰写ODMG标准,接着则论及JDO。David是草拟JSR-12的小组成员之一,并成为JDO专家小组的创始会员之一。在JDO的规范说明中,还特别感谢David对JDO标准的贡献。在成立JDOCentral.com的社区网站时,David被选为其仲裁员。你可以通过david.jordan@objectidentity.com与他联络。
 
 
Craig Russell
 
Craig Russell曾在哈佛大学攻读应用数学学士学位(1970-1971),并通过维修具有1997年模式的膝上型计算机的运算能力的主机而获得实践经验。他早期在分布式计算领域中的经验包括用CICS与DL/I来组建应用程序,以及设计异构网络服务器实现,以便提供在个人计算机间共享文件、打印与通信的服务。Craig后来负责处理在Smalltalk、C++与Java之间持久保存对象相互操作性的问题,并利用X/OPEN XA协议与商用事务处理系统来集成对象与关系型数据库。
Craig为ODMG的Java负责人,并在ODMG 3.0 Java绑定的开发中扮演关键性的角色。对于建立以Java访问数据库的下一代标准,ODMG已决定支持Java Community Process(JCP)作为发布的渠道。因为有所有主要关系数据库与中介软件供货商的支持,JCP于1999年5月提出JSR-12 —— Java数据对象,并于2002年4月正式发布。
与开发JDO标准并行的是,Craig的主要任务是替一些Sun公司的实现主导对象关系数据库引擎的实现,其中包括Java Blend与Forte for Java的透明性持久保存机制。Craig目前是Sun ONE应用程序服务器的CMP(Container Managed Persistence)实现的设计师。他负责在J2EE应用程序服务器中实现高效能、符合规范的对象关系数据库组件。
 
 
O'Reilly特有的封面设计风格,主要来自读者的建议、我们自己的试验以及书店的经验。唯有独树一帜的封面,才能凸显我们对于技术议题的阐述风格,避免读者被枯燥的主题压得喘不过气来。
《JDO开发》的封面上的动物是一只兔袋狸(Macrotis lagotis),也可称其为ninu、dalgyte、粉红兔(pinky)或有兔子耳朵的袋鼠。兔袋狸是一种兔子大小的袋类动物,它拥有像丝一样的蓝灰色毛、长而尖的鼻子、大型的像兔子般的耳朵以及有白色尖端的长而黑的尾巴。这些特色的奇怪组合可能看来相当不搭配,不过,由于其脆弱与可爱的外貌,已成为澳洲最吸引人及著名的哺乳动物之一。对许多澳大利亚人而言,复活节兔袋狸甚至已取代通俗的复活节兔。
兔袋狸很能适应现在所居住的地方的炎热与干燥的气候。其长而瘦的舌头可帮助它们进食种子、昆虫、葱兰、水果以及真菌。兔袋狸有发育健全的前臂及长的爪子,可以用来挖掘居住用的深而且呈螺旋状的洞穴。兔袋狸完全是夜行性动物,而且在白天会用土堵住其洞穴的入口,以防御极端的温度。因为兔袋狸是独居性动物,所以洞穴通常只有一个入口,而且只住着一只兔袋狸。不过,母兔袋狸则会与其幼狸一起生活。与其他袋类动物一样,母兔袋狸有向后开启而且含有八个奶头的育儿袋,以便用来携带及保护其幼狸大约80天。兔袋狸通常一次不会生育超过两只幼狸。
虽然在整个澳大利亚兔袋狸曾经为数十分众多,但由于疾病、农业上的清理、狐狸与野猫的扩散,以及对兔子数量的控制(经常会不公平地将无辜的兔袋狸归类成与其相似的兔子),已经使得兔袋狸的居住地限制在西澳大利亚、北方领土以及西南昆士兰。许多澳大利亚及国际保护团体现在已将兔袋狸列入濒临绝种的动物。