码迷,mamicode.com
首页 > 数据库 > 详细

ORACLE中关于使用between取不同的区间值和取反

时间:2019-01-30 15:53:07      阅读:406      评论:0      收藏:0      [点我收藏+]

标签:tween   封装   and   重要   而且   不同的   public   between   exist   

最近在项目中使用between取不同的区间值问题,由于区间跨度大,而且区间多,又是前端传过来的参数,所以使用in和exists比较麻烦。然后就考虑使用between。现将使用方法记录一下。

假如表有个字段param_key,参数区间值为:100-300、1000-1999、3050-5000。

首先是between的用法是:param_key between value1 and value2。如果是有多个between则是:param_key between 100 and 300 and param_key between 1000 and 1999 and param_key between 3050 and 5000。

这杨很容易理解,也能很容易知道怎么写SQL,比较麻烦的就是我们使用的是Mybatis,所以拼接动态SQL和参数的传递方式很重要。

首先我们会想到使用mybatis的foreach去遍历。但是参数是param_key,所以就会想到把区间值给拆分成两部分来传递。具体作法如下:

1.首先创建一个类,用来封装区间值:

public class ParamKey{
    private String startKey;
    private String endKey;
    
    //getter,setter
}

 

2.创建请求类:

public class ParamRequest{
    private List<ParamKey>  key;//不同区间值的集合
    
    //getter,setter
}

 

3.业务处理:

public class ServiceImpl{
    
    public void queryData( ParamRequest request){
    //业务处理,调用dao层方法
    }
}

 

4.Mybatis中SQL:

 

ORACLE中关于使用between取不同的区间值和取反

标签:tween   封装   and   重要   而且   不同的   public   between   exist   

原文地址:https://www.cnblogs.com/whx20100101/p/10337859.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!