mybatis if判断两个值是不是相等存在的坑啊
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis if判断两个值是不是相等存在的坑啊相关的知识,希望对你有一定的参考价值。
参考技术A 不管你用的什么类型的变量,只要变量的值是字符类型就用“==”在mybatis中如果<if>标签用一个“=”判断左右两边的值是否相等,则mybatis会把“=”两边的值自动拆箱成基础数据类型(Number类型)
参数:String queryKwd = "a";
1、不管你用的什么类型的变量,只要变量的值是基础数值类型就用“=”
2、当传参的类型是Object的情况下,当Object的值为单个的大小写字母或一些特殊字符串会被转换成ASCII码,此时也用”=“
1、在mybatis中如果<if>标签用一个“=”判断左右两边的值是否相等,则mybatis会把“=”两边的值自动拆箱成基础数据类型(Number类型)
2、当用Object为参数变量,且值是如下单个大小写字母或字符串,则会被转换成相应十进制数字(ASCII码表只截取部分,更多可以自己去网上查找)
参数:String queryKwd = "1";
在使用mybatis时,需要特别注意,当使用的参数不管是String/Object/int等类型的变量,我们需要清楚业务变量的值会是字符型还是数值型
只要变量值是字符型就用“==”!!!(比如: <if test=" '1'=='1' ">)
只要变量值是数值型、整形等就用“==”!!!(比如: <if test=" 1==1 ">)
整形数值与字符串数值比价要用“==”且使用双引号!!!(比如: <if test=' 1=="1" '>)
(错误写法:<if test=" 1=='1' ">,不会报错,但永不成立)
(错误写法:<if test=' 1="1" '>或<if test=" 1='1' "> ,运行时抛异)
以上是关于mybatis if判断两个值是不是相等存在的坑啊的主要内容,如果未能解决你的问题,请参考以下文章