编程改变世界(8)-- mybatis中的一对多映射

上次的文章中我们学习了一对一映射,这次我们来学习一对多映射
我们可以想象这样一个场景,一个班里会有很多学生,但是一名学生只属于一个班,这就是典型的一对多的关系
那我们就来建立一个学生表,tb_student,如下


image.png

依次建立pojo类,修改之前的classesMapper

package com.pojo;

public class Student {
    
    private int id;
    private String name;
    private int c_id;

    public Student() {
    }

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

    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 int getC_id() {
        return c_id;
    }

    public void setC_id(int c_id) {
        this.c_id = c_id;
    }

    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + ", c_id=" + c_id + "]";
    }
    
    

}

第一种写法,使用ofType





    
    
    
        
        
        
        
            
            
        

    


第二种写法,使用select





    
    
    
        
        
        
        
    


这时就要加上studentMapper




    

最后我们进行测试

package com.test;


import com.dao.ClassesDao;
import com.pojo.Classes;

import java.util.List;

public class Test {

    public static void main(String[] args) {

        ClassesDao classesDao = new ClassesDao();
        List list = classesDao.findClasses();
        int i = 0;
        for (Classes classes:list
             ) {
            System.out.println("班级名称:"+classes.getName()+" 教师名称"+classes.getTeacher().getName()+" 学生名称"+classes.getStudents().get(i).getName());
            i++;
        }


    }
}

输出结果


image.png

你可能感兴趣的:(编程改变世界(8)-- mybatis中的一对多映射)