標簽條件不起作用" type="hidden"/>

MyBatis中 標簽條件不起作用


問題產生?

  今天在做Excel導出的時候,有個判斷一個狀態的字段,我的這個字段是int類型的,還有兩個時間類型,我在判斷的時候給的是Long類型的。

在測試的時候發現,不管怎么樣都不執行if條件里面的內容,代碼如下:

 1 <select id="selectBusinessByHoutaiShenhe" resultMap="BaseResultMap" >
 2     select 
 3     <include refid="Base_Column_List" />
 4     from tb_business
 5     <where>
 6         <if test="starts != null and starts != '' ">
 7             and starts = #{starts,jdbcType=INTEGER}
 8         </if>
 9         <if test="startTime !=null and startTime != '' ">
10             and register_time <![CDATA[>= ]]>#{startTime,jdbcType=TIMESTAMP}
11         </if>
12         <if test="endTime != null and endTime != '' ">
13             and register_time <![CDATA[<= ]]> #{endTime,jdbcType=TIMESTAMP}
14         </if>
15      </where>
16   </select>

一直測試了好幾遍發現,不管怎么判斷,什么條件都不輸入,都會執行  where starts = ? ;讓我非常納悶,同樣的方法,為啥那個startTime 和endTime 都不執行呢?

后來我看了下,對比了下,這兩種類型不一樣,starts為int類型,我修改成如下代碼:

 1 這個問題網上看了很多解決方法,但是測試了都是一個樣,目前我還沒有找到解決辦法,不知道有沒有人知道告知下。我現在的解決方法是將我要判斷的int類型的數據修改為String類型,
因為String類型相當於通用的類型,並不會影響之前的數據。等以后有時間了再好好研究下。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM