千家信息网

Mybatis中association和collection怎么用

发表于:2026-11-07 作者:千家信息网编辑
千家信息网最后更新 2026年11月07日,这篇文章将为大家详细讲解有关Mybatis中association和collection怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。association和
千家信息网最后更新 2026年11月07日Mybatis中association和collection怎么用

这篇文章将为大家详细讲解有关Mybatis中association和collection怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

association和collection用法

1.单个关联查询association

1.1实体之间的关联表示

package com.worldly.config.entity;import java.io.Serializable;/** * @Description * @Author xiaoqx  * @Version V1.0.0 * @Since 2017/11/26 */public class Employee implements Serializable {    private Integer id;    private String name;    private String email;    private String tel;    //关联的部门实体,查询某个人的时候可以把所在部门信息查询出来    private Department dep;    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 getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }    public String getTel() {        return tel;    }    public void setTel(String tel) {        this.tel = tel;    }    public Department getDep() {        return dep;    }    public void setDep(Department dep) {        this.dep = dep;    }    @Override    public String toString() {        return "{\"Employee\":{"                + "\"id\":\"" + id + "\""                + ", \"name\":\"" + name + "\""                + ", \"email\":\"" + email + "\""                + ", \"tel\":\"" + tel + "\""                + ", \"dep\":" + dep                + "}}";    }}

1.2 两种关联查询方式

//第一中方式:直接进行关联查询把关联实体的属性在xml中配置//然后关联查出来                                                                                            
//第二中查询方式,采用 association中的select来查询                                                                                    

1.3 两种方式的优劣

a.查询条件相同,所用的时间:从测试结果显示,关联查询要比嵌套查询快一点(结果不一定准确,可能关联表多的时候,结果会有所变化)

a.查询条件相同,所用的时间:从测试结果显示,关联查询要比嵌套查询快一点(结果不一定准确,可能关联表多的时候,结果会有所变化)

b.适用的情况

2.多个关联查询 collection

2.1实体之间的关联表示

package com.worldly.config.entity;import java.util.List;/** * @Description * @Author xiaoqx  * @Version V1.0.0 * @Since 1.0 * @Date 2017/12/16 */public class Department {    private int id;    private String name;    private String addr;    List employeeList;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getNamel() {        return name;    }    public void setNamel(String name) {        this.name = name;    }    public String getAddr() {        return addr;    }    public void setAddr(String addr) {        this.addr = addr;    }    public List getEmployeeList() {        return employeeList;    }    public void setEmployeeList(List employeeList) {        this.employeeList = employeeList;    }    @Override    public String toString() {        return "{\"Department\":{"                + "\"id\":\"" + id + "\""                + ", \"name\":\"" + name + "\""                + ", \"addr\":\"" + addr + "\""                + ", \"employeeList\":" + employeeList                + "}}";    }}

2.2 两种关联查询方式

//第一种方式嵌套查询                                                                                    
//第二中方式关联查询                                                                                                

2.3 多条件查询

                                                                                            

多条件查询,用{}来包装方法

3.鉴别器discriminator

3.1 鉴别器适用的场景

3.2 鉴别器的实现

association和collection关联查询用法

这里只做最简单的用法,其它方法请自行查询;

一对多 collection

 

举例

 

一对一 & 多对一

举例

关于"Mybatis中association和collection怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0