MyBatis多对多关联映射
云淡风轻58 人气:0示例
【通过班级查询老师信息】
创建t_classes
创建t_classessTeacher
创建t_teacher
创建Classes
package com.po; import java.util.List; public class Classes { private Integer cid; private String cname; private List<Teacher> teachers; public Integer getCid() { return cid; } public void setCid(Integer cid) { this.cid = cid; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } public List<Teacher> getTeachers() { return teachers; } public void setTeachers(List<Teacher> teachers) { this.teachers = teachers; } @Override public String toString() { return "Classes [cid=" + cid + ", cname=" + cname + ", teachers=" + teachers + "]"; } }
创建Teacher
package com.po; import java.util.List; public class Teacher { private Integer tid; private String tname; private List<Classes> classes; 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<Classes> getClasses() { return classes; } public void setClasses(List<Classes> classes) { this.classes = classes; } @Override public String toString() { return "Teacher [tid=" + tid + ", tname=" + tname + "]"; } }
创建ClassesMapper.xml
<?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="com.mapper.ClassesMapper"> <!-- 自定义结果映射 --> <resultMap type="com.po.Classes" id="ClassesWithTeacherResult"> <id property="cid" column="cid"/> <result property="cname" column="cname"/> <!-- 多表关联映射 --> <collection property="teachers" ofType="com.po.Teacher"> <id property="tid" column="tid"/> <result property="tname" column="tname"/> </collection> </resultMap> <select id="findClassesWithTeacher" parameterType="Integer" resultMap="ClassesWithTeacherResult"> select * from t_classes c,t_teacher t,t_classessTeacher ct where ct.cid=c.cid and ct.tid=t.tid and c.cid=#{cid} </select> </mapper>
配置mybatis-config.xml
<!-- 配置Mapper的位置 --> <mappers> <mapper resource="com/mapper/ClassesMapper.xml"/> </mappers>
创建ClassesDao
package com.dao; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import com.factory.SessionFactory; import com.po.Classes; public class ClassesDao { private SqlSession session=SessionFactory.getSqlSession(); @Test public void findClassesWithTeacher() { Classes classess=session.selectOne("com.mapper.ClassesMapper.findClassesWithTeacher", 1); System.out.println(classess); } }
执行 findClassesWithTeacher()方法
加载全部内容