MyBatis 參數(shù)類型為String時常見問題及解決方法
1. 參數(shù)為String時的插值問題
假設(shè)有下面一Dao接口方法
public Account findByAccountType (String type)throws DaoException;
對應(yīng)的Mapper.xml
<select id="findByAccountType " parameterType="string" resultType="account"> select * form account <where> <if test ="type != null"> type=#{type} </if> </where> </select>
一般我們都是按這樣的方式來寫的,對于其他類型是沒錯的,但是如果為String的話會拋下面的異常:
There is no getter for property named 'type ' in 'class java.lang.String'
因為MyBatis要求如果參數(shù)為String的話,不管接口方法的形參是什么,在Mapper.xml中引用時需要改變?yōu)開parameter才能識別 :
<select id="findByAccountType " parameterType="string" resultType="account"> select * form account <where> <if test ="_parameter!= null"> type=#{_parameter} </if> </where> </select>
2. 對字符串參數(shù)進行是否相等 比較時的問題
錯誤:
<if test="_parameter == '1' "> type=#{_parameter} </if>
正確:
<if test='_parameter == "1" '> type=#{_parameter} </if> <if test="_parameter == '1'.toString() "> type=#{_parameter} </if>
注:上述問題不僅限于<if>標(biāo)簽,其他動態(tài)sql標(biāo)簽在對String進行處理時也會出現(xiàn)同樣的問題。
以上所述是小編給大家介紹的MyBatis 參數(shù)類型為String時常見問題及解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
spring?boot項目實戰(zhàn)之實現(xiàn)與數(shù)據(jù)庫的連接
在我們?nèi)粘5拈_發(fā)過程中,肯定不可避免的會使用到數(shù)據(jù)庫以及SQL?語句,下面這篇文章主要給大家介紹了關(guān)于spring?boot項目實戰(zhàn)之實現(xiàn)與數(shù)據(jù)庫連接的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-05-05利用線程實現(xiàn)動態(tài)顯示系統(tǒng)時間
編寫Applet小程序,通過在HTML文檔中接收參數(shù),顯示當(dāng)前的系統(tǒng)時間,需要的朋友可以參考下2015-10-10Springboot結(jié)合Flowable實現(xiàn)工作流開發(fā)
本文主要介紹了Springboot結(jié)合Flowable實現(xiàn)工作流開發(fā),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01Java中ArrayIndexOutOfBoundsException 異常報錯的解決方案
本文主要介紹了Java中ArrayIndexOutOfBoundsException 異常報錯的解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06