本文小编为大家详细介绍“mybatis中的if test判断入参值问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatis中的if test判断入参值问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
<if test=' requisition != null and requisition == "Y" '> AND 表字段 = #{requisition} </if>
<if test=" requisition != null and requisition == 'Y'.toString() "> AND 表字段 = #{requisition} </if>
在实现搜索功能时碰到的错误,很多时候我们会在数据库中使用一个字段来作为状态保存,如:0=男,1=女;0=禁止,1=启用等。
无论我选择停用、还是启用,都将整个表格的数据显示出来,没有起到筛选的作用。
通过排除,找到了导致问题的代码:
<select id="queryAllByLimit" resultMap="SystemMenuMap"> select id, pid, title, icon, href, sort, status from system_menu <where> <if test="systemMenu.status != null and systemMenu.status != '' "> and status = #{systemMenu.status} </if> </where> </select>
改为:
<select id="queryAllByLimit" resultMap="SystemMenuMap"> select id, pid, title, icon, href, sort, status from system_menu <where> <if test="systemMenu.status != null"> and status = #{systemMenu.status} </if> </where> </select>
原因:
<if test="systemMenu.status != null and systemMenu.status != '' ">
只对判断String类型的字符串时起作用,由于status是Integer类型,判断条件不成立,没起到作用。如:当传入的值是1时,’1’会被解析成字符。
读到这里,这篇“mybatis中的if test判断入参值问题怎么解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。