mybatis test标签如何判断值是否相等
短信预约 -IT技能 免费直播动态提醒
mybatis test标签判断值是否相等
mybatis可以很方便生成动态sql,
常用的方式如下:
<if test="id != null and id !=''">
and id != #{id}
</if>
但是在实际使用过程中可能会需要对某个输入的值做具体判断,然后根据输入参数的值进行分支处理
<select id="xxxx" parameterType="map" resultMap="BaseResultMap">
。。。。。。。
<choose>
<when test="hasAttach.toString() == '1'.toString()">
having attachCount >= #{hasAttach}
</when>
<otherwise>
having attachCount = #{hasAttach}
</otherwise>
</choose>
鉴于这个mapper查询接口传入的参数为Map<String,Object>类型,如果不进行toString的转换的话默认是对进行进行的对比,因此就无法达到预期的比较字符串的效果。
mybatis if test标签、动态sql问题
之前用#{0}和#{1}虽然值能传到后台但一直不能正确校验,怎么改都无法校验成功。
错误代码:
这是因为:dao层(或mapper层)中没有用@Param(“”)正确传值。
修改后:
mybatis中也把0,1改成@Paran定义的值就可以了:
体验:细节很重要,不可忽略。
做毕设,为这个问题纠结两天,网上没有人提到这一点,耽误很久,以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341