Mybatis关联查询之多对多

多对多

一、entity实体类

public class Student {
private Integer stuid;
private String stuname;
private String stuaddress; //植入一个Teacher集合,代表一名学员可以被多名教员教课
private List<Teacher> teachers; public Integer getStuid() {
return stuid;
} public void setStuid(Integer stuid) {
this.stuid = stuid;
} public String getStuname() {
return stuname;
} public void setStuname(String stuname) {
this.stuname = stuname;
} public String getStuaddress() {
return stuaddress;
} public void setStuaddress(String stuaddress) {
this.stuaddress = stuaddress;
} public List<Teacher> getTeachers() {
return teachers;
} public void setTeachers(List<Teacher> teachers) {
this.teachers = teachers;
}
}
public class Teacher {
private Integer tid;
private String tname; //植入学员集合,代表一名教员授课多名学生
private List<Student> students; public Integer getTid() {
return tid;
} public void setTid(Integer tid) {
this.tid = tid;
} public String getTname() {
return tname;
} public void setTname(String tname) {
this.tname = tname;
} public List<Student> getStudents() {
return students;
} public void setStudents(List<Student> students) {
this.students = students;
}
}

二、dao层

//多对多  查询所有学生信息 以及授课老师
public List<Student> getStudentInfo();

三、dao.xml小配置

<!--多对多-->
<resultMap id="studentAndTeacher" type="com.marketsys.entity.Student">
<id column="stuid" property="stuid"/>
<collection property="teachers" ofType="com.marketsys.entity.Teacher">
<id column="tid" property="tid"/>
</collection>
</resultMap>
<select id="getStudentInfo" resultMap="studentAndTeacher">
select * from student,teacher,stu_t where student.stuid=stu_t.stuid and teacher.tid=stu_t.tid
</select>

四、test测试类


SqlSession sqlSession= MybatisUtil.getSqlSession();
URoleTestDao mapper=sqlSession.getMapper(URoleTestDao.class);
//多对多
@Test
public void test3(){
List<Student> studentInfo = mapper.getStudentInfo();
for (Student stu:studentInfo) {
System.out.println("学生:"+stu.getStuname());
for (Teacher teacher:stu.getTeachers()) {
System.out.print("\t教员:"+teacher.getTname());
}
}
}

Mybatis关联查询之二的更多相关文章

  1. Mybatis 关联查询(二

    一对多的管理查询结果映射   1.进行一对多的查询时候,要在主查询表对应的Po中加入关联查询表对应PO的类的list集合作为属性. public class Orders { private Inte ...

  2. MyBatis基础:MyBatis关联查询(4)

    1. MyBatis关联查询简介 MyBatis中级联分为3中:association.collection及discriminator. ◊ association:一对一关联 ◊ collecti ...

  3. MyBatis关联查询、多条件查询

    MyBatis关联查询.多条件查询 1.一对一查询 任务需求; 根据班级的信息查询出教师的相关信息 1.数据库表的设计 班级表: 教师表: 2.实体类的设计 班级表: public class Cla ...

  4. mybatis关联查询基础----高级映射

    本文链接地址:mybatis关联查询基础----高级映射(一对一,一对多,多对多) 前言: 今日在工作中遇到了一个一对多分页查询的问题,主表一条记录对应关联表四条记录,关联分页查询后每页只显示三条记录 ...

  5. Mybatis关联查询和数据库不一致问题分析与解决

    Mybatis关联查询和数据库不一致问题分析与解决 本文的前提是,确定sql语句没有问题,确定在数据库中使用sql和项目中结果不一致. 在使用SpringMVC+Mybatis做多表关联时候,发现也不 ...

  6. MyBatis关联查询,一对多关联查询

    实体关系图,一个国家对应多个城市 一对多关联查询可用三种方式实现: 单步查询,利用collection标签为级联属性赋值: 分步查询: 利用association标签进行分步查询: 利用collect ...

  7. mybatis 关联查询实现一对多

    场景:最近接到一个项目是查询管理人集合  同时每一个管理人还存在多个出资人   要查询一个管理人列表  每个管理人又包含了出资人列表 采用mybatis关联查询实现返回数据. 实现方式: 1 .在实体 ...

  8. MyBatis关联查询和懒加载错误

    MyBatis关联查询和懒加载错误 今天在写项目时遇到了个BUG.先说一下背景,前端请求更新生产订单状态,后端从前端接收到生产订单ID进行查询,然后就有问题了. 先看控制台报错: org.apache ...

  9. MyBatis关联查询 (association) 时遇到的某些问题/mybatis映射

    先说下问题产生的背景: 最近在做一个用到MyBatis的项目,其中有个业务涉及到关联查询,我是将两个查询分开来写的,即嵌套查询,个人感觉这样更方便重用: 关联的查询使用到了动态sql,在执行查询时就出 ...

随机推荐

  1. docker下MySQL的主从复制

    MySql的主从复制 sudo docker pull MySQL:5.7 拉取MySQL的镜像文件(版本号为 5.7) sudo docker run -p 3339:3306 --name mas ...

  2. 12.2新特性 使用DBCA duplicate创建物理备用数据库 (Doc ID 2283697.1)

    Creating a Physical Standby database using DBCA duplicate (Doc ID 2283697.1) APPLIES TO: Oracle Data ...

  3. MySQL数据库:多表连接查询

    多表连接查询 注意:使用连接技术建议将表经行重命名! # explain 检索连接是否达标 # 内连接 # 语法1 from 表1 inner join 表2 on 主键字段=外键字段 [where ...

  4. [洛谷P1144][题解]最短路计数

    这道题可以用各种算法踩掉,我选择的是SPFA. 因为题目要求计数,所以我们开一个ans数组表示数量. 分两种情况讨论: 一:dis_v>dis_u+1 最短路被更新了,可以直接ans_v=ans ...

  5. 工作笔记 之 Python应用技术

    python socket编程详细介绍 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket,建立网络通信连接至少要一对端口号(socket). Socket本质是 ...

  6. PAT 1003 Emergency 最短路

    As an emergency rescue team leader of a city, you are given a special map of your country. The map s ...

  7. 使用策略模式重构switch case 代码

    目录 1.背景 2.案例 3.switch…case…方式实现 4.switch…case…带来的问题 5.使用策略模式重构switch…case…代码 6.总结 1.背景 之前在看<重构    ...

  8. Android ndk 加载简单的gif 图像

    首先获取一个安卓权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"> ...

  9. springboot项目创建,及运行

    1. File --> new --> spring Initializr(选择jdk,和默认的url)-->next-->通过dubbo调用的服务可以直接下一步,也可以选择w ...

  10. python列表转换为字符串

    对于非纯字符串组成的列表,需要使用map(str, 列表)转换,纯字符串组成的列表则不需要转换 list1 = [1, 2, 3, 4, 5]c = ','.join(map(str,list1))p ...