mybatis中sql同时使用like和in条件

1、QueryVo实体类,用于封装多个条件

package cn.gpxxg.domain;

import java.util.List;

public class QueryVo {
    private User user;
    private List<Integer> userIds;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public List<Integer> getUserIds() {
        return userIds;
    }

    public void setUserIds(List<Integer> userIds) {
        this.userIds = userIds;
    }
}

 

2、userDao的mapper配置文件,执行sql语句

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="cn.gpxxg.dao.UserDao">
    <!-- 查询所有 -->
    <select id="findByCondition" resultType="cn.gpxxg.domain.User" parameterType="cn.gpxxg.domain.QueryVo">
        select * from user
        <where>
            <!-- like条件 -->
            <if test="user.username != null">
                AND username LIKE #{user.username}
            </if>
            
            <!-- in条件 -->
            <if test="userIds != null and userIds.size > 0">
                <foreach collection="userIds" open=" and id in(" close=")" item="uid" separator=",">
                  #{uid}
                </foreach>
            </if>
        </where>
    </select>
</mapper>

 


版权声明:本文为qq_33088807原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。