使用Mybatis实现一对多延迟加载
创始人
2024-11-17 13:42:29
0次

需求:一个用户可以有多个账户,查询用户时实现账户的延迟加载

1、用户实体类

package com.yl.bean;

import java.io.Serializable;
import java.sql.Date;
import java.util.List;

/**
 * 用户实体类
 */
public class User implements Serializable {
  private Integer id;//id
  private String username;//用户名
  private Date birthday;//生日
  private String sex;//性别
  private String address;//地址
  private List accountList;//用户所拥有的账户

  public User() {
  }

  public Integer getId() {
    return id;
  }

  public void setId(Integer id) {
    this.id = id;
  }

  public String getUsername() {
    return username;
  }

  public void setUsername(String username) {
    this.username = username;
  }

  public Date getBirthday() {
    return birthday;
  }

  public void setBirthday(Date birthday) {
    this.birthday = birthday;
  }

  public String getSex() {
    return sex;
  }

  public void setSex(String sex) {
    this.sex = sex;
  }

  public String getAddress() {
    return address;
  }

  public void setAddress(String address) {
    this.address = address;
  }

  public List getAccountList() {
    return accountList;
  }

  public void setAccountList(List accountList) {
    this.accountList = accountList;
  }

  @Override
  public String toString() {
    return "User{" +
        "id=" + id +
        ", username='" + username + '\'' +
        ", birthday=" + birthday +
        ", sex='" + sex + '\'' +
        ", address='" + address + '\'' +
        '}';
  }
}

2、账户实体类

package com.yl.bean;

import java.io.Serializable;

/**
 * 账户实体类
 */
public class Account implements Serializable {
  private Integer id;//账户id
  private Integer uid;//用户id
  private Double money;//余额
  private User user;//账户所属用户

  public Account() {
  }

  public Integer getId() {
    return id;
  }

  public void setId(Integer id) {
    this.id = id;
  }

  public Integer getUid() {
    return uid;
  }

  public void setUid(Integer uid) {
    this.uid = uid;
  }

  public Double getMoney() {
    return money;
  }

  public void setMoney(Double money) {
    this.money = money;
  }

  public User getUser() {
    return user;
  }

  public void setUser(User user) {
    this.user = user;
  }

  @Override
  public String toString() {
    return "Account{" +
        "id=" + id +
        ", uid=" + uid +
        ", money=" + money +
        '}';
  }
}

3、用户持久层接口

package com.yl.dao;

import com.yl.bean.User;

import java.util.List;

/**
 * 用户持久层接口
 */
public interface IUserDao {

  /**
   * 查询所有用户
   */
  List queryAll();

  /**
   * 根据id查询用户
   */
  User queryById(int id);

}

4、账户持久层接口

package com.yl.dao;

import com.yl.bean.Account;
import com.yl.bean.User;

import java.util.List;

/**
 * 账户持久层接口
 */
public interface IAccountDao {

  /**
   * 查询所有账户
   */
  List queryAll();

  /**
   * 根据用户id查询账户
   */
  List queryByUid(int uid);
}

5、全局配置文件

<?xml version="1.0" encoding="UTF-8"?>



  
    
    
    
  

  
  
    
  

  
  
    
    
      
      
      
      
        
        
        
        
      
    
  

  
  
    
    
  

6、用户映射配置文件

<?xml version="1.0" encoding="UTF-8"?>



  
  
    
    
    
    
    
    
    
  

  
  
  
  

7、账户映射配置文件

<?xml version="1.0" encoding="UTF-8"?>



  
  
    
    
    
    
    
  
  
  
  

  
  

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...