栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis一对多关联查询详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis一对多关联查询详解

要点

在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




    
        select classes.id, classes.classno, name, major
        ,student.id, student.classno, stuno, sex, stuname
        from db_quote.classes
            join db_quote.student
                on db_quote.student.id = db_quote.classes.id
         where db_quote.student.classno="Class001";
    
    
        
        
        
        
        
            
            
            
            
        
    

 

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.运行结果

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854520.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号