mybatis 多对多
来源:互联网 发布:外文电子期刊数据库 编辑:程序博客网 时间:2024/04/30 18:40
mybatis 的多对多级联查询
本例有user_info、group_info和user_group_info三个表
user_info
group_info
user_group_info
外键
userinfo.xml
<mapper namespace="com.ldu.mapper.UserInfoMapper"> <resultMap type="UserInfo" id="userMap"> <id property="userId" column="user_id"></id> <result property="userName" column="user_name"></result> <result property="userSex" column="user_sex"></result> <collection property="groups" ofType="GroupInfo" column="user_id" fetchType="lazy" select="com.ldu.mapper.GroupInfoMapper.selectGroupByUserId" /> </resultMap> <select id="selectUsers" parameterType="int" resultMap="userMap"> select * from user_info where user_id=#{userId} </select> <select id="selectUserByGroupId" parameterType="int" resultMap="userMap"> select u.* from user_info u,user_group_info ug where u.user_id=ug.uid and ug.gid=#{groupId} </select></mapper>
UserInfoMapper.java
public interface UserInfoMapper { public UserInfo selectUsers(int userId); public List<UserInfo> selectUserByGroupId(int groupId);}
groupinfo.xml
<mapper namespace="com.ldu.mapper.GroupInfoMapper"> <resultMap type="GroupInfo" id="groupMap"> <id property="groupId" column="group_id"></id> <result property="groupName" column="group_name"></result> <collection property="users" ofType="UserInfo" column="group_id" fetchType="lazy" select="com.ldu.mapper.UserInfoMapper.selectUserByGroupId"/> </resultMap> <select id="selectGroups" parameterType="int" resultMap="groupMap"> select * from group_info where group_id=#{GroupId} </select> <select id="selectGroupByUserId" parameterType="int" resultMap="groupMap"> select g.* from group_info g,user_group_info ug where g.group_id=ug.gid and ug.uid=#{userId} </select></mapper>
GroupInfoMapper
public interface GroupInfoMapper { public GroupInfo selectGroups(int groupId); public List<GroupInfo> selectGroupByUserId(int UserId);}
测试
@Test public void getUser(){ UserInfo user=userMapper.selectUsers(1); System.out.println(user); System.out.println(user.getGroups().size()); for(GroupInfo ginfo:user.getGroups()){ System.out.println(ginfo); } } @Test public void getGroup(){ GroupInfo group=groupMapper.selectGroups(1); System.out.println(group); System.out.println(group.getUsers().size()); for(UserInfo uinfo:group.getUsers()){ System.out.println(uinfo); } }
阅读全文
0 0
- mybatis 多对多
- Mybatis 多对多
- Mybatis多对多
- mybatis 多对多
- Mybatis多对一
- myBatis多对一
- mybatis多对一单表
- 【Mybatis学习】Mybatis级联之一对多
- Mybatis多对多处理
- mybatis 多对多 处理
- mybatis 多对多 处理
- mybatis多对多处理
- mybatis 多对多 处理
- mybatis多对多处理
- mybatis多对多查询
- mybatis 多对多 处理
- mybatis多对多关联
- myBatis 多对多例子
- cpu运行时程序是在flash中还是在RAM,各自的区别?
- NYOJ矩形嵌套
- 3218: a + b Problem
- spring框架读属性文件(.properties结尾的文件)
- BZOJ[1015]洛谷[1197]星球大战 并查集
- mybatis 多对多
- JSONP跨域访问
- java每日一练
- hdu1428 BFS+记忆化搜素
- oracle 学习笔记
- 欧拉函数模版
- 【集训Day3 单调队列】最大子序列和
- 百度开发工程师的面试题(导航部门)
- 面试精选:链表问题集锦