关于MyBatis的动态sql使用

277 阅读1分钟

学习链接

首先在mysql中写出正确查询语句,然后再放到mybatis的mapping配置文件中。

由于where的条件不固定,所以需要if语句来判断是否需要添加某一字段来作为判断条件,为避免有些在头或尾多写或者少些","和"and"或其他,要用trim+prefix/suffix +prefixoverride/suffixoverride进行去除

<!--复合查询/动态查询-->
    <select id="selectInfoDynamic" parameterType="User" resultMap="resultUserList">
        select id,username,nickname,gender,email,createtime,usercode from user
        <trim prefix="where" suffixOverrides="and">
            <if test='userName!=null and userName!=""'>
                username=#{userName} and
            </if>
            <if test='nickName!=null and nickName!=""'>
                nickname=#{nickName} and
            </if>
            <if test='gender!=null and gender!=""'>
                gender=#{gender} and
            </if>
            <if test='eMail!=null and eMail!=""'>
                email=#{eMail} and
            </if>
            <if test='createTime!=null and createTime!=""'>
                createtime=#{createTime} and
            </if>
            <if test='userCode!=null and userCode!=""'>
                usercode=#{userCode}
            </if>
        </trim>
    </select>