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

則在獲取參數(shù)時,如果是要進行非null的判斷,則不可在if后直接那變量名進行判空,因為mybatis會默認變量名為_parameter,否則會報no getter/setter錯誤。正確的寫法如下:

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

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

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

第二種方式是使用位置索引的方式來獲取變量:

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

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

若傳入的是list<Map>,將其作為select語句的where條件時,進行遍歷

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



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

