MyBatis幾種不同類型傳參的方式總結(jié)
MyBatis幾種不同類型傳參方式
在Web開發(fā)過(guò)程中,我們根據(jù)業(yè)務(wù)需求將不同類型參數(shù)從后臺(tái)傳入到MyBatis的各個(gè)不同的mapper命名空間中,包括有string類型,map類型,list集合類型,或者是直接傳入一個(gè)對(duì)象等。
1.String類型
1.1對(duì)于string類型,我們一般傳 在sql中寫明parameterType="string" ,例:

則在獲取參數(shù)時(shí),如果是要進(jìn)行非null的判斷,則不可在if后直接那變量名進(jìn)行判空,因?yàn)閙ybatis會(huì)默認(rèn)變量名為_parameter,否則會(huì)報(bào)no getter/setter錯(cuò)誤。正確的寫法如下:

上面情況是針對(duì)于string類型參數(shù)直接傳入,如果不想在判斷時(shí)使用,mybatis默認(rèn)的變量名,則需要在dao層后臺(tái)傳入時(shí)加上@Param

加上此注解,則在if判斷時(shí),可以直接用變量名。
1.2 對(duì)于多個(gè)String類型的傳入,則無(wú)法使用Mybatis默認(rèn)的_parameterType。有兩種方式,第一是同上在dao層使用@Param注解:

在mybatis中可以直接將此作為變量名判斷和使用

第二種方式是使用位置索引的方式來(lái)獲取變量:

2.對(duì)于傳入Map參數(shù)類型
則需要 寫明 parameterType="map"
則可以在mybatis的sql語(yǔ)句中,直接取key作為傳入?yún)?shù)的變量名,value即為對(duì)應(yīng)的變量值,一般要傳入多個(gè)string類型的參數(shù)時(shí),可以放在一個(gè)map中傳入mybatis。

3.傳入的參數(shù)類型為list
若傳入的是一個(gè)list<String>,則先進(jìn)行判斷是否為空,然后進(jìn)行遍歷該數(shù)組

若傳入的是list<Map>,將其作為select語(yǔ)句的where條件時(shí),進(jìn)行遍歷

4.傳入對(duì)象
傳入對(duì)象作為參數(shù),首先是要定義一個(gè)Pojo類。
將該類的屬性,都加上get/set方法,然后將要傳遞的參數(shù)進(jìn)行set賦值后進(jìn)行傳入,在xml的sql語(yǔ)句中可以直接取對(duì)象的屬性名稱作為參數(shù)名:如下所示是一個(gè)User類的部分代碼:



從而完成了User的更新操作
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot2.x中management.security.enabled=false無(wú)效的解決
這篇文章主要介紹了SpringBoot2.x中management.security.enabled=false無(wú)效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
maven項(xiàng)目pom.xml中parent標(biāo)簽的使用小結(jié)
使用maven是為了更好的幫項(xiàng)目管理包依賴,maven的核心就是pom.xml,當(dāng)我們需要引入一個(gè)jar包時(shí),在pom文件中加上就可以從倉(cāng)庫(kù)中依賴到相應(yīng)的jar包,本文就來(lái)介紹一下maven項(xiàng)目pom.xml中parent標(biāo)簽的使用小結(jié),感興趣的可以了解一下2023-12-12
java定義通用返回結(jié)果類ResultVO使用示例詳解
這篇文章主要為大家介紹了java定義通用返回結(jié)果類ResultVO使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
SpringBoot 統(tǒng)一異常處理的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot 統(tǒng)一異常處理的實(shí)現(xiàn)示例,目的就是在異常發(fā)生時(shí),盡可能地減少破壞,下面就來(lái)介紹一下,感興趣的可以了解一下2024-07-07

