JiveJdon Community Forums
在线450人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » J2EE/JavaEE/JEE/EJB/JSF等技术讨论
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 1 回复 / 1
 发表新帖子   回复该主题贴
fnet

悄悄话
发表文章: 47
注册时间: 2007年06月23日 22:47
关于Dao接口方法参数 2008年01月13日 00:02 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表
查了网上很多资料,有的用一些ORM,简化了Dao的设计,但这个是不用ORM的,只能自己JDBC写Dao,看到了一些设计:

比如NewsDao接口中的一个查询方法,带分页,带一些参数,使用一个List装填结果,返回个数:
第一种:

...
//参数一堆
public abstract int getNews( List newsList , int pageNo , int pageSize , String where );
...


第二种:

...
//使用一个实现了Parameter接口的对象封装查询
public abstract int getNews( Parameter pBean );
...
//Parameter实现类如下
public class ParamBean implements Parameter {
int pageNo;
int pageSize;
List pageList;
//List内容填入这里,业务逻辑可以从这里面取,或者直接返回给jsp
String where;
//getter/setter略去
}


第三种:

...
//使用一个Map封装查询参数,再将Map中k/v对一一转成实际类型使用
// 比如第一页,总数10条,条件是时间大于192323200的记录
// Map: "pageNo":"1","pageSize":"10","where":"created > 192323200"
public abstract int getNews( List newsList , Map mParam );
...



我想,用第一种可能万一修改起这个接口实现每个都要动了,除非只增加。
第二种对象封装,service又要new一个Parameter对象出来了,而且用这种似乎没必要每个模块都写Dao,您想参数都恒定了。
第三种Map,需要转来转去,不知用哪一种好点,本人新手,请各位前辈指点迷津。
[该贴被fnet于2008-01-13 00:19修改过]
banq

悄悄话
发表文章: 9482
注册时间: 2002年08月03日 17:08
回复:关于Dao接口方法参数 2008年01月13日 17:37 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
对你的要求不是很清楚,在没有严格要求的前提下,上面几种都可以,取决于你的应用场景。

如果从一个分页框架设计要求,这些写法都不完整,可以看看Jdon框架的分页框架源码,持久层可以是ORM或JDBC.
这个主题有 1 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  发贴前查询 标签列表勿重复发表问题

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com
anti spam