DTO DAO & PAO(J2EE design pattern摘记及感想5)

本文介绍了数据传递对象(DTO)和数据访问对象(DAO)的设计模式。DTO用于封装相关数据,便于一次获取所需全部信息;DAO负责从外部数据源读取数据并提供给业务组件使用。文中还探讨了行集DTO、LazyLoad懒加载、isDirty模式以及PAO过程访问对象等概念。

DTO:数据传递对象:

与其通过多次调用来获取一组相关数据,不如用一次调用获取一个包含了我们在当前事务中所需要的所有东西的定制对象。

串串烧:

PatientBean即我们定制的对象。这个对象提供了一组的get和set方法,来操作数据项。我们只要得到了这个对象,则可以操作所有当前事务中要操作的数据项了。

如何得到该对象?ejbLoad方法

首先从EntityContext中找到要找对象的主键(getPrimaryKey),然后建立JNDI lookup的本地方法,Connection con=getConnection。准备好sql语句,PreparedStatment ps=con.prepareStatement,最后运行sql,得到ResultSet,从ResultSet中,我们得到相应的东西,来初始化这个对象。有时候,要得到信息,还需要表的联接,这也通过运行相应的sql语句。

行集DTO:

包装一个ResultSet,我们可以通过getRow(index)得到ResultSet的某一行。主要ResultSet只是提供next方法,只能顺序遍历。ResultSetMetaData md=ResultSet.getMetaData()。md.getColumnName().可以提供列名信息(各列属性)。

DAO:数据访问对象:

从外部数据源读取数据,并提供对象(DTO对象)给业务组件使用。DAO非远程对象,对数据操作只能是存取,不能有业务方法。findPatient savePatient。然后,ejbLoad就可以调用findPatient方法了。

DAO工厂模式:可以根据系统属性,创建相应的PatientDAO。System.getProperty

LazyLoad:需要时才载入,特别是一些表的联接等耗时操作。

isDirty模式:被修改过的才写入(如只要写一个表,其它四个没改过)

PAO:过程访问对象,DAO的特殊形式,PAO增加了处理业务的能力(通过Command模式,如提供execute方法)

 
中文译名:J2EE设计模式<br/>作者:<br/>()William Crawford & Jonathan Kaplan <br/><br/>本书一边在持久化和消息通信等领域中描述一些新模式,一边向你说明如何在J2EE应用的上下文中实现许多模式。有助于考虑问题的优雅模式以及实际工作的企业开发人员的智慧结晶,在本书中被有机地结合到了一起。<br/><br/>内容简介<br/>已经有了那么多关于设计模式的书,为什么我们还需要另一本呢?<br/>设计模式是解决方案的构建模块:对一次又一次重现的问题求解技巧的抽象。列举和分类设计模式有助于让你了解你一直在重新发明的“轮子”。<br/>然而,一旦你列出抽象的模式,你就得回到现实世界并且在上下文中看那些模式。像资源池这样的模式是很有趣的,但是除非你已经实现了一个,否则仅仅知道它是一个“设计模式”对你并没有什么帮助。<br/>那就是奉书与众不同的地方。本书一边在持久化和消息通信等领域中描述一些新模式,一边向你说明如何在J2EE应用的上下文中实现许多模式。有助于考虑问题的优雅模式以及实际工作的企业开发人员的智慧结晶,在本书中被有机地结合到了一起。<br/>本书涵盖了如下的主题:<br/>· 表达层模式<br/>· 业务层模式<br/>· 业务层和表达层之间的交互<br/>· 持久化模式<br/>· 并发性模式<br/>· 企业消息通信模式<br/>· 反模式,或者本身已经变成为模式的错误<br/>在本书中提出的许多模式关注于可扩展性、可伸缩性、灵活性和性能——任何J2EE开发人员的主要关心点。有些模式对你来说将会是新的;有些则会是很熟悉的。但是不管你是否曾经见过这些模式,本书在向你说明如何把它们应用到实际的J2EE应用方面是独一无二的。如果你开发J2EE应用的话,那么本书就属于你的书架——并且应该就在你的手中。 <br/><br/>http://www.china-pub.com/computers/common/info.asp?id=24948<br/><br/>书籍图片:<br/>http://www.china-pub.com/computers/ebook20001-25000/24948/zcover.gif<br/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值