MyBatis动态sql中foreach的简单使用

1、自定义对象集合(多字段),批量插入:

service代码:

List list = new ArrayList();
......
dao.saveWithKey("com.test.mapper.TestMapper.addUsers", list);

Mapper中:


  insert into test_user(name, age) values
    
       (#{item.name}, #{item.age})
    


2、基础对象集合(单字段),作为条件:

service中的代码:

List ids = Arrays.asList(param.split(","));
return dao.getList("com.test.mapper.TestMapper.getUsers", ids);

Mapper中:

 

3、list(单字段)作为其中一个参数,例如查询条件有3个:beginTime, endTime, list,其中list是一个List

service中代码:

List names= getUserNames();
Map params = new HashMap();
params.put("beginTime", beginTime);
params.put("endTime", endTime);
params.put("names", names);
dao.getList("com.test.mapper.TestMapper.getUsers", params);

Mapper中代码:

中各个属性的含义:

collection:指定要遍历的集合:  

List类型的参数会特殊处理封装在map中,map的key就叫list ;

item:将当前遍历出的元素赋值给指定的变量 ;

separator:每个元素之间的分隔符 ;

open:遍历出所有结果拼接一个开始的字符 ;

close:遍历出所有结果拼接一个结束的字符 ;

index:索引。遍历list的时候是index就是索引,item就是当前值 ;

遍历map的时候index表示的就是map的key,item就是map的值;



你可能感兴趣的:(Mybatis)