Mybatis傳遞多個引數的4種方式(乾貨)
現在大多專案都是使用Mybatis了,但也有些公司使用Hibernate。使用Mybatis最大的特性就是sql需要自己寫,而寫sql就需要傳遞多個引數。面對各種複雜的業務場景,傳遞引數也是一種學問。
下面給大家總結了以下幾種多引數傳遞的方法。
方法1:順序傳參法
public User selectUser(String name, int deptId);
<select id="selectUser" resultMap="UserResultMap">
select * from user
where user_name = #{0} and dept_id = #{1}
</select>
#{}
裡面的數字代表你傳入引數的順序。
這種方法不建議使用,sql層表達不直觀,且一旦順序調整容易出錯。
方法2:@Param註解傳參法
public User selectUser(@Param("userName") String name, int @Param("deptId") deptId);
<select id="selectUser" resultMap="UserResultMap">
select * from user
where user_name = #{userName} and dept_id = #{deptId}
</select>
#{}
裡面的名稱對應的是註解@Param
括號裡面修飾的名稱。
這種方法在引數不多的情況還是比較直觀的,推薦使用。
方法3:Map傳參法
public User selectUser(Map<String, Object> params);
<select id="selectUser" parameterType="java.util.Map" resultMap="UserResultMap">
select * from user
where user_name = #{userName} and dept_id = #{deptId}
</select>
#{}
裡面的名稱對應的是Map
裡面的key名稱。
這種方法適合傳遞多個引數,且引數易變能靈活傳遞的情況。
方法4:Java Bean傳參法
public User selectUser(Map<String, Object> params);
<select id="selectUser" parameterType="com.test.User" resultMap="UserResultMap">
select * from user
where user_name = #{userName} and dept_id = #{deptId}
</select>
#{}
裡面的名稱對應的是User
類裡面的成員屬性。
這種方法很直觀,但需要建一個實體類,擴充套件不容易,需要加屬性,看情況使用。
有收穫的話,分享下朋友圈給更多的人吧!
推薦閱讀
教程:史上最強 Spring Boot & Cloud 教程彙總
掃描關注我們的微信公眾號,回覆 “666” 可獲取一套Java併發程式設計高清視訊教程。
相關文章
- java 傳遞引數的兩種方式Java
- Mybatis引數傳遞MyBatis
- mybatis 傳遞多個引數 --解決mybatis查詢使用多個引數方法--javabean傳統方法和map方法MyBatisJavaBean
- mybatis 傳入多個引數MyBatis
- MyBatis傳入多個引數MyBatis
- SSM框架中Mybatis傳遞引數的幾種方法SSM框架MyBatis
- Mybatis parameterType 傳入多個引數的使用MyBatis
- MyBatis傳入多個引數的問題MyBatis
- MyBatis 使用foreach與其他方式的時候引數傳遞方式MyBatis
- Mybatis 傳入多個引數查詢資料 (3種方法)MyBatis
- C++引數的傳遞方式C++
- JSP向後臺傳遞引數的四種方式JS
- GridView CommandArgument傳遞多個引數View
- SpringBoot系列Mybatis之引數傳遞的幾種姿勢Spring BootMyBatis
- Mybatis引數傳遞&註解開發MyBatis
- 15.MyBatis傳入多個引數的問題MyBatis
- Java中將方法作為引數傳遞5種方式Java
- 引數傳遞方式必須是const引用傳遞
- C/C++中的引數傳遞方式C++
- iOS之@selector的函式傳遞多個引數iOS函式
- 使用python指令碼傳遞引數:(三種方式可收藏)Python指令碼
- ASP.NET 標記href傳遞多個引數ASP.NET
- 獲取url傳遞傳遞的某個引數的值
- mybatis傳遞引數到mapping.xmlMyBatisAPPXML
- ABAP 方法呼叫的引數傳遞裡,透過引用傳遞的方式,能修改原始引數值嗎?
- 如何在mybatis 中傳多個引數,如何在mybatis 中遍歷 集合?MyBatis
- 在多個JSP頁面之間傳遞引數JS
- 引數傳遞
- require方法接受以下幾種引數的傳遞:UI
- Mybatis(五)--原始碼分析傳入單個list引數和多個list引數寫法MyBatis原始碼
- Silverlight之Frame傳遞多個引數並獲取完整引數
- mybatis 的傳入引數如何既有物件又有單個引數MyBatis物件
- 向路由元件傳遞引數2種方法路由元件
- 給一個介面傳遞引數,並接收返回的引數
- GridView傳遞兩個引數的方法View
- MyBatis傳入多個引數,傳入陣列和列表資料的處理MyBatis陣列
- C# 多執行緒引數傳遞C#執行緒
- rails中傳遞多個引數破壞了 restful原則?AIREST