foreach_array
1-
//根据用户的某些角色,获得用户信息列表
public List<User> getUserListByUserRoles_foreach_array(Integer[] userRoles);
2-
<!-- 根据用户的某些角色,获得用户信息列表-->
<!-- SELECT u.*
FROM smbms_user u
WHERE u.`userRole`
IN (1,2,3);-->
<select id="getUserListByUserRoles_foreach_array" resultType="User">
SELECT u.*
FROM smbms_user u
WHERE u.`userRole`
IN
<foreach collection="array" item="xiaozhu" open="(" separator="," close=")">
#{xiaozhu}
</foreach>
</select>
3-
@Test
public void getUserListByUserRoles_foreach_arrayTest(){
SqlSession sqlSession = MyBatisUtil.createSqlSession();
Integer[] userRoles={1,2,3};
List<User> userList = sqlSession.getMapper(UserMapper.class).getUserListByUserRoles_foreach_array(userRoles);
//提交事务和关闭sqlSession
sqlSession.commit();
MyBatisUtil.closeSqlSession(sqlSession);
for(User u:userList){
logger.debug(u.getId()+"\t"+u.getUserName()+"\t"+u.getUserCode()+"\t"+u.getUserRole());
}
}
foreach_list
1-
//根据用户的某些角色,获得用户信息列表--封装到list里面
public List<User> getUserListByUserRoles_foreach_list(List<Integer> userRolesList);
2-
<!--根据用户的某些角色,获得用户信息列表,封装到list里面-->
<select id="getUserListByUserRoles_foreach_list" resultType="User">
select *
from smbms_user
where userRole
in
<foreach collection="list" item="luozhixiang" open="(" separator="," close=")">
#{luozhixiang}
</foreach>
</select>
3-
@Test
public void getUserListByUserRoles_foreach_listTest(){
SqlSession sqlSession = MyBatisUtil.createSqlSession();
List<Integer> userRolesList=new ArrayList<>();
userRolesList.add(1);
userRolesList.add(2);
userRolesList.add(3);
List<User> userList = sqlSession.getMapper(UserMapper.class).getUserListByUserRoles_foreach_list(userRolesList);
//遍历
//提交事务和关闭
sqlSession.commit();
MyBatisUtil.closeSqlSession(sqlSession);
for(User u:userList){
logger.debug(u.getId()+"\t"+u.getUserName()+"\t"+u.getUserCode()+"\t"+u.getUserRole());
}
}
foreach_map
1-
//根据用户的某些角色,获得用户信息列表--封装到map里面
public List<User> getUserListByUserRoles_foreach_map(Map<String,Object> userRolesMap);
2-
<!-- 根据用户的某些角色,获得用户信息列表--封装到map里面-->
<select id="getUserListByUserRoles_foreach_map" resultType="User">
select *
from smbms_user
where userRole
in
<foreach collection="zhouyangqing" item="heiyanquan" open="(" separator="," close=")">
#{heiyanquan}
</foreach>
</select>
3-
@Test
public void getUserListByUserRoles_foreach_mapTest(){
SqlSession sqlSession = MyBatisUtil.createSqlSession();
Map<String,Object> userRolesMap=new HashMap<>();//key-value no1-->1 no2--2 no3--3 ?
List<Integer> userRolesList=new ArrayList<>();
userRolesList.add(1);
userRolesList.add(2);
userRolesList.add(3);
userRolesMap.put("zhouyangqing",userRolesList); //key-value注意:key 是什么? 要和sql语句中的 collection的值保持一致
List<User> userList = sqlSession.getMapper(UserMapper.class).getUserListByUserRoles_foreach_map(userRolesMap);
sqlSession.commit();
MyBatisUtil.closeSqlSession(sqlSession);
for(User u:userList){
logger.debug(u.getId()+"\t"+u.getUserName()+"\t"+u.getUserCode()+"\t"+u.getUserRole());
}
}