mybatis test标签如何判断值是否相等
时间:2021-09-19 07:52:59|栏目:JAVA代码|点击: 次
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定义的值就可以了:

体验:细节很重要,不可忽略。


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




