一.MyBatis 延迟加载
MyBatis 延迟加载,是指在进行表的关联查询时,按照设置延迟规则推迟对关联对象的select查询。 如在查询 User 的信息时,如果没有用到Dept或者不想查询Dept,就不查询Dept 的信息,哪怕关联了Dept。
为了详细一些,老蝴蝶把以前的表信息拿出来。
User表:
Dept表:
IdCard 表:
对应的实体 类.
User.java
package com.yjl.pojo; /** @author:yuejl @date: 2019年6月15日 上午11:11:02 @Description Mybatis 使用的基本类 User */ public class User { /** * @param id id编号,自增 * @param name 姓名 * @param age 年龄 * @param sex 性别 * @param description 描述 */ private Integer id; private String name; private Integer age; private String sex; private String description; //引入部门的对象。 private IdCard idCard; private Dept dept; public User(){ } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public IdCard getIdCard() { return idCard; } public void setIdCard(IdCard idCard) { this.idCard = idCard; } public Dept getDept() { return dept; } public void setDept(Dept dept) { this.dept = dept; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", description=" + description + "]"; } }
Dept.java
package com.yjl.pojo; import java.util.List; /** @author: yuejl @date: 2019年7月8日 上午10:15:08 @Description 数据库中一的一方 部门实体 */ public class Dept { /** * @param id 部门的编号 * @param name 部门的名称 * @param description 部门的描述 */ private Integer id; private String name; private String description; // 集合,用的是 List, 而不是Set private List<User> allUser; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public List<User> getAllUser() { return allUser; } public void setAllUser(List<User> allUser) { this.allUser = allUser; } @Override public String toString() { return "Dept [id=" + id + ", name=" + name + ", description=" + description + "]"; } }
IdCard.java
package com.yjl.pojo; /** @author: yuejl @date: 2019年7月5日 下午12:41:47 @Description 类的相关描述 */ public class IdCard { /** * @param uid 身份证唯一标识符 * @param idNum 身份证标识符 */ private Integer id; private String idNum; //引入员工的属性 private User userId; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getIdNum() { return idNum; } public void setIdNum(String idNum) { this.idNum = idNum; } public User getUserId() { return userId; } public void setUserId(User userId) { this.userId = userId; } @Override public String toString() { return "IdCard [id=" + id + ", idNum=" + idNum + ", userId=" + userId + "]"; } }