标签:factor 错误 tor 字符型 resultmap 示例 参数 拆箱 基础
不管你用的什么类型的变量,只要变量的值是字符类型就用“==”
在mybatis中如果<if>标签用一个“=”判断左右两边的值是否相等,则mybatis会把“=”两边的值自动拆箱成基础数据类型(Number类型)
参数:String queryKwd = "a";
<select id="getFactoryInfoList" resultMap="BaseResultMap" > select * from PM_FACTORY_INFO where DEL_FLAG=‘0‘ <if test="queryKwd == ‘a‘"><!--正确写法--> and 1=1 </if> <if test="queryKwd = ‘a‘"><!--错误写法: 字符类型不能用一个“=”判断是否相等,会报错:Caused by: java.lang.NumberFormatException: For input string: "a" --> and 2=2 </if> </select>
不管你用的什么类型的变量,只要变量的值是基础数值类型就用“=”
在mybatis中如果<if>标签用一个“=”判断左右两边的值是否相等,则mybatis会把“=”两边的值自动拆箱成基础数据类型(Number类型)
参数:String queryKwd = "1";
<select id="getFactoryInfoList" resultMap="BaseResultMap" > select * from PM_FACTORY_INFO where DEL_FLAG=‘0‘ <if test="queryKwd == ‘1‘"><!--错误写法,虽然不报错,但是永远不会成立--> and 1=1 </if> <if test="queryKwd = ‘1‘"><!--正确写法--> and 2=2 </if> </select>
在使用mybatis时,需要特别注意,当使用的参数不管是String/Object/int等类型的变量,我们需要清楚业务变量的值会是字符型还是数值型
只要变量值是字符型就用“==”!!!
只要变量值是数值型就用“=”!!!
标签:factor 错误 tor 字符型 resultmap 示例 参数 拆箱 基础
原文地址:https://www.cnblogs.com/tianchao/p/11558789.html