查了网上很多资料,有的用一些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修改过]