MyBatis循环Map
今天遇到一个比较特殊的业务,需要对传入的Map数据在映射文件中进行遍历,在之前的学习中,我们也知道MyBatis有默认对集合的操作list 和 array ,但是没有默认的 map ,所有不能直接写 collection=“map” ,如果这么处理,它会当成是根据 map.get(“map”) 获取传递value只,大部分情况下是一个map中是不会有“map”这个key的,于是就是报错。如果你想用 map 标识来获取参数map,就需要保证传入的Map参数有 @Param(“map”) 注解。
1.Mybatis入参Map的使用
1.1 传递Map数据
第一种:自己封装传递Map中的KEY值,模拟数据
//service:
public List<UserDepte> getByMap(Map<String,List<Long>> map){
Map<String,Object> paramsMap= new HashMap<String, Object>();
params.put("paramsMap", map);
return this.getByMap(paramsMap);
}
//dao:
int getByMap(Map<String,Object> map)
第二种:个人推荐 @Param 注解
//service直接调用dao
int get