mybatis if test条件判断语句中 的判断问题

写这个主要是描述在mybatis中要注意的问题,很不幸,自己没注意,跳坑了。

我在mybatis中定义的sql语句如下:

<if test="facilityOccupied != null and facilityOccupied != '' and facilityOccupied == 1 ">
				and z.serviceCount = 1
			</if>	
			<if test="facilityOccupied != null and facilityOccupied != '' and facilityOccupied == 0 ">
				and z.serviceCount = 0
			</if>

可以看到这里只是对传入参数一个简单的判断。

controller层传入一个Integer类型的facilityOccupied参数。

表面上看没什么问题,当传入facilityOccupied = 1,测试结果很意外,它查询了所有的结果,也就是说它没有符合这个判断facilityOccupied == 1 。

换一种写法,在controller层中将传入参数facilityOccupied改为String类型的,通过查询结果可以看出它符合facilityOccupied == 1 这个判断条件。

所以,总结起来怎么说,在这个地方比较的并不是数值大小,而是物理地址,这个双引号里面的1不是int类型也不是integer类型,而是String字符串类型,啊多么痛的领悟。

猜你喜欢

转载自blog.csdn.net/qq_29410905/article/details/80325095
今日推荐