我是靠谱客的博主 动听金鱼,最近开发中收集的这篇文章主要介绍mysql中判断两个值相等_mybatis if判断两个值是否相等存在的坑啊,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、使用“==”比较 字符类型 的值

用“==”比较的使用场景:

不管你用的什么类型的变量,只要变量的值是字符类型就用“==”

产生原因:

在mybatis中如果标签用一个“=”判断左右两边的值是否相等,则mybatis会把“=”两边的值自动拆箱成基础数据类型(Number类型)

示例如下:

参数:String queryKwd = "a";

select * fromPM_FACTORY_INFOwhere DEL_FLAG='0'

and 1=1

and 2=2

ce009ec4da41b5ad67c16f7a22dcf6eb.png

2、使用“=”比较 基本数据类型 的值

用“=”比较的使用场景:

1、不管你用的什么类型的变量,只要变量的值是基础数值类型就用“=”

2、当传参的类型是Object的情况下,当Object的值为单个的大小写字母或一些特殊字符串会被转换成ASCII码,此时也用”=“

产生原因:

1、在mybatis中如果标签用一个“=”判断左右两边的值是否相等,则mybatis会把“=”两边的值自动拆箱成基础数据类型(Number类型)

2、当用Object为参数变量,且值是如下单个大小写字母或字符串,则会被转换成相应十进制数字(ASCII码表只截取部分,更多可以自己去网上查找)

9e1f5a0279fbb61a57ce2b75aeff1430.png

示例如下:

参数:String queryKwd = "1";

select * fromPM_FACTORY_INFOwhere DEL_FLAG='0'

and 1=1

and 2=2

ce09479f35ffb176434f41e21877b732.png

3、重要提示

在使用mybatis时,需要特别注意,当使用的参数不管是String/Object/int等类型的变量,我们需要清楚业务变量的值会是字符型还是数值型

只要变量值是字符型就用“==”!!!(比如: )

只要变量值是数值型、整形等就用“==”!!!(比如: )

整形数值与字符串数值比价要用“==”且使用双引号!!!(比如: )

(错误写法:,不会报错,但永不成立)

(错误写法:或 ,运行时抛异)

最后

以上就是动听金鱼为你收集整理的mysql中判断两个值相等_mybatis if判断两个值是否相等存在的坑啊的全部内容,希望文章能够帮你解决mysql中判断两个值相等_mybatis if判断两个值是否相等存在的坑啊所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部