实际上参数传来的是一个字符串 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>