Mybatis 多对多

来源:互联网 发布:建设银行软件外包 编辑:程序博客网 时间:2024/04/30 19:52

学生实体类

public class Student {    private Integer sid;    private String sname;    public Integer getSid() {        return sid;    }    public void setSid(Integer sid) {        this.sid = sid;    }    public String getSname() {        return sname;    }    public void setSname(String sname) {        this.sname = sname;    }}
老师实体类
public class Teacher {    private  Integer tid;    private String tname;
//植入学生集合    private List<Student> students=new ArrayList<Student>();    public List<Student> getStudents() {        return students;    }    public void setStudents(List<Student> students) {        this.students = 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;    }}
DAO:
public interface ITeacherDAO {    //根据老师编号获取所有学生    public Teacher getstudentbyteacherid(int tid);}
配置文件
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.bdqn.dao.ITeacherDAO">  <resultMap id="teachermap" type="Teacher">      <id column="tid" property="tid"></id>      <result column="tname" property="tname"></result>      <collection property="students" ofType="Student" >          <id column="sid" property="sid"></id>          <result column="sname" property="sname"></result>      </collection>  </resultMap><select id="getstudentbyteacherid" resultMap="teachermap">    SELECT student.sid,sname,teacher.tid,tname        FROM student,teacher_student,teacher        WHERE student.sid=teacher_student.sid        AND teacher.tid=teacher_student.tid        AND teacher.tid=#{tid}</select></mapper>

单侧:
@Test  public void testteacherbyid(){    Teacher teacher = util.getsql().getMapper(ITeacherDAO.class).getstudentbyteacherid(1);    System.out.println(teacher.getTname());    for (Student stu:teacher.getStudents()) {        System.out.println(stu.getSname());    }}