Mybatis动态sql条件查询中if判断Integer的条件写法

时间:2021-10-18 22:29:44

在使用SSM的过程中,前台序列化表单得到json对象并使用ajax传到后台中:

var data = $("#selectInspect").serialize();
$.getJSON("selectInspectPlan.do?t="+new Date().getTime(),data,function(jarray){}

selectInspect是form表单的ID。

其中有一个标签的name为inspectTaio,在是实体类inspectPlanDto中的一个属性,类型为Integer。

前台传过来的是String类型,在控制层中的形参中直接写这个实体inspectPlanDto就可以自动完成类型转换和封装,这是因为简单的基本数据类型springMVC可以自动完成数据类型的转换封装。

在动态sql的使用where时,if标签判断中,如果实体类中的某一个属性是String类型,那么就可以这样来判断连接语句:

<!-- 団体区分コード -->
<if test="inspectOrg != null and inspectOrg != ''">
INSPECT_ORG = #{inspectOrg}
</if>

但是如果是实体类中的Integer类型,就要去掉空字符串的判断:

<!-- 対応区分 -->
<if test="inspectTaio != null">
AND INSPECT_TAIO = #{inspectTaio}
</if>

否则会被空字符判定条件拦下,导致添加不上需要连接的条件查询语句。