MyBatis傳入多個引數,傳入陣列和列表資料的處理
java定義:
List<RoleEx> selectByRoleIdList(@Param("roles")String[] roles);
List<RoleEx> selectByRoleIdList1(@Param("roles")List<Integer> roles);
xml定義:
<select id="selectByRoleIdList" resultMap="NamedResultMap" >
SELECT
....
FROM
tm04_role a
<if test="roles != null">
where a.role_id in(
<foreach collection="roles" item="roleId" index="index" separator="," >
#{roleId,jdbcType=INTEGER}
</foreach>
)
</if>
order by a.role_name
</select>
<select id="selectByRoleIdList1" resultMap="NamedResultMap" >
SELECT
...
FROM
tm04_role a
<if test="roles != null">
where a.role_id in(
<foreach collection="roles" item="roleId" index="index" separator="," >
#{roleId,jdbcType=INTEGER}
</foreach>
)
</if>
order by a.role_name
</select>
測試程式碼:
String[] roles1 = {"1","2"};
List<RoleEx> list3 = mapper.selectByRoleIdList(roles1);
System.out.println(objMapper.writeValueAsString(list3));
List<Integer> roles2 = new ArrayList<Integer>();
roles2.add(1);
roles2.add(2);
List<RoleEx> list4 = mapper.selectByRoleIdList1(roles2);
System.out.println(objMapper.writeValueAsString(list4));
看看標籤定義:
在mybatis的mapper配置檔案中,可以利用<foreach>標籤實現sql條件的迴圈,可完成類似批量的sql
mybatis接受的引數分為:(1)基本型別(2)物件(3)List(4)陣列(5)Map
無論傳哪種引數給mybatis,他都會將引數放在一個Map中:
如果傳入基本型別:變數名作為key,變數值作為value 此時生成的map只有一個元素。
如果傳入物件: 物件的屬性名作為key,屬性值作為value,
如果傳入List: "list"作為key,這個List是value (這類引數可以迭代,利用<foreach>標籤實現迴圈)
如果傳入陣列: "array"作為key,陣列作為value(同上)
如果傳入Map: 鍵值不變。
<foreach>標籤的用法:
六個引數:
collection:要迴圈的集合
index:迴圈索引(不知道啥用。。)
item:集合中的一個元素(item和collection,按foreach迴圈理解)
open:以什麼開始
close:以什麼結束
separator:迴圈內容之間以什麼分隔
相關文章
- mybatis 傳入多個引數MyBatis
- MyBatis傳入多個引數MyBatis
- Mybatis parameterType 傳入多個引數的使用MyBatis
- MyBatis傳入多個引數的問題MyBatis
- Mybatis 傳入多個引數查詢資料 (3種方法)MyBatis
- 15.MyBatis傳入多個引數的問題MyBatis
- Mybatis(五)--原始碼分析傳入單個list引數和多個list引數寫法MyBatis原始碼
- mybatis 的傳入引數如何既有物件又有單個引數MyBatis物件
- MyBatis中foreach傳入引數為list、陣列、map的不同寫法MyBatis陣列
- Mybatis傳入引數為List物件MyBatis物件
- mybatis 傳遞多個引數 --解決mybatis查詢使用多個引數方法--javabean傳統方法和map方法MyBatisJavaBean
- sqlserver 針對預處理sql傳入引數的處理方式SQLServer
- MyBatis中傳入引數為List集合的MyBatis
- Java後臺接收前端傳遞的陣列物件引數的處理Java前端陣列物件
- Shell自學二(引數傳遞和陣列)陣列
- Mybatis傳遞多個引數的4種方式(乾貨)MyBatis
- Angular 自定義結構化指令,如何傳入多個輸入引數Angular
- MyBatis引數傳入集合之foreach動態sqlMyBatisSQL
- mybatis基礎03(介面中的多個引數處理)MyBatis
- mybatis sql foreach 引數的傳入的三種情況!!MyBatisSQL
- mybatis如何傳引數MyBatis
- Mybatis引數傳遞MyBatis
- Jmeter使用_time函式實現同一個介面引數傳入可以每次傳入不同的引數JMeter函式
- 為SQL Server資料庫傳陣列引數的變通辦法SQLServer資料庫陣列
- 如何在mybatis 中傳多個引數,如何在mybatis 中遍歷 集合?MyBatis
- MyBatis 引數處理MyBatis
- gdb除錯傳入引數除錯
- c++ -- 二維陣列引數傳遞C++陣列
- 12.MyBatis學習--對映檔案_引數處理_單個引數&多個引數&命名引數MyBatis
- ts中如何限制方法傳入的引數data必須是陣列,且為偶數項?陣列
- Acitivity在singleTask載入模式下的資料傳遞處理模式
- 把介面當作引數傳入
- php 陣列傳到前端 js進行處理PHP陣列前端JS
- JavaScript 事件處理函式傳遞引數JavaScript事件函式
- onclick事件處理函式傳遞引數事件函式
- Mybatis引數處理總結MyBatis
- ibatis in語句引數傳入方法BAT
- Oracle遊標型別作為傳入傳出引數Oracle型別