mybatis傳值爲0時遇到的bug

在mbatis中使用Xml配置sql語句時,出現了這樣一個問題。當我傳入的參數爲0去做判斷時,mybatis會把參數0當成是空字符串去判斷而引起查詢結果錯誤。下面是我之前配置的sql語句:

<if test="overdueDayTypes!=null and overdueDayTypes!=''">
	<if test="overdueDayTypes == 0">
		<![CDATA[and bcr.overdue_days<30]]>
	</if>
	<if test="overdueDayTypes == 1">
		<![CDATA[and bcr.overdue_days>=30 and bcr.overdue_days<=90]]>
	</if>
	<if test="overdueDayTypes == 2">
		<![CDATA[and bcr.overdue_days>90]]>
	</if>
</if>

對於這個問題,有兩種解決辦法。

1.當傳入的參數有0時,只判斷!=null即可。

2.將0轉化爲String類型,就可以解決這個問題。

下面是我修改後的sql語句:

<if test="overdueDayTypes!=null and overdueDayTypes!='' or overdueDayTypes == '0'.toString()">
	<if test="overdueDayTypes == '0'.toString()">
		<![CDATA[and bcr.overdue_days<30]]>
	</if>
	<if test="overdueDayTypes == 1">
		<![CDATA[and bcr.overdue_days>=30 and bcr.overdue_days<=90]]>
	</if>
	<if test="overdueDayTypes == 2">
		<![CDATA[and bcr.overdue_days>90]]>
	</if>
</if> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章