接口及接口配置文件:
package com.yyf.dao;
import com.yyf.pojo.Teacher;
import org.apache.ibatis.annotations.Param;
public interface TeacherMapper {
Teacher getTeacher(@Param ("tid") int id);
}
接口配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yyf.dao.TeacherMapper">
<select id="getTeacher" resultMap="teacherStudent">
select s.id sid,s.name sname,t.name tname,t.id tid
from student s,teacher t
where s.tid=t.id and t.id=#{tid}
</select>
<resultMap id="teacherStudent" type="Teacher">
<result property="id" column="tid"/>
<result property="name" column="tname"/>
<collection property="students" ofType="Student">
<result property="id" column="sid"/>
<result property="name" column="sname"/>
<result property="tid" column="tid"/>
</collection>
</resultMap>
</mapper>
实体类,在教师类里包含一个学生对象集合来实现一对多
package com.yyf.pojo;
import lombok.Data;
import java.util.List;
@Data
public class Teacher {
private Integer id;
private String name;
// 一个老师拥有多个学生
private List<Student> students;
}
测试类:
public class Test {
@org.junit.Test
public void getTest(){
SqlSession sqlSession = mybatisUtils.getSqlSession ();
TeacherMapper mapper = sqlSession.getMapper (TeacherMapper.class);
Teacher teacher = mapper.getTeacher (1);
System.out.println (teacher);
sqlSession.close ();
}