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)文章
使用Java和Ehcache實(shí)現(xiàn)緩存策略的設(shè)置及示例代碼
本文介紹了如何使用Java和Ehcache實(shí)現(xiàn)緩存策略,包括基本配置、緩存策略的設(shè)置以及示例代碼,感興趣的朋友跟隨小編一起看看吧2025-12-12
Java語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)棧代碼詳解
這篇文章主要介紹了Java語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)棧代碼詳解,簡(jiǎn)單介紹了棧的概念,然后分享了線性棧和鏈?zhǔn)綏5腏ava代碼,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11
使用Java編寫一個(gè)圖片word互轉(zhuǎn)工具
這篇文章主要介紹了使用Java編寫一個(gè)PDF?Word文件轉(zhuǎn)換工具的相關(guān)資料,需要的朋友可以參考下2023-01-01
MyBatis動(dòng)態(tài)SQL與MyBatis Generator插件使用教程
動(dòng)態(tài)SQL是Mybatis的強(qiáng)大特性之?,能夠完成不同條件下不同的sql拼接,本文給大家介紹MyBatis動(dòng)態(tài)SQL與MyBatis Generator插件使用,感興趣的朋友跟隨小編一起看看吧2026-03-03
JAVA8 stream中三個(gè)參數(shù)的reduce方法對(duì)List進(jìn)行分組統(tǒng)計(jì)操作
這篇文章主要介紹了JAVA8 stream中三個(gè)參數(shù)的reduce方法對(duì)List進(jìn)行分組統(tǒng)計(jì)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08
gateway Redisson接口級(jí)別限流問(wèn)題及解決過(guò)程
Redisson提供了基于令牌桶算法的限流器技術(shù),適用于API網(wǎng)關(guān)、分布式系統(tǒng)和微服務(wù)架構(gòu),該技術(shù)可以對(duì)系統(tǒng)進(jìn)行流量控制,保護(hù)重要接口,滿足個(gè)性化限流需求2025-11-11
Mybatis?sqlMapConfig.xml中的mappers標(biāo)簽使用
這篇文章主要介紹了Mybatis?sqlMapConfig.xml中的mappers標(biāo)簽使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。2022-01-01
WebSocket獲取httpSession空指針異常的解決辦法
這篇文章主要介紹了在使用WebSocket實(shí)現(xiàn)p2p或一對(duì)多聊天功能時(shí),如何獲取HttpSession來(lái)獲取用戶信息,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-01-01

