mybatis不等于某个字符串的值_mybatis if标签字符串比较问题java.lang.NumberFormatException...
mybatis if 标签的一般用法:方法一:and column_a like concat('%',#{keyword},'%')或者这样,方法二:and column_a like concat('%',#{keyword},'%')也就是说,test条件可以用双引号括起来,里面的字符串用单引号,也可以test条件用单引号括起来,里面的字符串用双引号.两种写法都可以.但是当我要比较keywo
mybatis if 标签的一般用法:
方法一:
and column_a like concat('%',#{keyword},'%')
或者这样,方法二:
and column_a like concat('%',#{keyword},'%')
也就是说,test条件可以用双引号括起来,里面的字符串用单引号,也可以test条件用单引号括起来,里面的字符串用双引号.两种写法都可以.
但是当我要比较keyword是否等于"a"时,用方法一是写成如下:
and column_a = 'a'
这时如果keyword的值是"a",运行的时候会报这样的异常:java.lang.NumberFormatException: For input string: "a".
解决方法如下:
用方法二的方式:
and column_a = 'a'
或者还是用方法一,但是'a'改成'a'.toString()
and column_a = 'a'
原因是ognl语法问题, test条件内的长度为1的字符串'a'会被当成char类型,所以传入的keyword值会转成数字与其比较,如果keyword的值是"a",就会报错,但如果是如这样的写法就不会有这种问题,因为只有单个字符才会被当成char类型,'ab'和''还是当成字符串做比较的.
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)