快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
型 PhonebookEntry 对象。查看 清单 11 以更好地了解这一切是如何实现的。

清单 11. phonebook.xml 把业务模型映射到 SQL 语句

<sqlMap namespace="Phonebook">   <select id="getPhonebookEntries"   resultClass="phonebook.dao.PhonebookEntry">     SELECT     A.ENTRY_ID  as entryID,     A.ENTRY_FNAME as fName,     A.ENTRY_LNAME as  lName,     B.ROW_ID as rowID,     B.HOME_NUMBER as homeNumber,      B.WORK_NUMBER as workNumber,     B.CELL_NUMBER as cellNumber,      B.EMAIL as email     FROM PB_ENTRY A, PB_DETAILS B     WHERE  A.ENTRY_ID = B.ENTRY_ID     AND A.ENTRY_ID != 0   </select> </sqlMap>

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

时间:2011-10-13 IBM Arun Chhatpar

创建 SQL 映射配置文件

这是 iBATIS API 所需的另一个文件 。它将告诉运行 iBATIS 框架的容器在何处可以找到为应用程序定义的 SQL 映射。清单 12 中定义的设 置是可选的;如果删除这些设置,应用程序应当仍能正常运行。

创建 sqlmap-config.xml 文件并 将其放在 <WORKSPACE>/phonebook/web/META-INF 文件夹中(参见 清单 12)。

清单 12. sqlmap-config.xml 文件告知 iBatis 容器应用程序的 SQL 映射

<?xml  version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC  "-//iBATIS.com//DTD SQL Map Config 2.0//EN"  "http://www.ibatis.com/dtd/sql-map -config-2.dtd" > <!-- Always be sure to use the correct XML  header as above --> <sqlMapConfig>   <settings  cacheModelsEnabled="true" enhancementEnabled="true"         lazyLoadingEnabled="true" maxRequests="32"        maxSessions="10"  maxTransactions="5"        useStatementNamespaces="false" />    <sqlMap resource="/phonebook/dao/orm/Phonebook.xml" /> </sqlMapConfig>

DAO 接口的 ORM 实现

使用 Spring 框架提供的 SqlMapClientDaoSupport 类来支持 iBATIS。这是一个实用工具类,它负责处理创建、管理和关闭连接这 些复杂的工作。

同 JdbcTemplate 类一样,SqlMapClientTemplate 类通过 iBATIS SQL 映射的 SqlMapClient API 简化了数据访问。它还处理所有 SQL 异常并将这些异常转换为一般的 Spring DAO 异 常。它与 JdbcTemplate 一样使用 SQLExceptionTranslator 机制。

清单 13 显示了 SqlMapPhonebookDao 类。

清单 13. DAO 接口的 ORM 实现

/**  * This  is the ORM SQL Maps implementation for your application.  * The  PhonebookEntry object is mapped directly to the database using the  * iBATIS  framework. You can use any kind of database for RDBMS.  */ public  class SqlMapPhonebookDao extends SqlMapClientDaoSupport   implements  IPhonebookDAO {   public List getPhonebookEntries() throws Exception {     return getSqlMapClientTemplate()  queryForList ("getPhonebookEntries",null);   } }

注:如果在 Geronimo 中重 新部署应用程序,可能需要重新启动服务器。由于某种原因,当重新部

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