dsf

Foreach标签

 

foreach:

collection:指定要遍历的集合;

表示传入过来的参数的数据类型。该参数为必选。要做 foreach 的对象,作为入参时,List 对象默认用 list 代替作为键,

数组对象有 array 代替作为键,Map 对象没有默认的键。当然在作为入参时可以使用 @Param(keyName) 来设置键,

设置 keyName 后,list,array 将会失效

item:将当前遍历出的元素赋值给指定的变量,然后用#{变量名},就能取出变量的值,也就是当前遍历出的元素

separator:每个元素之间的分隔符, select * from Emp where id in(1,2,3)相当于1,2,3之间的","

open:以为开始

closse:以什么结束

Index:索引,遍历list的时候index就是索引,遍历map的时候index表示的就是mapkey,item就是map的值.

DAO接口中定义的方法:

public interface EmpMapper {

//使用foreach

public List getEmpsByConditionLike(@Param("ids")List ids);

}

@Param("ids") 将入参改名为ids 在标签 froeach中使用

映射文件:

 

测试代码:

public static void main(String[] args) throws IOException {

String resource="mybatis-config.xml";

InputStream resourceAsStream = Resources.getResourceAsStream(resource);

SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);

SqlSession session = sessionFactory.openSession();

EmpMapper mapper = session.getMapper(EmpMapper.class);

List list = new ArrayList();

list.add(1);

list.add(2);

List emps=mapper.getEmpsByConditionLike(list);

for (Emp emp2 : emps) {

System.out.println(emp2);

 

}

 

 

 

 

 

Foreach批量插入:

映射配置文件

  

   insert into emp(last_name,email,gender,d_id) values

  

   (#{emp.last_name},#{emp.email},#{emp.gender},#{emp.d_id})

  

  

你可能感兴趣的:(dsf)