zoukankan      html  css  js  c++  java
  • mybatis框架,使用foreach实现复杂结果的查询循环List集合方式

    需求,根据用户角色列表  查询用户列表信息 

    之前我们传入的参数是Array,一个数组的形式,现在我们传入的是一个List集合,其他条件没有变化。

    /**
    * 需求:传入指定的用户角色,用户角色有1-n,获取这些用户角色下的用户列表信息
    * @param roleids
    * @return
    */
    public List<User> getUserListByRoleid_List(List<Integer> roleList);

    <resultMap type="User" id="userListArray">
            <id property="id" column="id"/>
      <result property="userCode" column="userCode" />
      <result property="userName" column="userName" />
      <result property="userRole" column="userRole" />
    </resultMap>

    <!-- 使用第二中方式机型入参,传入的参数是list集合 -->
    <select id="getUserListByRoleid_List" resultMap="userListArray" >
      select * from smbms_user where userRole in
       <foreach collection="list" item="roleList" open="(" separator="," close=")">
       #{roleList}
      </foreach>
    </select>

     1 //传入List集合的方式
     2     @Test
     3     public void testGetUserByForeach_List(){
     4         SqlSession sqlSession = null;
     5         List<Integer> userList = new ArrayList<Integer>();
     6         userList.add(2);
     7         userList.add(3);
     8         List<User> userListShow=new ArrayList<User>();
     9         try {
    10             sqlSession = MyBatisUtil.createSqlSession();
    11             userListShow = sqlSession.getMapper(UserMapper.class).getUserListByRoleid_List(userList);
    12             
    13         } catch (Exception e) {
    14             // TODO: handle exception
    15             e.printStackTrace();
    16         }finally{
    17             MyBatisUtil.closeSqlSession(sqlSession);
    18         }
    19         for(User user: userListShow){
    20             logger.debug("testGetUserListAddressByUserId UserCode: " + user.getUserCode() + " and UserName: " + user.getUserName()+"and userRole:"+user.getUserRole());
    21         }
    22     
    23             
    24     }

    运行结果:

     1 [DEBUG] 2019-12-22 15:13:43,496 cn.smbms.dao.user.UserMapper.getUserListByRoleid_List - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@28bb494b]
     2 [DEBUG] 2019-12-22 15:13:43,496 cn.smbms.dao.user.UserMapper.getUserListByRoleid_List - ==>  Preparing: select * from smbms_user where userRole in ( ? , ? ) 
     3 [DEBUG] 2019-12-22 15:13:43,514 cn.smbms.dao.user.UserMapper.getUserListByRoleid_List - ==> Parameters: 2(Integer), 3(Integer)
     4 [DEBUG] 2019-12-22 15:13:43,550 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@28bb494b]
     5 [DEBUG] 2019-12-22 15:13:43,551 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@28bb494b]
     6 [DEBUG] 2019-12-22 15:13:43,551 org.apache.ibatis.datasource.pooled.PooledDataSource - Returned connection 683362635 to pool.
     7 [DEBUG] 2019-12-22 15:13:43,551 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: liming and UserName: 李明and userRole:2
     8 [DEBUG] 2019-12-22 15:13:43,551 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: hanlubiao and UserName: 韩路彪and userRole:2
     9 [DEBUG] 2019-12-22 15:13:43,551 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: zhanghua and UserName: 张华and userRole:3
    10 [DEBUG] 2019-12-22 15:13:43,551 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: wangyang and UserName: 王洋and userRole:3
    11 [DEBUG] 2019-12-22 15:13:43,551 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: zhaoyan and UserName: 赵燕and userRole:3
    12 [DEBUG] 2019-12-22 15:13:43,551 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: sunlei and UserName: 孙磊and userRole:3
    13 [DEBUG] 2019-12-22 15:13:43,551 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: sunxing and UserName: 孙兴and userRole:3
    14 [DEBUG] 2019-12-22 15:13:43,551 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: zhangchen and UserName: 张晨and userRole:3
    15 [DEBUG] 2019-12-22 15:13:43,551 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: dengchao and UserName: 邓超and userRole:3
    16 [DEBUG] 2019-12-22 15:13:43,551 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: yangguo and UserName: 杨过and userRole:3
    17 [DEBUG] 2019-12-22 15:13:43,551 cn.smbms.dao.user.UserMapperTest - testGetUserListAddressByUserId UserCode: zhaomin and UserName: 赵敏and userRole:2
  • 相关阅读:
    算法
    算法
    算法
    算法
    算法
    【PAT】B1064 朋友数(20 分)
    【PAT】B1065 单身狗(25 分)
    【PAT】B1066 图像过滤(15 分)
    【PAT】B1067 试密码(20 分)
    【PAT】B1068 万绿丛中一点红(20 分)
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/12079917.html
Copyright © 2011-2022 走看看