Mybatis中多个对象包含同一个对象的处理

多个对象对应一个对象时,应该如何进行查询?
例如


关键字: association : 联系 ,关联 多个人可以关联一个人。
首先做一些准备,如:实体类,工具类和Mybatis核心文件
实体类:

//老师实体类
package com.MLXH.pojo;

public class Teacher {
   
    private int id;
    private String name;

    public Teacher() {
   
    }

    public Teacher(int id, String name) {
   
        this.id = id;
        this.name = name;
    }

    public int getId() {
   
        return id;
    }

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

    public String getName() {
   
        return name;
    }

    public void setName(String name) {
   
        this.name = name;
    }

    @Override
    public String toString() {
   
        return "Teacher{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

//学生实体类
package com.MLXH.pojo;

public class Student  {
   
    private int id;
    private String name;
    private Teacher teacher;

    public Student() {
   
    }

    public Student(int id, String name, Teacher teacher) {
   
        this.id = id;
        this.name = name;
        this.teacher = teacher;
    }


    public int getId() {
   
        return id;
    }

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

    public String getName() {
   
        return name;
    }

    public void setName(String name) {
   
        this.name = name;
    }

    public Teacher getTeacher() {
   
        return teacher;
    }

    public void setTeacher(Teacher teacher)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis ,如果返回的对象包含多个不相关的 List 属性,可以通过使用嵌套查询来实现。 首先,确保你的返回对象包含了所有需要的 List 属性。假设你的返回对象是一个包含两个不相关的 List 属性的类,如下所示: ```java public class MyObject { private List<ObjectA> listA; private List<ObjectB> listB; // getter and setter methods } ``` 其,`ObjectA` 和 `ObjectB` 是两个不相关的对象。 接下来,在你的 Mapper 接口定义两个嵌套查询来分别查询这两个不相关的 List 属性。你可以使用 `resultMap` 来映射查询结果到返回对象的 List 属性。 ```java public interface MyMapper { @Select("SELECT * FROM tableA") @ResultMap("objectAResultMap") List<ObjectA> queryListA(); @Select("SELECT * FROM tableB") @ResultMap("objectBResultMap") List<ObjectB> queryListB(); } ``` 然后,在 XML 配置文件定义两个 `resultMap`,分别映射查询结果到两个 List 属性。 ```xml <resultMap id="objectAResultMap" type="com.example.ObjectA"> <!-- Define mappings for ObjectA properties --> </resultMap> <resultMap id="objectBResultMap" type="com.example.ObjectB"> <!-- Define mappings for ObjectB properties --> </resultMap> ``` 最后,在你的 Service 或者 Controller 调用这两个嵌套查询,并将结果设置到返回对象的对应属性。 ```java public class MyService { private MyMapper myMapper; public MyObject getMyObject() { MyObject myObject = new MyObject(); myObject.setListA(myMapper.queryListA()); myObject.setListB(myMapper.queryListB()); return myObject; } } ``` 这样,你就可以通过 MyBatis 返回一个包含多个不相关的 List 属性的对象了。记得在实际情况根据你的表结构和需求进行相应的调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值