昨天码代码,掉到坑里,耽误了几个小时才从坑里爬出来-_-|||

单个的字符要写到双引号里面才行,改为<if test='takeWay == "1"'>或者改为<if test="takeWay == '1'.toString() ">


.xml文件的部分代码

 <insert id="insertDelivery" parameterType="com.zuci.request.DeliveryPreferenceReq" >insert cx_customer_deliverypreference<trim prefix="(" suffix=")" suffixOverrides="," >.... 此处省略<if test="takeWay == '1' and workday != null ">WORKDAY,</if>....</trim><trim prefix="values (" suffix=")" suffixOverrides="," >.... 此处省略<if test="takeWay == '1' and workday != null ">#{workday, jdbcType=VARCHAR},</if>....</trim>   </insert>

takeWay == “1”处出错,导致不执行if判断中的sql,运行程序不报错,没有任何提示。去掉takeWay == “1” and 则可执行。对此我百思不得其解,
因为自己有写过如下代码,是没错的。

 <if test="messageType == 'senderReceiveSuccess' ">......</if>

苦苦纠结了几个小时,最后是我的同事JW大神帮我解决的,膜拜大神o(≧v≦)o~~好棒
<if test="takeWay == '1' and workday != null ">
改为<if test='takeWay == "1" and workday != null '>
或改为<if test="takeWay == '1'.toString() and workday != null ">即可。

原因是:mybatis是用OGNL表达式来解析的,在OGNL的表达式中,’1’会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析。
总结下使用方法:单个的字符要写到双引号里面或者使用.toString()才行!

【if test=takeWay == '0'】mybatis的if判断有坑相关推荐

  1. 【mybatis】IF判断的坑 (实现if test= status == 'zhangsan')

    转自:http://blog.csdn.net/z69183787/article/details/51589171 最近在项目使用mybatis中碰到个问题 Xml代码   <if test= ...

  2. mybatis 中 if-test 判断详解

    <if test="takeWay == '0'">]mybatis的if判断 单个的字符要写到双引号里面才行,改为<if test='takeWay == &q ...

  3. mybatis使用if判断参数是否为空

    1.判断Double类型:<if test="probability != null">probability = #{probability},</if> ...

  4. mybatis if条件判断

    一.字符串(string)非空判断 <if test="name!=null and name!=''"> AND name = #{name} </if> ...

  5. MyBatis list Contains MyBatis 动态SQL 判断List Contains

    MyBatis list Contains MyBatis 动态SQL 判断List Contains 一.情景描述 在使用MyBatis 动态SQL查询时,有时候需要判断集合中是否有某个元素,若存在 ...

  6. mybatis的if判断用法

    mybatis的if判断语句其实跟el表达式的if条件判断有些类似. 例如: 1 如果参数为数字类型的时候没有特俗需求的情况只需要判断是否为null即可. 例如: 如果有特俗需求,例如判断是否大于某个 ...

  7. Mybatis的逆向工程,MySQL8的数据库,8.0.11驱动的逆向工程的坑的解决方法

    Mybatis的逆向工程,MySQL8的数据库,8.0.11驱动的逆向工程的坑的解决方法 参考文章: (1)Mybatis的逆向工程,MySQL8的数据库,8.0.11驱动的逆向工程的坑的解决方法 ( ...

  8. 【mybatis】mybatis if 标签判断字符串相等

    mybatis if 标签判断字符串相等 mybatis 映射文件中,if 标签判断字符串相等,两种方式: 因为 mybatis 映射文件,是使用的 ognl 表达式,所以在判断字符串 sex 变量是 ...

  9. spring Mybatis注解加判断

    spring Mybatis注解加判断 spring Mybatis注解加判断 一.用script标签包围,然后像xml语法一样书写 判断参数是否为空或者为null,没有参数则不执行该语句 @Sele ...

最新文章

  1. 7.Deque的应用案例-回文检查
  2. “chaos”的算法---之哈希表(HASH)算法详解
  3. 2018寒假学习计划
  4. 人工大脑项目 —— Nengo
  5. 怎样去掉桌面图标和字的蓝色阴影
  6. [转] 硬盘工具DiskMan使用图解
  7. JS 异步编程及常考面试题
  8. ECMAScript6 ES6语法
  9. Android控制WIFI相关操作
  10. Java使用easyexcel读大文件
  11. 使用OpenCV-python实现手写数字识别
  12. 公司更换了静态IP,说可以监控上网行为,真的可以做到吗?
  13. 估计理论(7):应用BLUE的两个例子
  14. android studio for android learning (十四) android的数据的存储sharedPreferences
  15. eNSP------三层交换机配置(拓扑图+命令)
  16. 【3dmax千千问】初学3dmax插件神器第17课|VRAY渲染教程|哪三种表现方式最能影响3dmax疯狂模渲大师设计效果图的写实程度?食住玩3dmax入门到精通进阶教程
  17. redigo批量lpush/rpush、批量zrem
  18. 大数据与人工智能学习心得_大数据与R
  19. 网页特效--图片淡入淡出效果
  20. oracle创建数据库的先决条件,Oracle数据库安装先决条件检查失败解决方案

热门文章

  1. el-checkbox点击后面的内容不选中复选框
  2. 谐波均值滤波matlab,谐波均值滤波器.PPT
  3. 小型企业的网络拓扑结构设计
  4. 没有电池没有芯片,这些塑料瓶子正在联网
  5. vue网页预加载页面_页面预加载效果
  6. 微信小程序怎么打通视频号?只差一个自定义版交易组件
  7. 华为鸿蒙系统动画过滤,华为鸿蒙系统细节曝光 UI重绘动画多/系统简介更流畅...
  8. 皮肤病,得了慢性荨麻疹怎么办?
  9. 事故频发,特斯拉还要“补课”
  10. 【解决方案】国标GB28181协议摄像头直播EasyGBS视频平台联合城管执法局搭建4G移动视频监控系统方案