查询方法接口设计的几种方式

1. 每个条件项对应一个入参

List find(String hql,Date startTime,int personId);

 优点:方法签名可读性强;

 扩展:要么改接口签名,要么增加参数构造重载方法,扩展性差;

 基本背离了面向接口编程的初衷,除非你很确定参数不被改变,否则少用为佳。

 

2.使用数组传递条件项参数

List find(String hql, Object[] params);

 优点:能保持接口稳定性

 缺点:方法可读性不强,JavaDoc要写清楚啊。

 用的最多的方法签名方式,Spring的HibernateTemplate就提供这样的方法。

 

3.使用不定参数

List find(String hql,Object ...params);

 用起来和2没区别。

 

4.将查询条件封装成对象

List find(String hql , QueryParamObjec param);

 没事干还要去维护这么一个DTO,而且变更时还是要去维护那个DTO的,除非追求类数目,否则不要这么...

 

5.使用Map传递条件参数

List find(String hql , Map params);

 优点:参数变化时保持签名的稳定;

 缺点:方法可读性不强,依旧要写好注释;

 这个签名在条件查询时用得很多,直接request.getParameterMap()得到Map,然后往下层丢就好了。

 

感觉2和5用的很广泛,看来面向接口的原则很重要滴呀。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值