Mybatis框架-21:多表操作之多对多——分步查询
2019-06-09 11:23
399 查看
需求,使用分布查询,查询出指定老师信息,并把指定老师包含哪些学生也查出来
第一步:mapper接口
教师mapper
[code]/** * 根据教师id查询指定的教师 * @param teacherId * @return */ Teacher getTeacherWithId(Integer teacherId);
学生mapper
[code]/** * 根据教师的id,查询教师下的所有学生 * @param teacherId * @return */ List<Student> getStudentByTeacherId(Integer teacherId);
第二步:mapper.xml中SQL语句
teacher的sql:这里是使用resoultMap进行的分布查询
[code]<resultMap id="getTeacherWithIdMapper" type="com.ctbu.domain.Teacher"> <id property="teacherId" column="teacherId"/> <result property="teacherName" column="teacherName"/> <collection property="students" ofType="Student" select="com.ctbu.mapper.StudentMapper.getStudentByTeacherId" column="teacherId"/> </resultMap> <select id="getTeacherWithId" resultMap="getTeacherWithIdMapper"> select * from `teacher` where teacherId = #{teacherId}; </select>
student的sql:这里使用了范围查询,先传入teacher的id,根据teacherId查询出对应的学生id,再根据学生id查询出具体的学生信息
[code]<select id="getStudentByTeacherId" resultType="com.ctbu.domain.Student"> select * from `student` where studentId in (select studentId from `teacher_student` where teacherId=#{teacherId}); </select>
第三步:测试类
[code]@Test public void test2(){ SqlSession session = MyUtils.openSession(); TeacherMapper teacherMapper = session.getMapper(TeacherMapper.class); Teacher teacher = teacherMapper.getTeacherWithId(1); System.out.println(teacher); session.close(); }
相关文章推荐
- SSM框架day02-MyBatis——027——对单表的CURD操作-根据id查询
- 使用Spring Boot+MyBatis框架做查询操作的示例代码
- 使用Spring Boot+MyBatis框架做查询操作
- SSM框架day02-MyBatis——025——对单表的CURD操作-查询所有
- 21、SSM框架-Mybatis多参数查询与列表查询不同方式实现(3)
- 【MyBatis框架】查询缓存-二级缓存-整合ehcache
- springmvc+mybatis框架下,写通用的操作,删除等的操作
- mybatis 的批量操作,查询、更新、插入
- MyBatis框架基于Annotation注解的数据库增删改查操作
- 基于SSH整合框架的查询操作
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式'](转)
- 【MyBatis框架】查询缓存-二级缓存-整合ehcache
- mybatis实战之路,疯狂的数据库操作框架、动态sql的mybats之快速搭建基本环境
- JAVA之Mybatis基础入门--框架搭建与简单查询
- MyBatis框架进行多表操作(两表)
- Yii 框架里数据库操作详解-增加、查询、更新、删除的方法
- 重拾Hibernate框架——查询操作
- play framework框架下,连接到MongoDB时的特殊操作(与或查询,模糊查询,范围查询,数据排序等)
- mybatis 更新查询操作 6了我的哥
- 【MyBatis框架】高级映射-一对一查询