小猴雏 2016-04-04 08:39 采纳率: 20%
浏览 2056

MyBatis使用select关联 一对多表的时候?????????????

SchoolMapper.xml 关联关系是一个学校里面有很多学生

student 表的属性如下:
图片说明

school表如下:
图片说明

school.xml如下:

图片说明

public class School {

//建立一对多的关系
private List<Student> slist;


public List<Student> getSlist() {
    return slist;
}

public void setSlist(List<Student> slist) {
    this.slist = slist;
}




private Integer sId;

private String sName;

private String sAddress;

public Integer getsId() {
    return sId;
}

public void setsId(Integer sId) {
    this.sId = sId;
}

public String getsName() {
    return sName;
}

public void setsName(String sName) {
    this.sName = sName == null ? null : sName.trim();
}

public String getsAddress() {
    return sAddress;
}

public void setsAddress(String sAddress) {
    this.sAddress = sAddress == null ? null : sAddress.trim();
}

public class Student {
//建立多多对一的关系

private School school;



public School getSchool() {
    return school;
}

public void setSchool(School school) {
    this.school = school;
}

private Integer stId;

private String stClass;

private String stName;

private String stDream;

private Integer stS;

public Integer getStId() {
    return stId;
}

public void setStId(Integer stId) {
    this.stId = stId;
}

public String getStClass() {
    return stClass;
}

public void setStClass(String stClass) {
    this.stClass = stClass == null ? null : stClass.trim();
}

public String getStName() {
    return stName;
}

public void setStName(String stName) {
    this.stName = stName == null ? null : stName.trim();
}

public String getStDream() {
    return stDream;
}

public void setStDream(String stDream) {
    this.stDream = stDream == null ? null : stDream.trim();
}

public Integer getStS() {
    return stS;
}

public void setStS(Integer stS) {
    this.stS = stS;
}



test.java  结果list就是null  


public static void main(String[] args) {
    // TODO Auto-generated method stub
    StuService ss=new StuService();
    ss.selectSchool();
}

public void selectSchool(){



      SqlSession ss=null;


        try {
            ss=sf.openSession();

                                                         //selectByPrimaryKey
        School sc =ss.selectOne("com.wuye.dao.SchoolMapper.selectSchool", 1);


        System.out.println("学校的信息:"+sc.getsId()+" "+sc.getsName()+" "+sc.getsAddress());

    List<Student> lis=sc.getSlist();

    for(Student st:lis){
        System.out.println("学生信息学号:"+st.getStId()+"名字:"+st.getStName()+"所在班级: "+st.getStClass()+"梦想:"+st.getStDream()+"所在学校编号:=="+st.getStS());

    }

        } catch (Exception e) {
        // TODO: handle exception
          e.printStackTrace();
        }









}
  • 写回答

2条回答

  • 小猴雏 2016-04-04 08:42
    关注

    ## # 上面肯写的不清楚:

    SchoolMapper.xml 关联关系是一个学校里面有很多学生






     <select id="selectSchool" resultMap="BaseResultMap3"  parameterType="java.lang.Integer">
    

    select * from school sc where sc.s_id=#{sId,jdbcType=INTEGER}





    </collection> 
    


    select st_id stId, st_class stClass, st_name stName,st_dream stDream

    from student s where s.st_s=#{sId,jdbcType=INTEGER}

    StudentMapper.xml
    
    <mapper namespace="com.wuye.dao.StudentMapper" >
    






    <association property="school" column="st_s" select="selectShoolByStu" ></association>
    

    两个表:!![图片说明](https://img-ask.csdn.net/upload/201604/04/1459759020_969759.png)
    

    图片说明
    public class School {

    //建立一对多的关系
    private List<Student> slist;
    
    
    public List<Student> getSlist() {
        return slist;
    }
    
    public void setSlist(List<Student> slist) {
        this.slist = slist;
    }
    
    
    
    
    private Integer sId;
    
    private String sName;
    
    private String sAddress;
    
    public Integer getsId() {
        return sId;
    }
    
    public void setsId(Integer sId) {
        this.sId = sId;
    }
    
    public String getsName() {
        return sName;
    }
    
    public void setsName(String sName) {
        this.sName = sName == null ? null : sName.trim();
    }
    
    public String getsAddress() {
        return sAddress;
    }
    
    public void setsAddress(String sAddress) {
        this.sAddress = sAddress == null ? null : sAddress.trim();
    }
    

    public class Student {
    //建立多多对一的关系

    private School school;
    
    
    
    public School getSchool() {
        return school;
    }
    
    public void setSchool(School school) {
        this.school = school;
    }
    
    private Integer stId;
    
    private String stClass;
    
    private String stName;
    
    private String stDream;
    
    private Integer stS;
    
    public Integer getStId() {
        return stId;
    }
    
    public void setStId(Integer stId) {
        this.stId = stId;
    }
    
    public String getStClass() {
        return stClass;
    }
    
    public void setStClass(String stClass) {
        this.stClass = stClass == null ? null : stClass.trim();
    }
    
    public String getStName() {
        return stName;
    }
    
    public void setStName(String stName) {
        this.stName = stName == null ? null : stName.trim();
    }
    
    public String getStDream() {
        return stDream;
    }
    
    public void setStDream(String stDream) {
        this.stDream = stDream == null ? null : stDream.trim();
    }
    
    public Integer getStS() {
        return stS;
    }
    
    public void setStS(Integer stS) {
        this.stS = stS;
    }
    
    
    
    test.java  结果list就是null  
    
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        StuService ss=new StuService();
        ss.selectSchool();
    }
    
    public void selectSchool(){
    
    
    
          SqlSession ss=null;
    
    
            try {
                ss=sf.openSession();
    
                                                             //selectByPrimaryKey
            School sc =ss.selectOne("com.wuye.dao.SchoolMapper.selectSchool", 1);
    
    
            System.out.println("学校的信息:"+sc.getsId()+" "+sc.getsName()+" "+sc.getsAddress());
    
        List<Student> lis=sc.getSlist();
    
        for(Student st:lis){
            System.out.println("学生信息学号:"+st.getStId()+"名字:"+st.getStName()+"所在班级: "+st.getStClass()+"梦想:"+st.getStDream()+"所在学校编号:=="+st.getStS());
    
        }
    
            } catch (Exception e) {
            // TODO: handle exception
              e.printStackTrace();
            }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导
  • ¥15 docker模式webrtc-streamer 无法播放公网rtsp
  • ¥15 学不会递归,理解不了汉诺塔参数变化
  • ¥15 基于图神经网络的COVID-19药物筛选研究
  • ¥30 软件自定义无线电该怎样使用
  • ¥15 R语言mediation包做中介分析,直接效应和间接效应都很小,为什么?
  • ¥15 Jenkins+k8s部署slave节点offline
  • ¥15 如何实现从tello无人机上获取实时传输的视频流,然后将获取的视频通过yolov5进行检测
  • ¥15 WPF使用Canvas绘制矢量图问题