Mybatisの一対一と一対多


一対一
紹介する
1対1で使用されるラベルです.このラベルにはcolumn、javaType、propertyの3つのプロパティがあります.columnは外部キーid(クエリー結果を使用するフィールド)に対応し、javaTypeは外部キーオブジェクトのタイプであり、propertyはプライマリオブジェクトの外部キーオブジェクトのプロパティ名です.このラベルには2つのサブラベルが含まれています.
≪インスタンス|Instance|emdw≫
1つの教師オブジェクトは、教師番号(teacherId)、教師名(teacherName)、およびカリキュラムオブジェクト(cursor)に対応します.カリキュラムオブジェクトには、カリキュラム番号(cursorId)、カリキュラム名(cursorName)があります.
JAvaクラス
public class Teacher{
    private String teacherId;
    private String teacherName;
    private Cursor cursor;
    public void setTeacherId(String teacherId){
        this.teacherId=teacherId;
    }
    public String getTeacherId(){
        return this.teacherId;
    }
    public void setTeacherName(String teacherName){
        this.teacherName=teacherName;
    }
    public String getTeacherName(){
        return this.teacherName;
    }
     public void setCursor(Cursor cursor){
        this.cursor=cursor;
    }
    public String getCursor(){
        return this.cursor;
    }
}
public class Cursor{
    private String cursorId;
    private String cursorName;
    public void setCursorId(String cursorId){
        this.cursorId=cursorId;
    }
    public String getCursorId(){
        return this.cursorId;
    }
    public void setCursorName(String cursorName){
        this.cursorName=cursorName;
    }
    public String getCursorName(){
        return this.cursorName;
    }
}

xmlの構成
id="teacherMap" type="Teacher">
    <id column="teacher_id" jdbcType="VARCHAR" property="teacherId"/>
    <result column="teacher_name" jdbcType="VARCHAR" property="teacherName"/>
    "cursor_id" javaType="Cursor" property="cursor">
        <id column="cursor_id" jdbcType="VARCHAR" property="cursorId"/>
        <result column="cursor_name" jdbcType="VARCHAR" property="cursorName"/>
    

sql文
select a.teacher_id,a.teacher_name,b.cursor_id,b.cursor_name from teacher a left join cursor b on a.cursor_id=b.id

一対多
紹介する
一対多に使用されるのはラベルです.このラベルにはcolumn、ofType、propertyの3つの属性があります.columnは外部キー(クエリー結果のフィールド)に対応しています.ofTypeは外部キーオブジェクトのタイプで、propertyは外部キーオブジェクトのプライマリオブジェクトの名前を指します.このラベルには2つのサブラベルが含まれています.それぞれ
≪インスタンス|Instance|emdw≫
1人の先生は複数の学生に対応しており、先生対象には先生番号(teacherId)、先生名(teacherName)、学生対象集合(Liststudents)、学生対象には学生番号(student_id)、学生名(student_name)が含まれている.
JAvaクラス
public class Teacher{
    private String teacherId;
    private String teacherName;
    private List students;
    public void setTeacherId(String teacherId){
        this.teacherId=teacherId;
    }
    public String getTeacherId(){
        return this.teacherId;
    }
    public void setTeacherName(String teacherName){
        this.teacherName=teacherName;
    }
    public String getTeacherName(){
        return this.teacherName;
    }
     public void setStudents(List students){
        this.students=students;
    }
    public String getStudents(){
        return this.students;
    }
}
public class Student{
    private String cursorId;
    private String cursorName;
    public void setStudentId(String studentId){
        this.studentId=studentId;
    }
    public String getStudentId(){
        return this.studentId;
    }
    public void setStudentName(String studentName){
        this.studentName=studentName;
    }
    public String getStudentName(){
        return this.studentName;
    }
}

xml構成
id="teacherMap" type="Teacher">
    <id column="teacher_id" jdbcType="VARCHAR" property="teacherId"/>
    <result column="teacher_name" jdbcType="VARCHAR" property="teacherName"/>
    "student_id" ofType="student" property="students">
        <id column="student_id" jdbcType="VARCHAR" property="studentId"/>
        <result column="student_name" jdbcType="VARCHAR" property="studentName">
    

sql
select a.teacher_id,a.teacher_name,b.student_id,b.student_name from teacher a left join student b on a.teacher_id=b.teacher_id

以上、具体的なデータベースデータやデータを作成するsqlはご自身で作成してください.