Mybatis Mapper文件中的一小坑

前几天来一需求,实现过程中需要修改一个底层的查询接口,具体修改就是在where中添加一个条件,由于这个底层SQL使用的地方太多,所以就想着是用if加一标识符做个判断,传一个只有我会使用的参数,然后动态加上需要拼接的where条件,第一次写法如下:

<if test="isSendState == '1' ">

   and (RLT_STS_CD IN ('21','1','26'))

</if>

这里的isSendState就是我加的标识符,这个标识符我加了,但是条件没加上,巨坑,想不到为什么...

后来查阅各种资料才发现,mapper 中字符串做判断时需要使用双引号,即应修改为:

<if test='isSendState == "1" '>

   and (RLT_STS_CD IN ('21','1','26'))

</if>

‘1'标识的是字符

“1”才是字符串,两者不同

posted @ 2019-04-01 11:12  宅小涛  阅读(364)  评论(0编辑  收藏  举报