多条件分组精准匹配

2019-08-11

对同一条数据的不同属性分组进行过滤筛选,每一组筛选的条件组合可以有多个也可以没有。首先以一个分组中的条件进行过滤,之后另一个分组中的条件对上一个条件过滤之后的结果进行再次筛选,同理可得多分组筛选。进行第一次过滤需要前台传送第一次过滤的条件数据,多个属性同时过滤就需要将所有需要的条件的参数同时传送。

1、mapper.xml层代码展示             

 1 <select id="findRosterGroupRoster" resultType="com.example.pojo.Roster">
 2        select job_number, full_name, sex, mobile, id_type, id_card, bank_name,
 3        bank_account, register_status, type_of_work
 4        from roster where customer_id = #{customerId} 
 5        
 6        <if test="registerStatusS != null and registerStatusS.length != 0"> //传入的第一个过滤条件,同一属性可以选多种状态,
                                                    所以是数组对象 7 and register_status in <foreach collection="registerStatusS" index="index" item="registerStatus" 8 open="(" separator="," close=")"> 9 #{registerStatus} 10 </foreach> 11 </if> 12 <if test="statusS != null and statusS.length != 0"> 13 and status in <foreach collection="statusS" index="index" item="status" 14 open="(" separator="," close=")"> 15 #{status} 16 </foreach> 17 </if> 18 <if test="typeOfWorks != null and typeOfWorks.length != 0"> 19 and type_of_work in <foreach collection="typeOfWorks" index="index" item="typeOfWork" 20 open="(" separator="," close=")"> 21 #{typeOfWork} 22 </foreach> 23 </if> 24 </select> 25

2、mapper.java层代码

 1       /**
 2      * 分组精确筛选
 3      * @param customerId
 4      * @param registerStatusS
 5      * @param statusS
 6      * @param typeOfWorks
 7      * @return
 8      */
 9     List<Roster> findRosterGroupRoster(@Param("customerId")Integer customerId, 
       @Param("registerStatusS") Integer[] registerStatusS,@Param("statusS") String[] statusS,
        @Param("typeOfWorks")String[] typeOfWorks); //传入数组参数,不要忘记javabean中要进行定义

 注意:从前端接收数据一定是数组类型,如下格式:

{"statusS":["157576651","15724367546",“15737756576”]}

转载于:https://www.cnblogs.com/H-Dream/p/11336975.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值