★学习目标:
掌握<foreach>元素对数组的迭代,能够在代码中熟练使用<foreach>元素对数组的迭代
★思考任务:
<foreach>元素对数组的迭代的过程是怎样的?
★任务学习:
★知识要点:
<foeeach>实现入参为数组类型的遍历
例如,要从数据表t_customer中查询出id为1、2、3的客户信息,就可以利用数组作为参数,存储id的属性值1、2、3,并通过<foreach>元素迭代数组完成客户信息的批量查询操作。
<foreach>元素迭代数组的实现具体如下。在映射文件CustomerMapper.xml中,添加使用<foreach>元素迭代数组执行批量查询操作的动态SQL。
<select id="findByArray" parameterType="java.util.Arrays"
resultType="com.itheima.pojo.Customer">select * from t_customer where id in
<foreach item="id" index="index" collection="array"
open="(" separator="," close=")"> #{id}
</foreach>
select>
在测试类MyBatisTest中,编写测试方法findByArrayTest()方法,实现客户信息的批量查询。
public void findByArrayTest() {
SqlSession session = MyBatisUtils.getSession(); // 获取SqlSession
Integer[] roleIds = {2,3}; // 创建数组,封装查询id
// 执行SqlSession的查询方法,返回结果集
List<Customer> customers = session.selectList("com.itheima.mapper"
+ ".CustomerMapper.findByArray", roleIds);
for (Customer customer : customers) {System.out.println(customer);}
session.close();
}
执行MyBatisTest测试类的findByArrayTest()方法,控制台会输出结果。


