★学习目标:
掌握<foreach>元素对Map集合的迭代,能够在代码中熟练使用<foreach>元素对Map的迭代
★思考任务:
<foreach>元素对Map的迭代的过程是怎么样的?
★任务学习:
★知识要点:
下面通过一个案例演示如何使用<foreach>元素迭代Map集合,实现多参数入参查询操作,案例具体实现步骤如下。 在映射文件CustomerMapper.xml中,添加使用<foreach>元素迭代Map集合执行批量查询操作的动态SQL。
<select id="findByMap" parameterType="java.util.Map"
resultType="com.itheima.pojo.Customer">
select * from t_customer where jobs=#{jobs} and id in
<foreach item="roleMap" index="index" collection="id" open="(" separator="," close=")"> #{roleMap}
</foreach>
</select>
在测试类MyBatisTest中,编写测试方法findByMapTest(),用于批量查询客户信息。
public void findByMapTest() {
SqlSession session = MyBatisUtils.getSession();
List<Integer> ids=new ArrayList<Integer>();
ids.add(1); ids.add(2); ids.add(3);
Map<String,Object> conditionMap = new HashMap<String, Object>();
conditionMap.put(“id",ids); conditionMap.put("jobs","teacher");
List<Customer> customers = session.selectList("com.itheima.mapper"
+ ".CustomerMapper.findByMap", conditionMap);
for (Customer customer : customers) { System.out.println(customer);}
session.close();
}
执行MyBatisTest测试类的findByMapTest()方法,控制台会输出结果。


