博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用MyBatis实现关联查询
阅读量:3971 次
发布时间:2019-05-24

本文共 2349 字,大约阅读时间需要 7 分钟。

目录

一、查询需求

(一)针对三张表关联查询

1.班级表(t_class)

2.教师表(t_teacher)
3.学生表(t_student)

  • 一个班级配置一个教师,一个班级有多个学生
  • 班级表与教师表是一对一的关联
  • 班级表与学生表是一对多的关联

(二)按班级编号查询班级信息

  • 要求查询到的班级带老师信息和该班学生信息

(三)查询全部班级信息

  • 要求查询的班级信息只带老师的信息,不带学生信息

二、创建数据库表

(一)创建教师表

  • 执行SQL语句,创建教师表t_teacher
CREATE TABLE `t_teacher` (`t_id` int(11) NOT NULL AUTO_INCREMENT,`t_name` varchar(20) DEFAULT NULL,PRIMARY KEY (`t_id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

在这里插入图片描述

  • 执行SQL语句,插入3条记录
INSERT INTO `t_teacher` VALUES ('1', '刘晓云');INSERT INTO `t_teacher` VALUES ('2', '郑同华');INSERT INTO `t_teacher` VALUES ('3', '李明军');

在这里插入图片描述

  • 查看教师表记录
    在这里插入图片描述

(二)创建班级表

  • 执行SQL语句,创建班级表t_class
CREATE TABLE `t_class` (  `c_id` int(11) NOT NULL AUTO_INCREMENT,  `c_name` varchar(20) DEFAULT NULL,  `teacher_id` int(11) DEFAULT NULL,PRIMARY KEY (`c_id`),KEY `fk_teacher_id` (`teacher_id`),CONSTRAINT `fk_teacher_id` FOREIGN KEY (`teacher_id`) REFERENCES `t_teacher` (`t_id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

在这里插入图片描述

  • 执行SQL语句,插入3条记录
INSERT INTO `t_class` VALUES ('1', '2020软件1班', '3');INSERT INTO `t_class` VALUES ('2', '2020软件2班', '2');INSERT INTO `t_class` VALUES ('3', '2020软件3班', '1');

在这里插入图片描述

  • 查看班级表记录
    在这里插入图片描述

(三)创建学生表

  • 执行SQL语句,创建学生表t_student
CREATE TABLE `t_student` (  `s_id` int(11) NOT NULL AUTO_INCREMENT,  `s_name` varchar(30) DEFAULT NULL,  `s_gender` varchar(10) DEFAULT NULL,  `s_age` int(11) DEFAULT NULL,  `class_id` int(11) DEFAULT NULL,  PRIMARY KEY (`s_id`)) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

在这里插入图片描述

  • 执行SQL语句,插入9条记录
insert into t_student values('1','佟大为','男','20','1');insert into t_student values('2','李方玉','女','20','1');insert into t_student values('3','郑大林','男','20','2');insert into t_student values('4','温晓辉','女','20','1');insert into t_student values('5','吴文静','男','20','2');insert into t_student values('6','筱文艳','女','20','3');insert into t_student values('7','杨文军','男','20','3');insert into t_student values('8','唐语晗','女','20','2');insert into t_student values('9','金玉兴','男','20','2');

在这里插入图片描述

  • 查看学生表记录
    在这里插入图片描述
  • 表间关系图
    在这里插入图片描述

三、创建与数据库表对应的实体类

(一)创建教师实体类

在这里插入图片描述

在这里插入图片描述

(二)创建学生实体类

在这里插入图片描述

在这里插入图片描述

  • 注:toString()方法里,clazz输出的不是班级实体类的完整信息,而是班级名称,通过clazz.getName()获取。
    在这里插入图片描述

(三)创建班级实体类

在这里插入图片描述

在这里插入图片描述

  • 注:toString()方法里,teacher输出的不是教师实体类的完整信息,而是教师姓名,通过teacher.getName()获取。
    在这里插入图片描述

四、创建班级映射器配置文件

  • 在resources/mapper目录里创建班级映射器配置文件ClazzMapper.xml
    在这里插入图片描述

(一)、定义班级的结果映射

在这里插入图片描述

1、编写一对一关联链接

在这里插入图片描述

2、编写一对多关联链接

在这里插入图片描述

五、修改MyBatis配置文件

  • 在配置里配置班级、教师与学生实体类别名,以及班级映射器配置文件

在这里插入图片描述

六、定义班级映射接口ClazzMapper

在这里插入图片描述

在这里插入图片描述

七、创建测试类TestClazzMapper

在这里插入图片描述

在这里插入图片描述

(一)运行testFindById查看结果

在这里插入图片描述

(二)运行testFindAll查看结果

在这里插入图片描述

转载地址:http://ojtki.baihongyu.com/

你可能感兴趣的文章
Java I/O
查看>>
序列化
查看>>
Perl 精萃
查看>>
Perl 简介
查看>>
Perl 注释
查看>>
数据类型之标量
查看>>
调试 Perl 脚本
查看>>
增强的for循环语句
查看>>
静态导入
查看>>
java 泛型
查看>>
控制结构
查看>>
标准输入输出
查看>>
数据类型之列表与数组
查看>>
比较字符串
查看>>
Java EE 精萃
查看>>
Open Source 精萃
查看>>
Java EE 简介
查看>>
Weblogic 简介
查看>>
观察者模式 (Observer)
查看>>
Java 集合框架
查看>>