MyBatis学习总结(五)——实现关联表…

来源:互联网 发布:utorrent mac安装不了 编辑:程序博客网 时间:2024/06/03 17:06

MyBatis学习总结(五)——实现关联表查询

一、一对一关联

 1.1、提出需求

  根据班级id查询班级信息(带老师的信息)

1.2、创建表和数据

  创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系。

复制代码
 1 CREATE TABLE teacher( 2     t_id INT PRIMARY KEY AUTO_INCREMENT,  3     t_name VARCHAR(20) 4 ); 5 CREATE TABLE class( 6     c_id INT PRIMARY KEY AUTO_INCREMENT,  7     c_name VARCHAR(20),  8     teacher_id INT 9 );10 ALTER TABLE class ADD CONSTRAINT fk_teacher_id FOREIGN KEY (teacher_id) REFERENCES teacher(t_id);    11 12 INSERT INTO teacher(t_name) VALUES('teacher1');13 INSERT INTO teacher(t_name) VALUES('teacher2');14 15 INSERT INTO class(c_name, teacher_id) VALUES('class_a', 1);16 INSERT INTO class(c_name, teacher_id) VALUES('class_b', 2);
复制代码

  表之间的关系如下:

  

1.3、定义实体类

  1、Teacher类,Teacher类是teacher表对应的实体类。

复制代码
 1 package me.gacl.domain; 2  3  7 public class Teacher { 8  9     //定义实体类的属性,与teacher表中的字段对应10     private int id;            //id===>t_id11     private String name;    //name===>t_name12 13     public int getId() {14         return id;15     }16 17     public void setId(int id) {18         this.id = id;19     }20 21     public String getName() {22         return name;23     }24 25     public void setName(String name) {26         this.name = name;27     }28 29     @Override30     public String toString() {31         return "Teacher [id=" + id + ", name=" + name + "]";32     }33 }
复制代码

  2、Classes类,Classes类是class表对应的实体类

复制代码
 1 package me.gacl.domain; 2  3  7 public class Classes { 8  9     //定义实体类的属性,与class表中的字段对应10     private int id;            //id===>c_id11     private String name;    //name===>c_name12     13     17     private Teacher teacher;18 19     public int getId() {20         return id;21     }22 23     public void setId(int id) {24         this.id = id;25     }26 27     public String getName() {28         return name;29     }30 31     public void setName(String name) {32         this.name = name;33     }34 35     public Teacher getTeacher() {36         return teacher;37     }38 39     public void setTeacher(Teacher teacher) {40         this.teacher = teacher;41     }42 43     @Override44     public String toString() {45         return "Classes [id=" + id + ", name=" + name + ", teacher=" + teacher+ "]";46     }47 }
复制代码

1.4、定义sql映射文件classMapper.xml

复制代码
 1 
0 0
原创粉丝点击