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