MyBatis在mapper中傳遞參數(shù)的四種方式
前言
在MyBatis的mapper.xml文件中,可以使用以下幾種方式來(lái)傳遞參數(shù):
1. 位置參數(shù)(positional parameters)
在SQL語(yǔ)句中使用${1}、${2}等占位符來(lái)表示參數(shù)的位置,然后在方法中通過(guò)參數(shù)的位置來(lái)傳遞參數(shù)。例如:
public User queryUser(String name, int age);
<select id="queryUser" resultType="User">
SELECT * FROM users WHERE name = ${1} AND dept_id = ${2}
</select>
在Java代碼中調(diào)用該查詢方法時(shí),需要傳遞String和int類型的參數(shù),#{}里面的數(shù)字代表傳入?yún)?shù)的順序。
2. 命名參數(shù)(named parameters)
在SQL語(yǔ)句中使用#{paramName}來(lái)表示命名參數(shù),然后在方法中通過(guò)給參數(shù)添加@Param注解來(lái)傳遞參數(shù)。例如:
public User queryUser(@Param("name") String name, int @Param("age") age);
<select id="queryUser" resultType="User">
SELECT * FROM users WHERE name = #{name} AND age = #{age}
</select>
在Java代碼中調(diào)用該查詢方法時(shí),需要傳遞String和int類型的參數(shù),將被替換到SQL語(yǔ)句中的#{name}和#{age}處。同時(shí),在方法的參數(shù)列表中添加@Param("name")和@Param("age")注解,指定參數(shù)的名稱與SQL語(yǔ)句中的命名參數(shù)相匹配。
3. 對(duì)象參數(shù)(object parameters)
如果傳遞的參數(shù)是一個(gè)對(duì)象,可以直接在SQL語(yǔ)句中使用對(duì)象的屬性來(lái)引用參數(shù)。例如:
public User queryUser(User user);
<select id="queryUser" parameterType="com.example.User" resultType="User">
SELECT * FROM users WHERE name = #{name} AND age = #{age}
</select>
在Java代碼中調(diào)用該查詢方法時(shí),需要傳遞一個(gè)User對(duì)象作為參數(shù),其中包含name和age屬性。這兩個(gè)屬性將分別替換到SQL語(yǔ)句中的#{name}和#{age}處。
4. Map參數(shù)(map parameters)
可以將參數(shù)封裝到一個(gè) Map 中,然后作為 mapper 方法的參數(shù)進(jìn)行傳遞。
public User queryUser(Map<String, Object> params);
<select id="queryUser" parameterType="java.util.Map" resultType="User">
SELECT * FROM users WHERE name = #{name} AND age = #{age}
</select>
#{}里面的名稱對(duì)應(yīng)的是Map里面的key名稱。
無(wú)論使用哪種方式傳遞參數(shù),都需要在mapper接口中定義對(duì)應(yīng)的方法,并在方法的參數(shù)列表中添加正確的參數(shù)類型和參數(shù)名稱,以便與mapper.xml文件中的SQL語(yǔ)句進(jìn)行匹配。MyBatis會(huì)自動(dòng)將方法中的參數(shù)傳遞給SQL語(yǔ)句的對(duì)應(yīng)位置或命名參數(shù)。
到此這篇關(guān)于MyBatis在mapper中傳遞參數(shù)的四種方式的文章就介紹到這了,更多相關(guān)MyBatis mapper傳遞參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Mybatis之mapper接口多參數(shù)方式
- Mybatis往Mapper.xml文件中傳遞多個(gè)參數(shù)問(wèn)題
- 一文搞懂Mybatis中Mapper配置文件獲取參數(shù)的五種方式
- Mybatis中關(guān)于自定義mapper.xml時(shí),參數(shù)傳遞的方式及寫法
- MyBatis在Mapper中傳遞多個(gè)參數(shù)的四種方法詳解
- Mybatis?Mapper中多參數(shù)方法不使用@param注解報(bào)錯(cuò)的解決
- mybatis?mapper.xml?注釋帶參數(shù)的坑及解決
- MyBatis Mapper接受參數(shù)的四種方式代碼解析
- 解決Mybatis?mappe同時(shí)傳遞?List?和其他參數(shù)報(bào)錯(cuò)的問(wèn)題
相關(guān)文章
Maven項(xiàng)目報(bào)錯(cuò):“?SLF4J:?Failed?to?load?class?“org.slf4j.imp
這篇文章主要給大家介紹了關(guān)于Maven項(xiàng)目報(bào)錯(cuò):“?SLF4J:?Failed?to?load?class?“org.slf4j.impl.StaticLoggerBinder?”的解決方案,文中給出詳細(xì)的解決思路與方法,需要的朋友可以參考下2022-03-03
Java Swing中JList選擇事件監(jiān)聽器ListSelectionListener用法示例
這篇文章主要介紹了Java Swing中JList選擇事件監(jiān)聽器ListSelectionListener用法,結(jié)合具體實(shí)例形式分析了中JList選擇事件監(jiān)聽器ListSelectionListener的功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-11-11
Java由淺入深細(xì)數(shù)數(shù)組的操作下
數(shù)組對(duì)于每一門編程語(yǔ)言來(lái)說(shuō)都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當(dāng)然不同語(yǔ)言對(duì)數(shù)組的實(shí)現(xiàn)及處理也不盡相同。Java?語(yǔ)言中提供的數(shù)組是用來(lái)存儲(chǔ)固定大小的同類型元素2022-04-04
IDEA打開java項(xiàng)目后里面的java文件不能運(yùn)行解決辦法
這篇文章主要給大家介紹了關(guān)于IDEA打開java項(xiàng)目后里面的java文件不能運(yùn)行的解決辦法,有時(shí)候想運(yùn)行別人的項(xiàng)目,但是別人的項(xiàng)目并非IDEA項(xiàng)目(甚至只有源碼),當(dāng)我們打開項(xiàng)目時(shí)候,并不能運(yùn)行,需要的朋友可以參考下2023-10-10
@Transactional遇到try catch失效的問(wèn)題
這篇文章主要介紹了@Transactional遇到try catch失效的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
學(xué)習(xí)Spring-Session+Redis實(shí)現(xiàn)session共享的方法
本篇文章主要介紹了學(xué)習(xí)Spring-Session+Redis實(shí)現(xiàn)session共享的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05

