mybatis中复杂查询(多对一和一对多)1-环境搭建

mybatis中复杂查询(多对一和一对多)1-环境搭建

一.基本知识

  (1).多对一的理解(以学生和老师为例子)

    老师角度:一个老师会教多个学生【一对多】

    学生角度:多个学生对应一个老师【多对一】

  (2).如何处理:比较常见的两种方式,一个是联表查询,一个是子查询

二.举例说明

  (1).数据库设计,执行SQL的时候不要直接全选一块执行,一个代码块一个代码块的执行,一起执行的话可能会报错,因为sql的执行速度很快,有可能在你创表之前就会执行insert语句。

//使用名为mybatis的数据库
USE mybatis

//建表
CREATE TABLE `teacher` (
  `id` INT(10) NOT NULL,
  `name` VARCHAR(30) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
//插入数据
INSERT INTO teacher(`id`, `name`) VALUES (1, "李老师"); 

CREATE TABLE `student` (
  `id` INT(10) NOT NULL,
  `name` VARCHAR(30) DEFAULT NULL,
  `tid` INT(10) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fktid` (`tid`),
  CONSTRAINT `fktid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ("1", "小明", "1"); 
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ("2", "小红", "1"); 
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ("3", "小张", "1"); 
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ("4", "小李", "1"); 
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ("5", "小王", "1");
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » mybatis中复杂查询(多对一和一对多)1-环境搭建