Mybatis关联查询之二
2024-09-02 06:53:50
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());
}
}
}
最新文章
- MySQL常用语句
- 上传按钮样式优化 <;input type=";file"; />;
- OSGi 的核心配置、动态化及问题
- 低级错误之Oracle客户端添加数据
- 05_天气查询_JAX-WS方式_客户端
- block没那么难(二):block和变量的内存管理
- JavaScript 回车 焦点切换(摘抄)
- Windows系统的线程调度与软件中断分发
- 在navigationItem中添加搜索栏
- jmeter里json path postprocessor的用法
- PHP:class const
- Hadoop权威指南:数据完整性
- redhat Redis的安装和部署
- AndroidStudio中各种常见快捷键记录
- selenium基础实例学习
- 快速学习 javascript
- [学习笔记]Javascript采用二进制浮点数和四舍五入的错误
- lua的文件管理
- snmp简单识记
- Anaconda3+python3环境下如何创建python2环境(win+Linux下适用,同一个anaconda下py2/3共存)