mybatis前台传来一个String,后后台执行sql变成了true

实际上参数传来的是一个字符串 3 ,不知道为什么会变成true 最后当然是查不到信息了。。

我在mapper映射文件里面使用了动态的where查询,我觉得跟这个关系不太大, 现在不知道怎么办,希望有思绪的朋友给个解决办法。

后台代码也粘一下(这个是查询一个表的信息,使用了动态的查询,这里唯独使用groupid时不能正确传参,也就是 写了个 3 到sql时执行变成了true...)

<sql id="find_sysuser_list_where">
        <if test="sysuserCustomer!=null">
            <if test="sysuserCustomer.userid!=null and sysuserCustomer.userid!=''">
                and t.userid = #{sysuserCustomer.userid}
            </if>
            <if test="sysuserCustomer.username!=null and sysuserCustomer.username!=''">
                and t.username = #{sysuserCustomer.username}
            </if>
            <if test="sysuserCustomer.mc!=null and sysuserCustomer.mc!=''">
                and t.mc like '%${sysuserCustomer.mc}%'
            </if>
            <if test="sysuserCustomer.groupid=!null and sysuserCustomer.groupid!=''">
                and t.groupid = #{sysuserCustomer.groupid}
            </if>
        </if>
    </sql>

<select id="findSysuserList" parameterType="yycg.base.pojo.vo.SysuserQueryVo" resultType="yycg.base.pojo.vo.SysuserCustomer">
        select * from 
        (select u.userid,
               u.username,
               u.groupid,
               u.userstate,
               u.sysid,
               decode(u.groupid, '1', (select mc from USERJD where id = u.sysid),
                                 '2', (select mc from USERJD where id = u.sysid),
                                 '3', (select mc from USERYY where id = u.sysid),
                                 '4', (select mc from USERGYS where id = u.sysid)
               ) mc
          from sysuser u) t
          <where>
              <include refid="find_sysuser_list_where"></include>
          </where>
    </select>
原文地址:https://www.cnblogs.com/zyh1994/p/6030719.html