mybatis 字符串比较失效

mybatis 字符串比较失效,第1张

在mybatis的mapper.xml中用以下语句判断条件

实现,当name传入字符串0时,判断name的值

但是在实际运行过程中,这个判断条件并没有生效。

原因:mybatis是用OGNL表达式来解析的,在OGNL的表达式中,'0'会被解析成字符,而java是强类型的,传入的是一个String类型,故而 char和String比较时是不相等的。所以sql中if标签是不会被解析的

解决方法:

一、使用用双引号

二、使用toString()

推荐使用第二种toString方法。

PS:mybatis中的if、when等里面的test条件判断时,被判断的字段可以通过调用java.util.String的方法进行判断,如:

choose标签是按顺序判断其内部的when标签,当某一个when标签满足条件后,则choose标签结束,当所有的when标签都不满足时,则执行最后的otherwise标签

我猜测如果系统没有报错,那么就是你的sql语句跟你预想的不一样

select * from student

name like #{name}

and sex=#{sex}

你替换一下变量,或者干脆就不要传值了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11933790.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存