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

Mybatis 一对多和多对一关联查询问题

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

Mybatis 一对多和多对一关联查询问题

首先  数据库量表之间字段关系(没有主外键)

studentmajor表的id字段对应student表里major字段

两个实体类

package com.model;
import java.util.Date;
public class Student {
  private Integer sno;
  private String sname;
  private String ssex;
  private Integer sclass;
  private StudentMajor studentmajor;
  public Student() {
    super();
  }
  public Student(Integer sno, String sname, String ssex, Integer sclass, StudentMajor studentmajor) {
    super();
    this.sno = sno;
    this.sname = sname;
    this.ssex = ssex;
    this.sclass = sclass;
    this.studentmajor = studentmajor;
  }
  public StudentMajor getStudentmajor() {
    return studentmajor;
  }
  public void setStudentmajor(StudentMajor studentmajor) {
    this.studentmajor = studentmajor;
  }
  public Integer getSno() {
    return sno;
  }
  public void setSno(Integer sno) {
    this.sno = sno;
  }
  public String getSname() {
    return sname;
  }
  public void setSname(String sname) {
    this.sname = sname;
  }
  public String getSsex() {
    return ssex;
  }
  public void setSsex(String ssex) {
    this.ssex = ssex;
  }
  @Override
  public String toString() {
    return "Student [sno=" + sno + ", sname=" + sname + ", ssex=" + ssex + ", sclass=" + sclass + ", studentmajor="
 + studentmajor + "]";
  }
  public Integer getSclass() {
    return sclass;
  }
  public void setSclass(Integer sclass) {
    this.sclass = sclass;
  }
}
package com.model;
import java.util.List;
public class StudentMajor {
  private Integer id;
  private String mcode;
  private String mname;
  private List students;
  public StudentMajor() {
    super();
  }
  public StudentMajor(Integer id, String mcode, String mname, List students) {
    super();
    this.id = id;
    this.mcode = mcode;
    this.mname = mname;
    this.students = students;
  }
  @Override
  public String toString() {
    return "StudentMajor [id=" + id + ", mcode=" + mcode + ", mname=" + mname + ", students=" + students + "]";
  }
  public Integer getId() {
    return id;
  }
  public void setId(Integer id) {
    this.id = id;
  }
  public String getMcode() {
    return mcode;
  }
  public void setMcode(String mcode) {
    this.mcode = mcode;
  }
  public String getMname() {
    return mname;
  }
  public void setMname(String mname) {
    this.mname = mname;
  }
  public List getStudents() {
    return students;
  }
  public void setStudents(List students) {
    this.students = students;
  }
}

定义两个接口

package com.dao;
import java.util.List;
import java.util.Map;
import com.model.Student;
public interface StudentMapper {
  
  public List selectall();
  
  public List selectz(Integer major);
}
package com.dao;
import java.util.List;
import com.model.StudentMajor;
public interface StudentMajorMapper {
  
  public List selectAll();
  
  public StudentMajor select(Integer id);
}

定义两个实体类的映射方法



 
  
  
    
     
  
  
  
    select * from student s where s.major=#{major}
  
 


 
   
   
     
     
     
     
       
   
   
   
     select * from studentmajor where id=#{id}
   
 

JUnit测试

package com.util;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.dao.StudentMajorMapper;
import com.dao.StudentMapper;
import com.model.Student;
import com.model.StudentMajor;
public class JJJtest {
  private SqlSession ss;
  private StudentMapper sm;
  private StudentMajorMapper smm;
  @Before
  public void setUp() throws Exception {
    ss=SqlSessionUtil.getSqlSession();
    sm=ss.getMapper(StudentMapper.class);
    smm=ss.getMapper(StudentMajorMapper.class);
  }
  @After
  public void tearDown() throws Exception {
    ss.commit();
    ss.close();
  }
  //一对多查询
  public void test() {
    List list=smm.selectAll();
    for(StudentMajor a:list){
      System.out.println(a);
    }
  }
  //根据专业查人员,给一对多用
  public void selectz(){
    List l=sm.selectz(3);
    for(Student a:l){
      System.out.println(a);
    }
  }
  //多对一查询
  @Test
  public void selectall() {
    List st=sm.selectall();
    for(Student tt:st){
      System.out.println(tt);
    }
  }
  //根据主键查询,给多对一用
  public void select(){
    StudentMajor a=smm.select(1);
    System.out.println(a);
  }
}

一对多查询结果

多对一查询结果

以上所述是小编给大家介绍的Mybatis 一对多和多对一关联查询问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!

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

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

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