没有合适的资源?快使用搜索试试~ 我知道了~
Using Spring with JDO and Hibernate 中文版
需积分: 9 68 下载量 114 浏览量
2007-12-20
22:11:06
上传
评论
收藏 256KB PDF 举报
温馨提示
试读
13页
Using Spring with JDO and Hibernate 中文版
资源推荐
资源详情
资源评论
将Spring与JDO结合使用
JDO是用于Java应用程序持久性的非EJB标准。本部分将使用我们最喜欢的JDO实现——Kodo实
现应用程序的透明持久性。在这部分内容中,我不会试图教授给您关于JDO的知识,而是为您示
范如何应用它使应用程序具有持久性。
假如您是JDO忠实的追随者,可能会记起种种像十字军东征般激烈的奋斗。大多数人一直在避免
使用JDO,这种情况直到最近才有所改善。由于即将发布JDO 2.0、若干可靠的商业JDO实现和开
源JDO实现,该持久性标准似乎正在积聚其作为在ORM领域更强大参与者的动力。事实上,Solar
Metric的Kodo是我喜欢的ORM实现,可能也是领先的ORM实现。当谈到商业实现时Solar Metric
的Kodo似乎比其他可选产品更加健壮。
Solar Metric的Kodo具有更加灵活的映射支持,更加易于管理,具有更加丰富的核心企业持久性
支持。请考虑以下这些优势:
z 假如您在寻找开放的JDO实现或者对源代码更好的控制,您能够从各种开放源码JDO实现中
做出选择。
z 假如您不需要以上的JDO实现,可以选择商业实现,以公平的价格获得支持和维护。
z 在顶尖商业厂商的帮助下,您可以获得难以置信的力量与表现,从更出色的管理到更灵活
的映射。
z 在开放标准提供的保护与安全保障下获得全部这些优势。
如何实现?
您将使用JDO创建一个持久性的模型,随后通过正面层(façade layer)使用该模型。该应用程序
已创建好了一个业务域模型。但它还不具备持久性。同时您还获得一个正面层的界面。只需按照
以下步骤操作就能启用JDO应用程序:
1. 使域模型具备永久性。可通过字节码增强器实现。
2. 在配置文件中进行一些简单的更改即可将Spring配置为使用Kodo。
3. 通过JDO模板构建使用持久性模型的正面。
就是这样。Sping将管理核心JDO资源,JDO核心资源由PersistenceManagerFactory和
PersistenceManager构成。将这些特殊选项看作JDO的数据源和连接。您能通过Spring管理事务。
需要完成的一切工作就是上述三步。
首先,需要下载并安装Kodo。我们从试用版开始,可在http://www.solarmetric.com
找到试用版
。
学习本书时可使用Kodo 3.2.1。您必须再一次将/kodo-jdo-3.2.1/lib中的库添加到/lib文件夹中。
通过修改Ant任务添加JDO字节码增强步骤使模型具有持久性:为此添加一个Ant任务,如示例5-8
所示。
示例5-8. build.xml
<taskdef name="jdoc" classname="kodo.ant.JDOEnhancerTask"/>
<target name="jdo.enhance">
<jdoc>
<fileset dir="${src.dir}">
<include name="**/*.jdo" />
</fileset>
</jdoc>
</target>
您还需为kodo-jdo.jar
、
jdo-1.0.1.jar和jakarta-commons-lang-1.0.1.jar向Ant构建文件添加路径元素。
下一步,构建持久性映射。最简单的方法是通过Kodo向导构建持久性映射。启动工作台(在您
安装的Kodo的\bin
目录中)
然后从菜单中选择MetaData➝Create MetaData。反之,您也可以使用
/kodo-jdo-3.2.1/bin目录中的metadatatool和mappingtool脚本创建元数据,这两个工具分别是
kodo.jdbc.meta.MappingTool和kodo.meta.JDOMetaDataTool的启动器。
但为保持和其他JDO版本的一致,您将从头开始使用XML构建映射。通过类元数据生成一个.jdo文
件和一个.mapping文件。这两个文件驻留于/war/WEB-INF/classes/com/springbook文件夹。
示例5-9显示元数据文件。
示例5-9
package.jdo
<?xml version="1.0" encoding="UTF-8"?>
<jdo>
<package name="com.springbook">
<class name="Bike">
<extension vendor-name="kodo" key="detachable" value="true"/>
<field name="reservations">
<collection element-type="Reservation"/>
<extension vendor-name="kodo" key="inverse-owner" value="bike"/>
<extension vendor-name="kodo" key="element-dependent"
value="true"/>
</field>
</class>
<class name="Customer">
<extension vendor-name="kodo" key="detachable" value="true"/>
<field name="reservations">
<collection element-type="com.springbook.Reservation"/>
<extension vendor-name="kodo" key="inverse-owner"
value="customer"/>
<extension vendor-name="kodo" key="element-dependent"
value="true"/>
</field>
</class>
<class name="Reservation">
<extension vendor-name="kodo" key="detachable" value="true"/>
</class>
剩余12页未读,继续阅读
资源评论
luanfeng2008
- 粉丝: 6
- 资源: 110
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功