Mybatis一对多关联查询详解

Mybatis一对多关联查询详解,第1张

要点

在Student类中添加List classList 属性
在Classes类中添加List students属性


在ClassesMapper.xml中


< resultMap>

< collection ofType="Student">
< /collection>

在StudentMapper.xml中
< resultMap>

< collection ofType="Classes">
< /collection>

1.创建数据表

本实例需要两张数据表
student表:

classes表

2.创建实体类

Student:

package com.ytsky.mybatis.demo.entity;

import java.util.List;

public class Student {
    private int id;
    private String stuno;
    private String stuname;
    private String sex;
    private String classno;

    private  List classesList;

    public int getId() {
        return id;
    }

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

    public List getClassesList() {
        return classesList;
    }

    public void setClassesList(List classesList) {
        this.classesList = classesList;
    }

    public String getStuno() {
        return stuno;
    }

    public void setStuno(String stuno) {
        this.stuno = stuno;
    }

    public String getStuname() {
        return stuname;
    }

    public void setStuname(String stuname) {
        this.stuname = stuname;
    }

    public String getSex() {
        return sex;
    }

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

    public String getClassno() {
        return classno;
    }

    public void setClassno(String classno) {
        this.classno = classno;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", stuno='" + stuno + '\'' +
                ", stuname='" + stuname + '\'' +
                ", sex='" + sex + '\'' +
                ", classno='" + classno + '\'' +
                ", classesList=" + classesList +
                '}';
    }
}

Classes:

package com.ytsky.mybatis.demo.entity;

import java.util.List;

public class Classes {
    private int id;
    private String classno;
    private String name;
    private String major;

    private List students;

    public List getStudents() {
        return students;
    }

    public void setStudents(List students) {
        this.students = students;
    }

    public int getId() {
        return id;
    }

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

    public String getClassno() {
        return classno;
    }

    public void setClassno(String classno) {
        this.classno = classno;
    }

    public String getName() {
        return name;
    }

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

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    @Override
    public String toString() {
        return "Classes{" +
                "id=" + id +
                ", classno='" + classno + '\'' +
                ", name='" + name + '\'' +
                ", major='" + major + '\'' +
                ", students=" + students +
                '}';
    }
}
3.创建映射文件 

 ClassesMapper.xml




    
    
        
        
        
        
        
            
            
            
            
        
    

 

StudentMapper.xml




    
    
        
        
        
        
        
        
            
            
            
            
        
    

 

mybatis-config.xml




    
    
        
        
    



    
        
    

    
        
    

    
        
            
            
                
                
                
                
            
        
    
    
        
        
        
        
        
        
    

 
4.创建数据 *** 作接口

ClassesMapper:

package com.ytsky.mybatis.demo.dao;

import com.ytsky.mybatis.demo.entity.Classes;

import java.util.List;

public interface ClassesMapper {
    List selectClassesWithStudent();
}

StudentMapper:

package com.ytsky.mybatis.demo.dao;

import com.ytsky.mybatis.demo.entity.Student;

import java.util.List;

public interface StudentMapper {
    ListselectStudentWithClasses();
    int updateById(Student student);
}
5.编写测试类

Test1:

package com.ytsky.mybatis.demo.test1;

import com.ytsky.mybatis.demo.dao.ClassesMapper;
import com.ytsky.mybatis.demo.dao.StudentMapper;
import com.ytsky.mybatis.demo.entity.Classes;
import com.ytsky.mybatis.demo.entity.Student;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.util.List;

public class Test1 {
    private static SqlSessionFactory factory;
    static {
        try{
            factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
//        System.out.println(findClassesWithStudent());
        System.out.println(findStudentWithClasses());
    }

    public static List findClassesWithStudent(){
        SqlSession session = factory.openSession();
        List classes = session.getMapper(ClassesMapper.class).selectClassesWithStudent();
        session.close();
        return classes;
    }
    public static List findStudentWithClasses(){
        SqlSession session = factory.openSession();
        List students = session.getMapper(StudentMapper.class).selectStudentWithClasses();
        session.close();
        return students ;
    }

}
6.运行结果

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/800342.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存