1. 关联和集合:
public class Emp{
private Integer id;
private String name;
private Dept dept; //关联
private List<Task> tasks; //Task类表示工作类
}
2. 关联映射
-
作用:关联映射解决的就是将查询出的数据映射到关联对象中
-
分类:
-
关联嵌套select查询
-
在本地创建staff表(id,name,dept_id),dept表(id,name,location)
-
在本项目的entity包下创建对应的实体类,注意Staff类中出现Dept dept属性
@Data public class Staff { private Integer id; private String name; private Dept dept; } @Data public class Dept { private Integer id; private String name; private String location; }
-
在mapper包下创建StaffMapper接口,定义抽象方法
selectStaffDeptList
public interface StaffMapper { /** * 查询所有员工信息,包括员工所属部分的详细信息 * @return */ List<Staff> selectStaffDeptList(); }
-
添加StaffMapper.xml文件,在文件中修改namespace的值
- 定义resultMap,使用关联嵌套select查询
- 定义查询staff的sql语句,查询dept的sql语句
-
<!--思路1:先将员工的所有信息查询,然后再根据部门id去查询部门的信息,将查询出的部门信息封装到Dept对象中 特点:对数据库进行了多次查询 可以使用mybatis关联映射中的 嵌套select查询来实现 --> <resultMap id="staffMap" type="cn.tedu.sysmanagement.entity.mybatistest.Staff"> <id property=
-