MyBatis 參數(shù)類型為String時(shí)常見問題及解決方法
1. 參數(shù)為String時(shí)的插值問題
假設(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'
因?yàn)镸yBatis要求如果參數(shù)為String的話,不管接口方法的形參是什么,在Mapper.xml中引用時(shí)需要改變?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ù)進(jìn)行是否相等 比較時(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進(jìn)行處理時(shí)也會出現(xiàn)同樣的問題。
以上所述是小編給大家介紹的MyBatis 參數(shù)類型為String時(shí)常見問題及解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
解決IDEA中maven導(dǎo)入jar包一直報(bào)錯問題
這篇文章主要介紹了解決IDEA中maven導(dǎo)入jar包一直報(bào)錯問題,本文通過實(shí)例圖文的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04spring?boot項(xiàng)目實(shí)戰(zhàn)之實(shí)現(xiàn)與數(shù)據(jù)庫的連接
在我們?nèi)粘5拈_發(fā)過程中,肯定不可避免的會使用到數(shù)據(jù)庫以及SQL?語句,下面這篇文章主要給大家介紹了關(guān)于spring?boot項(xiàng)目實(shí)戰(zhàn)之實(shí)現(xiàn)與數(shù)據(jù)庫連接的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05Java 負(fù)載均衡的 5 種算法實(shí)現(xiàn)原理
這篇文章主要介紹Java 負(fù)載均衡的 5 種算法實(shí)現(xiàn)原理,負(fù)載均衡能夠平均分配客戶請求到服 務(wù)器陣列,借此提供快速獲取重要數(shù)據(jù),解決大量并發(fā)訪問服務(wù)問題,這種集群技術(shù)可以用最少的投資獲得接近于大型主機(jī)的性能。下面就來看看文章的具體內(nèi)容吧2021-10-10Mybatis 中的sql批量修改方法實(shí)現(xiàn)
在項(xiàng)目中遇到需要批量更新的功能,原本想的是在Java中用循環(huán)訪問數(shù)據(jù)庫去更新,但是心里總覺得這樣做會不會太頻繁了,太耗費(fèi)資源了,效率也很低,查了下mybatis的批量操作,原來確實(shí)有<foreach>標(biāo)簽可以做到,下面通過本文給大家介紹下2017-01-01利用線程實(shí)現(xiàn)動態(tài)顯示系統(tǒng)時(shí)間
編寫Applet小程序,通過在HTML文檔中接收參數(shù),顯示當(dāng)前的系統(tǒng)時(shí)間,需要的朋友可以參考下2015-10-10Springboot結(jié)合Flowable實(shí)現(xiàn)工作流開發(fā)
本文主要介紹了Springboot結(jié)合Flowable實(shí)現(xiàn)工作流開發(fā),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Java中ArrayIndexOutOfBoundsException 異常報(bào)錯的解決方案
本文主要介紹了Java中ArrayIndexOutOfBoundsException 異常報(bào)錯的解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06