建设旅游网站的目的和意义,东莞市官网网站建设价格,线上外包平台,怎么看网站有没有做百度推广foreach的主要用在构建in条件中#xff0c;它可以在SQL语句中进行迭代一个集合。
foreach元素的属性主要有 item#xff0c;index#xff0c;collection#xff0c;open#xff0c;separator#xff0c;close。
item表示集合中每一个元素进行迭代时的别名#xff0c;i…foreach的主要用在构建in条件中它可以在SQL语句中进行迭代一个集合。
foreach元素的属性主要有 itemindexcollectionopenseparatorclose。
item表示集合中每一个元素进行迭代时的别名index指 定一个名字用于表示在迭代过程中每次迭代到的位置open表示该语句以什么开始separator表示在每次进行迭代之间以什么符号作为分隔 符close表示以什么结束。
在使用foreach的时候最关键的也是最容易出错的就是collection属性该属性是必须指定的但是在不同情况 下该属性的值是不一样的主要有一下3种情况
如果传入的是单参数且参数类型是一个List的时候collection属性值为list如果传入的是单参数且参数类型是一个array数组的时候collection的属性值为array如果传入的参数是多个的时候我们就需要把它们封装成一个Map了当然单参数也可
以封装成map实际上如果你在传入参数的时候在breast里面也是会把它封装成一个Map的map的key就是参数名所以这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key 下面分别来看看上述三种情况的示例代码
1.单参数List的类型
select iddynamicForeachTest parameterTypejava.util.List resultTypeBlogselect * from t_blog where id inforeach collectionlist indexindex itemitem open( separator, close)#{item} /foreach
/select上述collection的值为list对应的Mapper是这样的 public List dynamicForeachTest(List ids); 测试代码 Testpublic void dynamicForeachTest() {SqlSession session Util.getSqlSessionFactory().openSession();BlogMapper blogMapper session.getMapper(BlogMapper.class);List ids new ArrayList();ids.add(1);ids.add(3);ids.add(6);List blogs blogMapper.dynamicForeachTest(ids);for (Blog blog : blogs)System.out.println(blog);session.close();}2.单参数array数组的类型
select iddynamicForeach2Test parameterTypejava.util.ArrayList resultTypeBlogselect * from t_blog where id inforeach collectionarray indexindex itemitem open( separator, close)#{item}/foreach
/select 上述collection为array对应的Mapper代码 public List dynamicForeach2Test(int[] ids); 对应的测试代码
Test
public void dynamicForeach2Test() {SqlSession session Util.getSqlSessionFactory().openSession();BlogMapper blogMapper session.getMapper(BlogMapper.class);int[] ids new int[] {1,3,6,9};List blogs blogMapper.dynamicForeach2Test(ids);for (Blog blog : blogs)System.out.println(blog);session.close();
}3.自己把参数封装成Map的类型
select iddynamicForeach3Test parameterTypejava.util.HashMap resultTypeBlogselect * from t_blog where title like %#{title}% and id inforeach collectionids indexindex itemitem open( separator, close)#{item}/foreach
/select上述collection的值为ids是传入的参数Map的key对应的Mapper代码 public List dynamicForeach3Test(Map params); 对应测试代码
Testpublic void dynamicForeach3Test() {SqlSession session Util.getSqlSessionFactory().openSession();BlogMapper blogMapper session.getMapper(BlogMapper.class);final List ids new ArrayList();ids.add(1);ids.add(2);ids.add(3);ids.add(6);ids.add(7);ids.add(9);Map params new HashMap();params.put(ids, ids);params.put(title, 中国);List blogs blogMapper.dynamicForeach3Test(params);for (Blog blog : blogs)System.out.println(blog);session.close();}