MYBATIS中 if-test 判断大坑

】mybatis的if判断

单个的字符要写到双引号里面才行,改为或者改为

.xml文件的部分代码

      insert cx_customer_deliverypreference

     

            .... 此处省略

       

          WORKDAY,

       

        ....

     

     

          .... 此处省略

         

            #{workday, jdbcType=VARCHAR},

     

      ....

       

 

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

因为自己有写过如下代码,是没错的。

      ......

改为

或改为即可。

原因是:mybatis是用OGNL表达式来解析的,在OGNL的表达式中,’1’会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析。

总结下使用方法:单个的字符要写到双引号里面或者使用.toString()才行!

你可能感兴趣的:(MYBATIS中 if-test 判断大坑)