MyBatis查询 传入条件 模糊匹配 日期范围 id集合

本文通过一个具体的MyBatis动态SQL示例,详细解析了如何使用if标签进行条件判断,foreach标签进行集合遍历,以及如何实现模糊查询和时间范围查询。通过这个例子,读者可以了解到MyBatis动态SQL的强大功能。
<select id="countDTO" resultType="java.lang.Integer"
        parameterType="com.DTO">
    select count(id)//主键id
    from
    ${tableName}//你的表名
    where is_deleted = 0  
   //id集合查询传入product_id 的集合productIds 
    <if test="productIds != null and productIds.size() > 0 ">//集合判空
        and product_id in
        <foreach collection="productIds" item="code" open="(" close=")" separator=",">
            #{code}
        </foreach>
    </if>
    //模糊匹配specialName 
    <if test="specialName != null and specialName != '' ">
        and special_name like concat('%',replace(#{specialName,jdbcType=VARCHAR},'%','/%'),'%') escape '/'
    </if> 
   
   //recordDateStart 大于等于开始时间小于等于结束时间
    <if test="recordDateStart != null">
        and record_date_start <![CDATA[>=]]> #{recordDateStart}
    </if>
    <if test="recordDateEnd != null">
        and record_date_end <![CDATA[<=]]> #{recordDateEnd}
    </if>
</select>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值