mybatis framework, using foreach result of complex queries - cycle the collection array

Demand: Suppose now check out user roles are 2 and 3 specified user list information, and display

interface:

/ **
* Requirements: Incoming specified user roles, user roles with a 1-n, acquired under These user roles the user list information
* @param roleids
* @return
* /
public List <the User> getUserListByRoleid_Array (Integer [] roleids) ;

mapper.xml file

 

 

 1     <resultMap type="User" id="userListArray">
 2          <id property="id" column="id"/>
 3         <result property="userCode" column="userCode" />
 4         <result property="userName" column="userName" />
 5         <result property="userRole" column="userRole" />
 6     </resultMap>
 7     <select id="getUserListByRoleid_Array" resultMap="userListArray" >
 8        select * from smbms_user where userRole in 
 9        <foreach collection="array" item="roleids" open="("  separator="," close=")">
10            #{roleids}
11        </foreach>
12     </select>

 

 编写对应的测试方法:

 1     @Test
 2     public void testGetUserByForeach_Array(){
 3         SqlSession sqlSession = null;
 4         List<User> userList = new ArrayList<User>();
 5         Integer[] userArray={2,3};
 6         try {
 7             sqlSession = MyBatisUtil.createSqlSession();
 8             userList = sqlSession.getMapper(UserMapper.class).getUserListByRoleid_Array(userArray);
 9             
10         } catch (Exception e) {
11             // TODO: handle exception
12             e.printStackTrace();
13         }finally{
14             MyBatisUtil.closeSqlSession(sqlSession);
15         }
16         for(User user: userList){
17             logger.debug("testGetUserListAddressByUserId UserCode: " + user.getUserCode() + " and UserName: " + user.getUserName()+"and userRole:"+user.getUserRole());
18         }
19     
20             
21     }

运行结果:

[DEBUG] 2019-12-17 11:32:24,987 cn.smbms.dao.user.UserMapper.getUserListByRoleid_Array - ==> Preparing: select * from smbms_user where userRole in ( ? , ? )
[DEBUG] 2019-12-17 11:32:25,003 cn.smbms.dao.user.UserMapper.getUserListByRoleid_Array - ==> Parameters: 2(Integer), 3(Integer)
[DEBUG] 2019-12-17 11:32:25,020 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@4a6397eb]
[DEBUG] 2019-12-17 11:32:25,021 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@4a6397eb]
[DEBUG] 2019-12-17 11:32:25,021 org.apache.ibatis.datasource.pooled.PooledDataSource - Returned connection 1248040939 to pool.
[DEBUG] 2019-12-17 11:32:25,021 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: liming and UserName: 李明and userRole:2
[DEBUG] 2019-12-17 11:32:25,021 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: hanlubiao and UserName: 韩路彪and userRole:2
[DEBUG] 2019-12-17 11:32:25,021 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: zhanghua and UserName: 张华and userRole:3
[DEBUG] 2019-12-17 11:32:25,021 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: wangyang and UserName: 王洋and userRole:3
[DEBUG] 2019-12-17 11:32:25,021 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: zhaoyan and UserName: 赵燕and userRole:3
[DEBUG] 2019-12-17 11:32:25,021 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: sunlei and UserName: 孙磊and userRole:3
[DEBUG] 2019-12-17 11:32:25,021 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: sunxing and UserName: 孙兴and userRole:3
[DEBUG] 2019-12-17 11:32:25,021 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: zhangchen and UserName: 张晨and userRole:3
[DEBUG] 2019-12-17 11:32:25,021 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: dengchao and UserName: 邓超and userRole:3
[DEBUG] 2019-12-17 11:32:25,021 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: yangguo and UserName: 杨过and userRole:3
[DEBUG] 2019-12-17 11:32:25,021 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: zhaomin and UserName: 赵敏and userRole:2

Guess you like

Origin www.cnblogs.com/dongyaotou/p/12053588.html