查询一个班级拥有的学生,一对多查询
- 班级中包含多个学生,List 保存学生信息。
@Data
public class ClassRoom {
private Integer id;
private String name;
private List<Student> stus;
}
@Data
public class Student {
private Integer id;
private String name;
}
2.mapper接口方法
public List<Object> selectOneMany(Integer id);
3.sql映射文件,标签表示关联的是一个对象的集合,中的property名字要和Entity中的集合对象名一致
<?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.example.mybatis.mybatis2.dao.OnemanyMapper">
<resultMap id="selectRoomAndStu" type="com.example.mybatis.mybatis2.bean.ClassRoom">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="cname" jdbcType="VARCHAR" property="name" />
<collection property="stus" ofType="com.example.mybatis.mybatis2.bean.Student">
<id column="sid" jdbcType="INTEGER" property="id"/>
<result column="sname" jdbcType="VARCHAR" property="name"/>
</collection>
</resultMap>
<!--//一对多查询-->
<select id="selectOneMany" resultMap="selectRoomAndStu">
select c.id , c.classname cname, s.id sid , s.name sname
from classroom c , student s
where c.id=s.cid and c.id=#{id};
</select>
</mapper>