2014年2月27日 mybatis 的 association 和 collection 的用法小结

来源:互联网 发布:excel数据库管理功能 编辑:程序博客网 时间:2024/05/17 00:58

          association   has one   常用于一对一关系或者多对一关系     

          collection       has  many  用于一对多关系

          如下   角色和 用户两个实体    一个用户对应一个角色(根据系统的不同而言,也有一对多的),一个角色可以有多个用户,如下

用户实体

package com.bdr.irts.pojo.domain.user;import com.bdr.irts.pojo.domain.BaseDomain;public class UserDomain extends BaseDomain{    // 锁定状态 即锁屏时候的状态    public static final int LOCKSTATE = 6;    // 活跃状态    public static final int ISACTIVE = 5;    // 已经退出 不在登录状态    public static final int ISOUT = 4;    // 自动退出,不可刷新状态    public static final int ISAUTOOUT = 7;        // status    // 启用    public static final int USEENABLED = 1;    // 禁用    public static final int USEDISABLED = 0;    // 锁定    public static final int LOCK = 2;    private String accountNumber;    private String password;    private Integer roleId;    private String roleName;    private Integer gender;    private String tel;    private String position;    private Integer status = 0;    private Long createTime;    private String userName;    private String memo;    private Integer loginStatus;    private String clientIp;    private Integer isShortCut;    private int loginNum;    private int errorCount;        private RoleDomain roleDomain;        // public String toString()    // {    // StringBuffer sb = new StringBuffer();    // sb.append("{");    // sb.append(getId());    // sb.append(",").append(getAccountNumber());    // sb.append(",").append(getUserName());    // sb.append("}");    // return sb.toString();    // }        public RoleDomain getRoleDomain()    {        return this.roleDomain;    }        public void setRoleDomain(RoleDomain roleDomain)    {        this.roleDomain = roleDomain;    }        /**     * @return the errorCount     */    public int getErrorCount()    {        return this.errorCount;    }        /**     * @param errorCount     *            the errorCount to set     */    public void setErrorCount(int errorCount)    {        this.errorCount = errorCount;    }        /**     * @return the loginNum     */    public int getLoginNum()    {        return this.loginNum;    }        /**     * @param loginNum     *            the loginNum to set     */    public void setLoginNum(int loginNum)    {        this.loginNum = loginNum;    }        /**     * @return the isShortCut     */    public Integer getIsShortCut()    {        return this.isShortCut;    }        /**     * @param isShortCut     *            the isShortCut to set     */    public void setIsShortCut(Integer isShortCut)    {        this.isShortCut = isShortCut;    }        public String getClientIp()    {        return clientIp;    }        public void setClientIp(String clientIp)    {        this.clientIp = clientIp;    }        public Integer getLoginStatus()    {        return loginStatus;    }        public void setLoginStatus(Integer loginStatus)    {        this.loginStatus = loginStatus;    }        public String getUserName()    {        return userName;    }        public void setUserName(String userName)    {        this.userName = userName;    }        public String getAccountNumber()    {        return accountNumber;    }        public void setAccountNumber(String accountNumber)    {        this.accountNumber = accountNumber;    }        public String getPassword()    {        return password;    }        public void setPassword(String password)    {        this.password = password;    }        public Integer getRoleId()    {        return roleId;    }        public void setRoleId(Integer roleId)    {        this.roleId = roleId;    }        public Integer getGender()    {        return gender;    }        public void setGender(Integer gender)    {        this.gender = gender;    }        public String getTel()    {        return tel;    }        public void setTel(String tel)    {        this.tel = tel;    }        public String getPosition()    {        return position;    }        public void setPosition(String position)    {        this.position = position;    }        public Integer getStatus()    {        return status;    }        public void setStatus(Integer status)    {        this.status = status;    }        public Long getCreateTime()    {        return createTime;    }        public void setCreateTime(Long createTime)    {        this.createTime = createTime;    }        public String getRoleName()    {        return roleName;    }        public void setRoleName(String roleName)    {        this.roleName = roleName;    }        public String getMemo()    {        return memo;    }        public void setMemo(String memo)    {        this.memo = memo;    }}
角色实体
package com.bdr.irts.pojo.domain.user;import java.util.List;import com.bdr.irts.pojo.domain.BaseDomain;public class RoleDomain extends BaseDomain{    private static final long serialVersionUID = 1L;    private String name;    private Integer state;    private String note;        private List<UserDomain> users;        public List<UserDomain> getUsers()    {        return this.users;    }        public void setUsers(List<UserDomain> users)    {        this.users = users;    }        public RoleDomain()    {        super();    }        public String getName()    {        return name;    }        public void setName(String name)    {        this.name = name;    }        public Integer getState()    {        return state;    }        public void setState(Integer state)    {        this.state = state;    }        public String getNote()    {        return note;    }        public void setNote(String note)    {        this.note = note;    }    }
用户映射文件
<resultMap type="com.bdr.irts.pojo.domain.user.UserDomain"id="resultUser"><id property="id" column="id" /><result property="accountNumber" column="account_number" /><result property="password" column="password" /><result property="roleId" column="role_id" /><result property="gender" column="gender" /><result property="tel" column="tel" /><result property="position" column="position" /><result property="loginStatus" column="login_status" /><result property="status" column="status" /><result property="createTime" column="create_time" /><result property="userName" column="user_name" /><result property="memo" column="memo" /><result property="isShortCut" column="short_cut" /><result property="loginNum" column="login_num" /></resultMap><resultMap type="com.bdr.irts.pojo.domain.user.UserDomain"id="page"><association property="roleDomain" column="role_id"javaType="com.bdr.irts.pojo.domain.user.RoleDomain" select="com.bdr.irts.model.dao.user.RoleDao.get"></association></resultMap><select id="getUserAndRole" parameterType="int" resultMap="page">select * from t_user u inner join t_role r on u.role_id = r.id whereu.id = #{id}</select>
角色映射文件
<resultMap type="com.bdr.irts.pojo.domain.user.RoleDomain"id="resultRole"><id property="id" column="id" /><result property="name" column="name" /><result property="state" column="state" /><result property="note" column="note" /></resultMap><resultMap type="com.bdr.irts.pojo.domain.user.RoleDomain"id="page" extends="resultRole"><collection property="users" column="id" javaType="ArrayList"select="com.bdr.irts.model.dao.user.UserDao.getUsersByRoleId"></collection></resultMap><select id="getRoleAndUsers" resultMap="page" parameterType="int">select * from t_role r wherer.id = #{id}</select>

/** *  */package com.bdr.irts.test;import static org.junit.Assert.*;import java.util.List;import junit.framework.TestCase;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;import com.bdr.irts.model.dao.user.RoleDao;import com.bdr.irts.model.dao.user.UserDao;import com.bdr.irts.pojo.domain.user.RoleDomain;import com.bdr.irts.pojo.domain.user.UserDomain;/** * @author Administrator * */public class MybatiesTest extends TestCase{    private UserDao userDao;        private RoleDao roleDao;        /*     * (non-Javadoc)     * @see junit.framework.TestCase#setUp()     */    @Override    protected void setUp() throws Exception    {        // TODO Auto-generated method stub        super.setUp();        ApplicationContext context = new FileSystemXmlApplicationContext("classpath:irts.xml");        userDao = (UserDao) context.getBean("userDao");        roleDao = (RoleDao) context.getBean("roleDao");    }        /**     * has many     */    @Test    public void testCollection()    {        RoleDomain role = roleDao.getRoleAndUsers(1115);        System.out.println(role.getName());        System.out.println(role.getUsers());        for (UserDomain user : role.getUsers())        {            System.out.println(user.getUserName());        }    }        /**     * has one      */    // public void testAssociation()    // {    // UserDomain user = userDao.getUserAndRole(1082);    // System.out.println(user.getRoleDomain().getName());    // }}


0 0
原创粉丝点击