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

