快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
imo和Spring框架,第3部分: 集成DAO与ORM(9) 时间:2011-10-13 IBM Arun Chhatpar

定义 DAO 接口

现在可以开始实施了,先为应用程序定义 DAO 接口。

清单 4 显示了 DAO 接口,它只有一个方法,但已足够。impl 类将在其中保存实际代码。

清单 4. 应用 程序的 DAO 接口

/*  * IPhonebookDAO.java   * This interface  lists the database operations that can be performed for the  * phonebook  application. To make things simple, this one only has a method  * to get  a list of all phonebook entries.  */ public interface IPhonebookDAO {   public List getPhonebookEntries() throws Exception; }

DAO 接口的 JDBC 实现

IPhonebookDAO 只是一个接口;它不为应用程序提供任何 功能,但它确实 能够使应用程序的设计更具可扩展性。在 清单 5 的 DAO 的实现中,使用了 Spring JDBC 核心库中的 JdbcDaoSupport 类。

JdbcDaoSupport 是一个用于 JDBC 数据访问对象的类。 它要求设定一个数据源,并为其子类提供一个 JdbcTemplate。

JdbcTemplate 是 JDBC 核心软件 包中的中心类。此类通过处理创建及发布资源简化了在应用程序中使用 JDBC 的过程。正如在 清单 5 中 可以看到的那样,开发人员无需知道关于数据库的任何信息也无需关心关闭打开的连接。JdbcTemplate 会负责处理这一切。它还捕捉 JDBC 异常并把这些异常转换为在 Spring 中定义的更具信息性的一般的异 常层次结构。清单 5 显示了 Java 代码(它并不完整,因此请参考项目工作区的 src 目录中的 Java 文 件)。

清单 5. PhonebookJdbcDao 使用 Spring JDBC 库

/**  * This  class represents the DAO implementation of your application.  * It uses the  Spring JdbcDaoSupport class from the Spring JDBC module.  */ public  class PhonebookJdbcDao extends JdbcDaoSupport implements   IPhonebookDAO{   ...   public java.util.List getPhonebookEntries() throws Exception {      JdbcTemplate jt = getJdbcTemplate();     return jt.query("SELECT * FROM  PB_ENTRY A, PB_DETAILS B WHERE   A.ENTRY_ID = B.ENTRY_ID AND A.ENTRY_ID  <> 0",             new RowMapperResultReader(new  PhonebookRowMapper()));   } ...

现在已经创建了接口,接下来需要定义 应用程序从中读取数据的数据源。您将看到如何使用 Spring 连接到 Derby 数据库。

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

时间:2011-10-13 IBM Arun Chhatpar

在 Application Context 中定义 DataSource

使用在 Geronimo 中运行的 Spring 框架的 IoC 容器 来提供可以注入到 PhonebookJdbcDao 对象中的 DataSource。IoC 容器是提供依赖性注入的核心功能的 一种 Spring 容器。正如 清单 6 所示,定义一个新的 ApplicationContext.xml 文件,它与 servlet- context.xml 中定义的上下文不同。

必须定义一个指向已经创建的电话本数据库的 Datasource Bean。该 Bean 还指示 Spring 容器使用 Derby 核心 API 的嵌入式驱动程序。之所以使用该嵌入式驱动 程序是因为 Derby 数据库运行于 Spring 应用程序所在的相同的 JVM 中。

接下来的 Bean 定义 告诉 Spring 容器将这个新定义的 DataSource 注入到为应用程序定义的 JDBC DAO 对象。因此,现在应 用程序知道它只能使用 Derby JDBC 驱动程序连接到数据库,而此数据库是由运行在 Geronimo 应用服务 器中的 Derby 定义的。

最后,将为 DataProvid

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号