mybatis數(shù)組和集合的長度判斷及插入方式
mybatis數(shù)組和集合的長度判斷及插入
1、在使用foreach的是collection屬性
該屬性是必須指定的,但是在不同情況下,該屬性的值是不一樣的
主要有一下4種情況:
- 如果傳入的是單參數(shù)且參數(shù)類型是一個List的時候,collection屬性值為list .
- 如果傳入的是單參數(shù)且參數(shù)類型是非list的Collection的時候,collection屬性值為collection .
- 如果傳入的是單參數(shù)且參數(shù)類型是一個array數(shù)組的時候,collection的屬性值為array
- 如果dao層指定了param的name,或者dao層傳的是map,collection里為param的name或map的key
DefaultSqlSession
private Object wrapCollection(final Object object) {
? ? if (object instanceof Collection) {
? ? ? StrictMap<Object> map = new StrictMap<Object>();
? ? ? map.put("collection", object);
? ? ? if (object instanceof List) {
? ? ? ? map.put("list", object);
? ? ? }
? ? ? return map;
? ? } else if (object != null && object.getClass().isArray()) {
? ? ? StrictMap<Object> map = new StrictMap<Object>();
? ? ? map.put("array", object);
? ? ? return map;
? ? }
? ? return object;
? }2、判斷長度
集合:<if test="arr != null and arr.size() > 0">
數(shù)組:<if test="col != null and col .length > 0">
mybatis數(shù)組與集合判斷非空和長度
數(shù)組判斷
參數(shù)object為數(shù)組Object[]時。先判斷是否為null,不為null則判斷數(shù)組長度object.length是否大于0即可。
?? ?<if test="object!=null and object.length>0"> ?? ??? ?<yourSql> ?? ?</if>
集合判斷
參數(shù)object為集合List<Object>時,先判斷是否為null,不為null則判斷集合長度object.size()是否大于0即可。
?? ?<if test="object!=null and object.size()>0"> ?? ??? ?<yourSql> ?? ?</if>
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java結(jié)合uniapp實(shí)現(xiàn)驗(yàn)證碼功能的示例詳解
UniApp 是一個基于 Vue.js 的跨平臺應(yīng)用開發(fā)框架,允許開發(fā)者使用統(tǒng)一的代碼庫來構(gòu)建多平臺應(yīng)用,這篇文章將給大家介紹Java結(jié)合uniapp實(shí)現(xiàn)驗(yàn)證碼功能,文中通過詳細(xì)的代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-07-07
Java8新特性之lambda的作用_動力節(jié)點(diǎn)Java學(xué)院整理
我們期待了很久lambda為java帶來閉包的概念,但是如果我們不在集合中使用它的話,就損失了很大價值?,F(xiàn)有接口遷移成為lambda風(fēng)格的問題已經(jīng)通過default methods解決了,在這篇文章將深入解析Java集合里面的批量數(shù)據(jù)操作解開lambda最強(qiáng)作用的神秘面紗。2017-06-06
Java使用OpenOffice將office文件轉(zhuǎn)換為PDF的示例方法
OpenOffice是一個開源的辦公套件,它包含了文檔處理、電子表格、演示文稿以及繪圖等多種功能,類似于Microsoft Office,本文將給大家介紹Java使用OpenOffice將office文件轉(zhuǎn)換為PDF的示例方法,需要的朋友可以參考下2024-09-09
springboot-mongodb的多數(shù)據(jù)源配置的方法步驟
這篇文章主要介紹了springboot-mongodb的多數(shù)據(jù)源配置的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
mybatisplus?實(shí)現(xiàn)接口MetaObjectHandler自動填充字段值
MetaObjectHandler是MyBatis-Plus提供的一個接口,本文主要介紹了mybatisplus?實(shí)現(xiàn)接口MetaObjectHandler自動填充字段值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
Java Netty HTTP服務(wù)實(shí)現(xiàn)過程解析
這篇文章主要介紹了Java Netty HTTP服務(wù)實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08
詳解SpringBoot AOP 攔截器(Aspect注解方式)
這篇文章主要介紹了詳解SpringBoot AOP 攔截器 Aspect,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05

