上述collection的值为list,对应的Mapper是这样的: public List dynamicForeachTest(List ids); 测试代码: @Test public 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的类型:
上述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的类型:
上述collection的值为ids,是传入的参数Map的key,对应的Mapper代码: public List dynamicForeach3Test(Map params); 对应测试代码: @Test public 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); 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(); }
<4>嵌套foreach的使用:
map 数据如下 Map>
测试代码如下:
public void getByMap(){
Map> params=new HashMap>();
List orgList=new ArrayList();
orgList.add(10000003840076L);
orgList.add(10000003840080L);
List roleList=new ArrayList();
roleList.add(10000000050086L);
roleList.add(10000012180016L);
params.put("org", orgList);
params.put("role", roleList);
List list= bpmDefUserDao.getByMap(params);
System.out.println(list.size());
} dao代码如下:
public List getByMap(Map> map){
Map params=new HashMap();
params.put("relationMap", map);
return this.getBySqlKey("getByMap", params);
} xml代码如下:
SELECT *
FROM BPM_DEF_USER
where RIGHT_TYPE=#{key}
and OWNER_ID in
#{id}
index 作为map 的key。item为map的值,这里使用了嵌套循环,嵌套循环使用ent。《项目实践》
from cm_application a LEFT JOIN cm_dict_type b on a.STATE = b.DICT_CODE AND b.TYPE = 'Application_State' LEFT JOIN cm_dict_type c on a.ITEM = c.DICT_CODE LEFT JOIN cm_dict_type d on a.TYPE = d.DICT_CODE
where 1=1 and a.ITEM = #{item,jdbcType=VARCHAR} and a.TYPE IN #{typeArray} and a.APP_PERSON_ID = #{appPersonId,jdbcType=BIGINT} and a.STATE IN #{stateArray} and a.CREATE_TIME >= #{startCreateTime,jdbcType=TIMESTAMP} and a.CREATE_TIME <= #{endCreateTime,jdbcType=TIMESTAMP} order by a.ID
发表评论