首先在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>
复制代码