编写网站 语言,python游戏开发,wordpress金融网站模板,wordpress基本主题MyBatis关联查询#xff08;三、多对多查询#xff09;
需求#xff1a;查询角色及角色赋予的用户信息。
分析#xff1a;一个用户可以拥有多个角色#xff0c;一个角色也可以赋予多个用户#xff0c;用户和角色为双向的一对多关系#xff0c;多对多关系其实我们看成是…MyBatis关联查询三、多对多查询
需求查询角色及角色赋予的用户信息。
分析一个用户可以拥有多个角色一个角色也可以赋予多个用户用户和角色为双向的一对多关系多对多关系其实我们看成是双向的一对多关系。 user(uid, username)王贺、万通
user_role(uid, rid)
role(rid, )校长、老师、学生
基础项目搭建参考第一个mybatis项目的创建和读取数据库信息MyBatis关联查询一、一对一查询一对多查询
在上面项目的基础上先编写role表的pojo文件
public class Role {private Integer id;private String roleName;private String roleDesc;//多方private ListUser userList;public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getRoleName() {return roleName;}public void setRoleName(String roleName) {this.roleName roleName;}public String getRoleDesc() {return roleDesc;}public void setRoleDesc(String roleDesc) {this.roleDesc roleDesc;}public ListUser getUserList() {return userList;}public void setUserList(ListUser userList) {this.userList userList;}Overridepublic String toString() {return Role{ id id , roleName roleName \ , roleDesc roleDesc \ , userList userList };}
}编写RoleMapper.java代码
public interface RoleMapper {Role getRoleById(Integer id);
}在RoleMapper.xml中编写下列代码
resultMap idgetRoleByIdResultMap typecn.fpl1116.pojo.Roleid columnrid propertyid/idresult columnrole_name propertyroleName/resultresult columnrole_desc propertyroleDesc/result!--一对多使用collection标签指定数据的封装规则propertyuserListpojo的属性ofTypecom.by.pojo.User集合的泛型等价于resultType--collection propertyuserList ofTypecn.fpl1116.pojo.Userid columnid propertyid/idresult columnusername propertyusername/resultresult columnaddress propertyaddress/resultresult columnsex propertysex/resultresult columnbirthday propertybirthday/result/collection/resultMapselect idgetRoleById parameterTypeint resultMapgetRoleByIdResultMapSELECTr.id as rid,r.role_name,r.role_desc,u.*FROMuser_role urJOIN role r ON ur.ridr.idJOIN user u ON ur.uidu.idWHEREr.id#{id}/select编写测试类 Testpublic void testGetRoleById(){RoleMapper roleMapper sqlSession.getMapper(RoleMapper.class);Role role roleMapper.getRoleById(1);System.out.println(role);}运行结果如下