单个的字符要写到双引号里面才行,改为<if test='takeWay == "1"'>或者改为<if test="takeWay == '1'.toString() ">
mybatis的if判断有坑
takeWay == “1”处出错,导致不执行if判断中的sql,运行程序不报错,没有任何提示。去掉takeWay == “1” and 则可执行。对此我百思不得其解, 
苦苦纠结了几个小时,最后是我的同事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()才行!

相关文章:

  • 2021-07-10
  • 2022-12-23
  • 2021-11-25
  • 2021-09-22
  • 2022-12-23
  • 2022-12-23
  • 2023-03-30
猜你喜欢
  • 2021-10-15
  • 2022-03-06
  • 2022-12-23
  • 2021-08-03
  • 2022-12-23
  • 2021-10-30
  • 2020-07-28
相关资源
相似解决方案