DAO查询接口设计

 

查询接口方法的设计

 

实体DAO查询接口的定义一般有五种形式

方式1:每一个条件项参数对应一个入参

List findOrder(Stirng hql,Date startTime,Date endTime,int deptId)

优点:可读性强 内部逻辑处理简单  

缺点:接口稳定性差 如果添加参数,将会违背软件设计的开闭原则,要么增加重载接口,如果查询条件项的组合过多时,接口数据会增多,难以维护

 

方式2:使用数组传递条件项参数

List findOrder(String sql,Object[] params)

优点:可以应付查询条件项组合多样性的情况下保持接口的稳定性,开发都必须在方法内部从数组中将参数取出传给查询引擎

缺点:接口可读性比较差  调用都需要查询接口的JavaDoc才会使用   必须对基本类型进行封装

 

方式3:使用JDK 5.0的新特性

使用不定参数

List findOrder(String hql,Object…params);

与方式二效果差不多

 

方式4:将查询条件项参数封装成对象

List findOrder(String hql,OrderQueryParam param);

优点:可读性比较好

缺点:在方法内部必须确定参数对象封装了对应的查询项参数    由于需要创建更多类,维护不是很方便,可能一个DAO对应多个条件查询项,当需要添加一个新的条件项时,条件封装类还需要进行调整

 

方式5:使用Map传递条件项参数

List<Order> findOrder(String hql,Map params);   [常采用方式] Map键为参数名   值为参数值

优点:接口方法在条件项发生改变的情况下保持稳定,通过键指定条件参数在一定程度上解决了接口的健壮性

缺点:当调用指定错误参数时,编译时无法检测到错误     开发都必须查询JavaDoc文档才会使用

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值