使用Mybatis接收Integer參數(shù)的問題
Mybatis接收Integer參數(shù)
最近在做項目的時候,在mybatis中用標(biāo)簽判斷分頁參數(shù)時,出現(xiàn)了問題。
<if test="startRow != null and startRow != '' and selectRow != null and selectRow != ''">
?? ?LIMIT #{startRow},#{selectRow}
</if>這段代碼是為了在SQL中設(shè)置分頁參數(shù),接收的參數(shù)類型都為Integer。
我們都知道要查詢第一頁的話,startRow要賦值為0,但是這段代碼一直不起作用。正常來說,0既不為null,也不等于空字符串;
但是查閱資料才知道,mybatis接收Integer參數(shù)時,若參數(shù)值為0,為被解析為空字符串' '
解決辦法
<if test="startRow != null and selectRow != null">
?? ?LIMIT #{startRow},#{selectRow}
</if>1.只判斷Integer參數(shù)不為null,不用判斷不為空字符串;
2.可以判斷參數(shù)不等于0(在我的例子中不適用)
Mybatis在使用Integer類型
當(dāng)傳人mybatis構(gòu)成sql語句時
傳入的類型為int類型的值為0時,會被認(rèn)為是空字符串,所以只要這樣判斷
就可以了:
?<if test="payStatus != null and payStatus != '' or payStatus == 0">
? ? ? ? ? ? ? ? AND info.pay_status = #{payStatus}
? ? ? ? ? ? </if>當(dāng)payStatus的值為0時,再加一個payStatus==0就會走入if。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何將SpringBoot項目打成?war?包并部署到Tomcat
這篇文章主要介紹了如何將SpringBoot項目?打成?war?包?并?部署到?Tomcat,當(dāng)前環(huán)境是windows,tomcat版本是8.5采用的springboot版本是2.2.3,本文結(jié)合實例代碼給大家詳細(xì)講解需要的朋友可以參考下2022-11-11
SpringBoot+ShardingSphereJDBC實現(xiàn)讀寫分離詳情
這篇文章主要介紹了SpringBoot+ShardingSphereJDBC實現(xiàn)讀寫分離詳情,通過用??MySQL??進(jìn)行一主一從的主從復(fù)制展開全文內(nèi)容,需要的朋友可以參考一下2022-08-08
Java并發(fā)編程示例(七):守護(hù)線程的創(chuàng)建和運行
這篇文章主要介紹了Java并發(fā)編程示例(七):守護(hù)線程的創(chuàng)建和運行,在本節(jié)示例中,我們將創(chuàng)建兩個線程,一個是普通線程,向隊列中寫入事件,另外一個是守護(hù)線程,清除隊列中的事件,需要的朋友可以參考下2014-12-12
Java?Web?Axios實現(xiàn)前后端數(shù)據(jù)異步交互實例代碼
Axios作為一個流行的前端?HTTP?通信庫,可以極大地簡化前端與后端之間的數(shù)據(jù)交互,這篇文章主要介紹了Java?Web?Axios實現(xiàn)前后端數(shù)據(jù)異步交互的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09
詳解使用spring boot admin監(jiān)控spring cloud應(yīng)用程序
這篇文章主要介紹了詳解使用spring boot admin監(jiān)控spring cloud應(yīng)用程序,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05
Java接口的作用_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了Java接口的作用,涉及到接口的規(guī)范相關(guān)知識,需要的的朋友參考下2017-04-04

