Mybatis單個(gè)參數(shù)的if判斷報(bào)異常There is no getter for property named 'xxx' in 'class java.lang.Integer'的解決方案
我們都知道m(xù)ybatis在進(jìn)行參數(shù)判斷的時(shí)候,直接可以用<if test=""></if> 就可以了,如下:
1、常規(guī)代碼
<update id="update" parameterType="com.cq2022.zago.order.entity.Test" >
update t_test_l
<set >
<if test="trnsctWayId != null" >
trnsct_way_id = #{trnsctWayId,jdbcType=TINYINT},
</if>
<if test="langId != null" >
lang_id = #{langId,jdbcType=INTEGER},
</if>
</set>
where trnsct_way_l_id = #{trnsctWayLId,jdbcType=INTEGER}
</update>
但是單個(gè)參數(shù)和多參數(shù)的判斷有個(gè)不同點(diǎn),當(dāng)我們的入?yún)?code>entity實(shí)體,或者map的時(shí)候,使用if 參數(shù)判斷沒任何問題。
但是當(dāng)我們的入?yún)?code>java.lang.Integer 或者 java.lang.String的時(shí)候,這時(shí)候就需要注意一些事情了
具體代碼如下(咱們看著代碼說,先展示錯(cuò)誤代碼):
2、錯(cuò)誤代碼
<select id="getTrnsctListByLangId" parameterType="java.lang.Integer" resultType="java.lang.Integer">
select
trnsct_id
from t_trnsct_way_l where
<if test="langId != null" >
and lang_id = #{langId}
</if>
</select>
上述代碼存在一些問題,首先入?yún)⑹莏ava.lang.Integer, 而不是map或者實(shí)體的入?yún)⒎绞?,對于這類單個(gè)入?yún)⑷缓笥胕f判斷的,mybatis有自己的內(nèi)置對象,如果你在if判斷里面 寫的是你的入?yún)⒌膶ο竺蔷蛨?bào)異常:Internal error : nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'langId' in 'class java.lang.Integer'
3、正確代碼:

這里就涉及到mybatis的內(nèi)置對象_parameter,單個(gè)參數(shù)判斷的時(shí)候,就不像1、 2那樣直接用參數(shù)對象名判斷了。還有就是數(shù)據(jù)類型最好加上
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
JavaWeb三大組件之監(jiān)聽器Listener詳解
這篇文章主要介紹了JavaWeb三大組件之監(jiān)聽器Listener詳解,在JavaWeb應(yīng)用程序中,Listener監(jiān)聽器是一種機(jī)制,用于監(jiān)聽和響應(yīng)特定的事件,它可以感知并響應(yīng)與應(yīng)用程序相關(guān)的事件,從而執(zhí)行相應(yīng)的邏輯處理,需要的朋友可以參考下2023-10-10
Java使用POI實(shí)現(xiàn)excel文件的導(dǎo)入和導(dǎo)出
這篇文章主要為大家詳細(xì)介紹了Java如何使用POI實(shí)現(xiàn)excel文件的導(dǎo)入和導(dǎo)出功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
Java使用Lua實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)展和腳本自動(dòng)升級
Lua是一種輕量級的腳本語言,常用于游戲開發(fā)和嵌入式系統(tǒng)中,這篇文章主要介紹了Java如何調(diào)用Lua實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)展和腳本自動(dòng)升級,感興趣的可以學(xué)習(xí)下2023-08-08

