1.建表
CREATE TABLE `teacher` (
`id` int(10) DEFAULT NULL,
`name` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `student` (
`id` int(10) NOT NULL,
`name` varchar(30) DEFAULT NULL,
`tid` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.entity
@Data
public class Student {
private int sid;
private String sname;
}
@Data
public class Teacher {
private int id;
private String name;
//一个老师拥有多个学生
private List<Student> students;
}
3.mapper
@Mapper
public interface TeacherMapper {
Teacher getTeacher();
}
4.mapper的xml文件
<?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.byd.car.center.provider.dao.TeacherMapper">
<resultMap type="com.byd.car.center.provider.utils.Teacher" id="StudentMap2">
<id column="id" property="id" />
<result column="name" property="name" />
<collection property="students" javaType="java.util.ArrayList" ofType="com.byd.car.center.provider.utils.Student">
<id column="sid" property="sid" />
<result column="sname" property="sname" />
</collection>
</resultMap>
<select id="getTeacher" resultMap="StudentMap2">
select
t.id as id,
t.name as name,
s.id as sid,
s.name as sname
from
teacher t
left join student s on
t.id = s.tid
where
t.id = 1;
</select>
</mapper>
写controller调用
@Autowired
private TeacherMapper teacherMapper;
@RequestMapping(value = "getTeacher", method = RequestMethod.GET)
public ResponseResult getTeacher() {
Teacher teacher = teacherMapper.getTeacher();
return ResponseBuilder.success(teacher);
}