何为延迟加载:
就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载。
好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。
需求:
查询用户(User)信息并且关联查询车辆(Vechile)信息。如果先查询用户(User)信息即可满足要求,故可以当我们需要查询车辆(Vechile)信息时再查询用户(Vechile)信息。把对车辆(Vechile)信息的按需去查询就是延迟加载。
mybatis实现多表操作时,我们使用了resultMap来实现一对一,一对多,多对多关系的操作。主要是通过 association、collection 实现一对一及一对多映射。而association、collection 具备延迟加载功能。
这里介绍用collection实现一对多的延迟加载,association同理。
功能:完成加载用户对象时,查询该用户所拥有的车辆信息。
User 实体类中加入 List属性
public class User implements Serializable {
private int u_id;
private String user;
private String password;
private String name;
private List<Vechile> vechiles;
public List<Vechile> getVechiles() {
return vechiles;
}
public void setVechiles(List<Vechile> vechiles) {
this.vechiles = vechiles;
}
public int getU_id() {
return u_id;
}
public void setU_id(int u_id) {
this.u_id = u_id;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name