zoukankan      html  css  js  c++  java
  • mybatis框架使用resultMap实现高级结果映射,association属性

    需求:查询数特定角色下的所有用户列表

    首先需要在在User类中引用Role类,因为引用了复杂的数据类型,所以要使用association属性进行映射,其实起主要作用的还是resultMap属性。

    /**
    * 根绝用户的角色id,获取该角色下的所有用户的信息
    * @param roleid
    * @return
    */
    public List<User> getUserListByRoleID(@Param("userRole1") Integer roleid);

    <resultMap type="User" id="UserRoleResult">
    <id property="id" column="id"/>
    <result property="userCode" column="userCode" />
    <result property="userName" column="userName" />
    <result property="userRole" column="userRole" />
    <!--User类中引用的Role类 -->
    <association property="role" javaType="Role" resultMap="roleResult"/>

    </resultMap>
    <resultMap type="Role" id="roleResult">
    <id property="id" column="b_id"/>
    <result property="roleCode" column="roleCode"/>
    <result property="roleName" column="roleName"/>
    </resultMap>

    <!--根绝用户的角色id,获取该角色下的所有用户的信息 -->
    <select id="getUserListByRoleID" resultMap="UserRoleResult" parameterType="Integer">
    SELECT a.*,b.id as b_id,b.rolename from smbms_user a,smbms_role b where a.userrole=b.id and b.id=#{userRole1}
    </select>

      1 package cn.smbms.pojo;
      2 
      3 import java.util.Date;
      4 
      5 public class User {
      6     private Integer id; //id 
      7     private String userCode; //用户编码
      8     private String userName; //用户名称
      9     private String userPassword; //用户密码
     10     private Integer gender;  //性别
     11     private Date birthday;  //出生日期
     12     private String phone;   //电话
     13     private String address; //地址
     14     private Integer userRole;    //用户角色
     15     private Integer createdBy;   //创建者
     16     private Date creationDate; //创建时间
     17     private Integer modifyBy;     //更新者
     18     private Date modifyDate;   //更新时间
     19     private Role role;//用户角色
     20     
     21     
     22     public Role getRole() {
     23         return role;
     24     }
     25     public void setRole(Role role) {
     26         this.role = role;
     27     }
     28     public Integer getId() {
     29         return id;
     30     }
     31     public void setId(Integer id) {
     32         this.id = id;
     33     }
     34     public String getUserCode() {
     35         return userCode;
     36     }
     37     public void setUserCode(String userCode) {
     38         this.userCode = userCode;
     39     }
     40     public String getUserName() {
     41         return userName;
     42     }
     43     public void setUserName(String userName) {
     44         this.userName = userName;
     45     }
     46     public String getUserPassword() {
     47         return userPassword;
     48     }
     49     public void setUserPassword(String userPassword) {
     50         this.userPassword = userPassword;
     51     }
     52     public Integer getGender() {
     53         return gender;
     54     }
     55     public void setGender(Integer gender) {
     56         this.gender = gender;
     57     }
     58     public Date getBirthday() {
     59         return birthday;
     60     }
     61     public void setBirthday(Date birthday) {
     62         this.birthday = birthday;
     63     }
     64     public String getPhone() {
     65         return phone;
     66     }
     67     public void setPhone(String phone) {
     68         this.phone = phone;
     69     }
     70     public String getAddress() {
     71         return address;
     72     }
     73     public void setAddress(String address) {
     74         this.address = address;
     75     }
     76     public Integer getUserRole() {
     77         return userRole;
     78     }
     79     public void setUserRole(Integer userRole) {
     80         this.userRole = userRole;
     81     }
     82     public Integer getCreatedBy() {
     83         return createdBy;
     84     }
     85     public void setCreatedBy(Integer createdBy) {
     86         this.createdBy = createdBy;
     87     }
     88     public Date getCreationDate() {
     89         return creationDate;
     90     }
     91     public void setCreationDate(Date creationDate) {
     92         this.creationDate = creationDate;
     93     }
     94     public Integer getModifyBy() {
     95         return modifyBy;
     96     }
     97     public void setModifyBy(Integer modifyBy) {
     98         this.modifyBy = modifyBy;
     99     }
    100     public Date getModifyDate() {
    101         return modifyDate;
    102     }
    103     public void setModifyDate(Date modifyDate) {
    104         this.modifyDate = modifyDate;
    105     }
    106 }
    View Code
     1     @Test
     2     public void testGetUserListByRoleId(){
     3         SqlSession sqlSession = null;
     4         List<User> userList = new ArrayList<User>();
     5         try {
     6             sqlSession = MyBatisUtil.createSqlSession();
     7             
     8         
     9             userList = sqlSession.getMapper(UserMapper.class).getUserListByRoleID(2);
    10             
    11         } catch (Exception e) {
    12             // TODO: handle exception
    13             e.printStackTrace();
    14         }finally{
    15             MyBatisUtil.closeSqlSession(sqlSession);
    16         }
    17         for(User user: userList){
    18             logger.debug("testGetUserListByRoleId roleid: " + user.getUserCode() + " and userName: " + user.getUserName()+"and userRoleName:"+user.getRole().getRoleName());
    19         }
    20     }

     

  • 相关阅读:
    javascript模拟jQuery封装委托事件,兼容IE
    javascript事件有哪些?javascript的监听事件
    javascript阻止事件冒泡的兼容写法及其相关示例
    Spring的特点
    异常以及为什么要学异常
    Windows下干活儿辅助软件
    Oracle EBS SLA 详解
    EBS获取并发程序Trace File
    EBS Custom Password Rules
    Oracle PLSQL读取(解析)Excel文档
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/12005853.html
Copyright © 2011-2022 走看看