发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

关于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修改过]

2008-01-13 17:37

对你的要求不是很清楚,在没有严格要求的前提下,上面几种都可以,取决于你的应用场景。

如果从一个分页框架设计要求,这些写法都不完整,可以看看Jdon框架的分页框架源码,持久层可以是ORM或JDBC.

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com