2016-11-08 81 views
0

我正在使用iBATIS創建選擇語句。根據條件在ibatis中追加OR

我有4個條件,如aUsers,bUsers,cUsers和dUsers,讓我們打電話給我的表爲b

現在我想實現與iBATIS的下面的SQL語句:

b.aUsers = aUsers OR b.bUsers = bUsers OR b.cUsers = cUsers OR b.dUsers = dUsers

如果aUsers是零和休息沒有的話,我希望查詢是

b.bUsers = bUsers OR b.cUsers = cUsers或b.dUsers = dUsers

// --------------------------------------------- -

如果cUsers是零和休息都沒有的話,我希望查詢是

b.aUsers = aUsers OR b.bUsers = bUsers OR b.dUsers = dUsers

如何在ibatis中創建這樣的查詢?

回答

1

在這種情況下,您需要創建Dynamic Queries

您可以使用Unary Conditional Elements檢查的屬性是空或不是。

<isNull>檢查屬性是否爲空。

<isNotNull>檢查屬性不爲空

而且,你的情況可能需要一個嵌套isNotNull || isNull anidadement。所以你只需要做類似的事情,就像下一步你檢查aUsers是否爲null,然後是其他屬性:

<select id="getUsers" parameterClass="USER" resultMap="your-result-map" > 
    select * from b 
    <dynamic prepend="WHERE"> 
     <isNull prepend="AND" property="aUsers"> 
      <isNotNull property="bUsers"> 
        <!-- ... and so on --> 
        <!-- your condition --> 
      </isNotNull> 
     </isNull> 
     <isNotNull prepend="AND" property="aUsers"> 
     <isNull property="bUsers"> 
       <!-- ... and so on --> 
       <!-- your condition --> 
     </isNull> 
     </isNotNull> 
    </dynamic> 
</select>