mybatis if标签判断不生效的解决方法
程序员文章站
2022-07-08 17:38:30
实际需求 from app_sz_bbb a
实际需求
<if test="computationrule == '1'"> from app_sz_bbb a </if> <if test="computationrule == '2'"> from app_ccc a </if>
这种情况不生效,
原因:mybatis是用ognl表达式来解析的,在ognl的表达式中,'0'会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析。
先说怎么解决
三种:
加 .tostring()
<if test="computationrule == '1'.tostring()"> from app_sz_bbb a </if> <if test="computationrule == '2'.tostring()"> from app_ccc a </if>
choose when 标签代替
<choose> <when test="computationrule == '1'"> from app_sz_bbb a </when> <otherwise> from app_sz_bbb a </otherwise> </choose>
单引号 换成双引号
<if test='computationrule == "1"'> from app_sz_bbb a </if> <if test='computationrule == "2"'> from app_ccc a </if>
mybatis 中if 标签 判断字符串不生效
异常sql 的mapper 文件:
<if test="isbound != null and isbound !='' and isbound == '1'"> and box_sid is not null </if> <if test="isbound != null and isbound !='' and isbound == '2'"> and box_sid is null </if>
正确sql 的mapper 文件
<if test="isbound != null and isbound !='' and isbound == '1'.tostring()"> and box_sid is not null </if> <if test="isbound != null and isbound !='' and isbound == '2'.tostring()"> and box_sid is null </if>
到此这篇关于mybatis if标签判断不生效的解决方法的文章就介绍到这了,更多相关mybatis if标签判断不生效内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
推荐阅读
-
jquery绑定事件不生效的解决方法
-
layui中select,radio设置不生效的解决方法
-
c#读写App.config,ConfigurationManager.AppSettings 不生效的解决方法
-
Linux中crontab输出重定向不生效问题的解决方法
-
XPath匹配标签使用text()判断获取结果失败/为空的问题及解决方法
-
修改php.ini不生效问题解决方法(上传大于8M的文件)
-
eclipse 的mybatis中mapper.xml文件标签没有提示的解决方法
-
mybatis if标签判断不生效的解决方法
-
MyBatis-Plus分页插件不生效的解决方法
-
GRUB2设置theme以后仍不能显示以及GRUB2修改背景图片后不生效的解决方法