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
- 2014年2月27日 mybatis 的 association 和 collection 的用法小结
- MyBatis的collection和association
- mybatis collection和association的简单使用
- mybatis中association 和collection 的区别
- myBatis association和collection用法实例
- MyBatis中<resultMap>的<association>和<collection>标签的使用
- mybatis 一对一与一对多collection和association的使用
- mybatis中association和collection的column传入多个参数值
- mybatis collection和association 传多个参数
- Mybatis Association Collection
- mybatis association的使用
- mybatis 中collection 的用法
- mybatis的mapper.xml文件resultMap的关联association用法
- mybatis不执行子查询collection和association
- Mybatis高级应用-嵌套查询association和collection
- mybatis级联问题(association、collection和discriminator)
- 再谈Mybatis之Association Collection
- 解决 Mybatis 元素类型为 "resultMap" 的内容必须匹配 "(constructor?,id*,result*,association*,collection*,discriminat
- 银行业务调度系统-java并发程序模拟解决方案
- Core Data浅谈系列之一 : 基础结构
- makefile的语法及写法(一)
- 使用git 新建分支以及管理分支
- 回车直接实现点击某按钮的效果
- 2014年2月27日 mybatis 的 association 和 collection 的用法小结
- HTML5的head标签介绍
- error C2598: linkage specification must be at global scope 一个意外
- makefile的语法及写法(二)
- 在servlet 中返回web-inf下的页面
- Android.mk文件语法规范 原文
- mysql更新语句执行的时候,如果没有数据不会报错
- N皇后问题 c++
- 2.2.3 Tasks and Back Stack