mybatis数组和集合的长度判断及插入方式
这篇文章主要介绍了mybatis数组和集合的长度判断及插入方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
目录
mybatis数组和集合的长度判断及插入
1、在使用foreach的是collection属性
2、判断长度
mybatis数组与集合判断非空和长度
数组判断
集合判断
mybatis数组和集合的长度判断及插入
1、在使用foreach的是collection属性
该属性是必须指定的,但是在不同情况下,该属性的值是不一样的
主要有一下4种情况:
如果传入的是单参数且参数类型是一个List的时候,collection属性值为list .
如果传入的是单参数且参数类型是非list的Collection的时候,collection属性值为collection .
如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array
如果dao层指定了param的name,或者dao层传的是map,collection里为param的name或map的key
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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">
数组:<if test="col != null and col .length > 0">
mybatis数组与集合判断非空和长度
数组判断
参数object为数组Object[]时。先判断是否为null,不为null则判断数组长度object.length是否大于0即可。
1 2 3 | < if test="object!=null and object.length>0"> < yourSql > </ if > |
集合判断
参数object为集合List<Object>时,先判断是否为null,不为null则判断集合长度object.size()是否大于0即可。
1 2 3 | < if test="object!=null and object.size()>0"> < yourSql > </ if > |
以上为个人经验,希望能给大家一个参考
原文链接:https://www.cnblogs.com/jaxlove-it/p/9328291.html