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>

 

相关文章:

  • 2021-07-25
  • 2021-07-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-26
  • 2021-12-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-09
  • 2022-01-09
相关资源
相似解决方案