使用动态映射语句检查iBatis中的bean是否为null

时间:2012-11-21 14:10:36

标签: java sql database ibatis

我想检查我用作参数的bean是否使用动态语句为空。

<select id="my-query" resultClass="my.package.Results" parameterClass="my.package.Bean">
     //MY QUERY
</select>

有一种方法可以检查我的bean是否在查询中直接为null,或者我必须检查属性是否可用,null等?

谢谢

2 个答案:

答案 0 :(得分:1)

是的,你可以像下面这样做:

<select ...>
SELECT * FROM RESULT 
<dynamic prepend="WHERE ">
   <isNull property="id">
      id IS NULL
   </isNull>
   <isNotNull property="id">
     id = #id#
   </isNotNull>
</dynamic>
</select>
欢呼和快乐的编码!

答案 1 :(得分:0)

如果你提供一个null的bean,那么当试图在那个bean上调用getId()时,Ibatis会抛出一个NullpointerException。您必须确保代码中的bean先前不为null。

在Sazzadurs中,回答Where-Clause实际上不是动态的。 只需输入:

<select ...>
SELECT * FROM RESULT
WHERE ID
<dynamic>
   <isNull property="id">
      IS NULL
   </isNull>
   <isNotNull property="id">
     = #id#
   </isNotNull>
</dynamic>
</select>