MyBatis的延迟加载(十四)上

简介: MyBatis的延迟加载(十四)

一.MyBatis 延迟加载


MyBatis 延迟加载,是指在进行表的关联查询时,按照设置延迟规则推迟对关联对象的select查询。 如在查询 User 的信息时,如果没有用到Dept或者不想查询Dept,就不查询Dept 的信息,哪怕关联了Dept。


为了详细一些,老蝴蝶把以前的表信息拿出来。


User表:

20190718130609249.png

Dept表:


2019071819022497.png


IdCard 表:


20190718190254968.png


对应的实体 类.

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 + "]";
  }
}



相关文章
|
6月前
|
Java 数据库连接 数据库
【Mybatis】mybatis 是否支持延迟加载?
【Mybatis】mybatis 是否支持延迟加载?
|
4月前
|
XML SQL Java
MyBatis 的延迟加载是如何实现的
MyBatis的延迟加载(懒加载)特性提高了性能,只在需要时加载关联数据。配置延迟加载需在`mybatis-config.xml`中设置`lazyLoadingEnabled`为`true`,`aggressiveLazyLoading`为`false`。实现原理基于代理对象,MyBatis为延迟加载属性创建代理,在访问时触发实际查询。代理通过Java动态代理实现,拦截方法调用,按需加载数据。
108 0
|
6月前
|
存储 缓存 Java
【MyBaits】4、延迟加载、MyBatis 的缓存
【MyBaits】4、延迟加载、MyBatis 的缓存
45 0
|
6月前
|
Java 数据库连接 mybatis
Mybatis中延迟加载~
Mybatis中延迟加载~
|
6月前
|
Java 数据库连接 mybatis
一文彻底搞懂Mybatis系列(十二)之MyBatis多对一映射延迟加载(association和lazyLoadingEnabled)
一文彻底搞懂Mybatis系列(十二)之MyBatis多对一映射延迟加载(association和lazyLoadingEnabled)
112 0
|
SQL Java 数据库连接
【MyBatis】高级映射多对一,一对多和延迟加载
【MyBatis】高级映射多对一,一对多和延迟加载
|
SQL Java 数据库连接
2021-08-06项目实现过程-ssm框架,关联映射,延迟加载,使用注解实现mybatis映射
2021-08-06项目实现过程-ssm框架,关联映射,延迟加载,使用注解实现mybatis映射
69 0
|
SQL Java 数据库连接
Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
99 0
|
Java 数据库连接 mybatis
MyBatis 是否支持延迟加载?怎么实现?什么时候启用?
MyBatis 是否支持延迟加载?怎么实现?什么时候启用?
136 0
|
SQL 存储 XML
Mybatis 高阶学习(映射文件深入、延迟加载、缓存、注解开发等)
Mybatis 高阶学习(映射文件深入、延迟加载、缓存、注解开发等)
359 0
Mybatis 高阶学习(映射文件深入、延迟加载、缓存、注解开发等)