快速业务通道

Apache Geronimo和Spring框架,第3部分: 集成DAO与ORM - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
署应用程序时,Derby 数据库不会 重新初始化电话本数据库。

Apache Geronimo和Spring框架,第3部分: 集成DAO与ORM(15)

时间:2011-10-13 IBM Arun Chhatpar

向 Spring Application Context 中添加 ORM

需要让 Application Context 知道 ORM 实现,并且需要注入 SqlMapClientTemplate 类所需的 SqlMapClient 对象。还要定义用于 ORM 示例的不同数据源。之所以这么做是想说明更改数据源以供测试或者更改应用 程序是多么容易。

之前我曾经要求您安装 Apache Commons dbcp 和 pools 软件包,那是因为本 文要定义的数据源将使用 Apache Commons API。可以为此数据源使用同一个 Derby 嵌入式驱动程序。

清单 14 中显示的第二个定义使用 SQLMapClientFactoryBean 来创建 SqlMapClient 对象的实例 并告诉它使用在前面的 JDBC-DAO 部分中定义的数据源。

第三个 Bean 将指示 Spring 框架在运 行时把 SqlMapClient 对象注入到 ORM DAO 实现对象中。

最后一个 Bean 是为 JDBC DAO 访问定 义的。它告诉 Spring 框架在运行时把第三个 Bean 创建的 DAO 对象注入到 PhonebookDataProvider 类 中(参见 清单 14)。

清单 14. 向 Application Context 中添加与 ORM 相关的 Bean

<!-- Bean Definitions for ORM beans, required for dataAccess  via ORM SQL  maps -->   <bean id="pbOrmDataSource"   class="org.apache.commons.dbcp.BasicDataSource"  destroy-method="close">      <property name="driverClassName"   value="org.apache.derby.jdbc.EmbeddedDriver"/>     <property name="url"  value="jdbc:derby:phonebook"/>     <property name="username"  value="APP"/>     <property name="password" value=""/>    </bean>   <bean id="sqlMapClient"   class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">     <property  name="configLocation"  value="/META-INF/sqlmap-config.xml"/>      <property name="dataSource" ref="  pbOrmDataSource"/>    </bean>   <bean id="phonebookOrmDao"   class="phonebook.dao.orm.SqlMapPhonebookDao">     <property  name="sqlMapClient" ref="sqlMapClient"/>   </bean>   <bean  id="phonebookOrmDataProvider"  class="phonebook.dao.PhonebookDataProvider">     <property name="pbDao">       <ref  local="phonebookOrmDao"/>     </property>    </bean>

把主页从 home.jsp 更改为 home-orm.jsp

最后一步是更改 home.jsp 来使用新定义的 ORM Data Provider。这与在本教程的 DAO 应用程序中创建的 home-dao.jsp 类似。惟一的区别在于需要访问不同的 Bean 来访问 ORM 对象。创建一个单独的 .jsp 文件还可以并排 比较这两个实现。

在 清单 15 中,可以看到 JSP 如何用 Bean 的名称获取 Bean,并使用它填充 视图。可以查看 home-orm.jsp 以获得完整代码(请参阅 下载 部分以获取有关链接)。

清单 15. home-orm.jsp 中的代码片段显示了如何获取 PhonebookOrmDataProvider bean

WebApplicationContext ctx =  WebApplicationContextUtils.getWebApp

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号