快速业务通道

高级DAO编程 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
(String id)

public java.util.Collection findMoviesByYear(String year)

public void deleteMovie(String id)

public Movie createMovie(String rating, String year, String, title)

public void updateMovie(String id, String rating, String year, String title)

daoexamples.movie 包包含 MovieDAO 接口的两个实现。每一个实现使用一种不同的方式进行事务界定,如表 3 所示:

表 3. MovieDAO 实现

MovieDAOImpl MovieDAOImplJTA
实现 MovieDAO 接口?
通过 JNDI 获得 DataSource?
从 DataSource 获得 java.sql.Connection 对象?
DAO 在内部界定事务?
使用 JDBC 事务?
使用一个 XA DataSource?
参与 JTA 事务?

高级DAO编程(8)

时间:2011-02-08 IBM Sean C. Sullivan

MovieDAO 演示应用程序

这个演示应用程序是一个名为 daoexamples.moviedemo.DemoServlet 的 servlet 类。 DemoServlet 使用这两个 Movie DAO 查询和更新表中的电影数据。

这个 servlet 展示了如何将支持 JTA 的 MovieDAO 和 Java 消息服务(Java Message Service)结合到一个事务中,如清单 8 所示。

清单 8. 将 MovieDAO 和 JMS 代码结合到一个事务中

UserTransaction utx = MovieUtil.getUserTransaction();   utx.begin();   batman = dao.createMovie("R",       "2008",       "Batman Reloaded");   publisher = new MessagePublisher();   publisher.publishTextMessage("I''ll be back");   dao.updateMovie(topgun.getId(),       "PG-13",       topgun.getReleaseYear(),       topgun.getTitle());   dao.deleteMovie(legallyblonde.getId());   utx.commit();

要运行这个演示应用程序,需要在应用服务器上配置一个 XA 数据源和一个非 XA 数据源。然后,部署 daoexamples.ear 文件。这个应用程序可以在任何兼容 J2EE 1.3 的应用服务器上运行。

结束语

正如本文所展示的,实现 DAO 模式需要做比编写低级别的数据访问代码更多的工作。现在,通过选择一个适合您的应用程序的事务界定策略、通过在 DAO 类中加入日志记录,以及通过遵从几项简单的异常处理原则,您可以构建更好的 DAO。

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