关联查询

  • 一、创建数据库表
  • 1、创建教师表并插入数据
  • 2、创建班级表并插入数据
  • 3、创建学生表并插入数据
  • 二、创建与数据库表对应的实体类
  • 1、创建教师实体类
  • 2、创建学生实体类
  • 3、创建班级实体类
  • 三、创建班级映射器配置文件
  • 1、在resources/mapper目录里创建班级映射器配置文件ClazzMapper.xml
  • 四、修改MyBatis配置文件
  • 五、定义班级映射接口ClazzMapper
  • 六、创建测试类TestClazzMapper
  • 七、添加测试方法,运行测试类
  • 1、
  • 2、
  • 3、
  • 运行错误
  • 1、
  • 2、重构一下Teacher类
  • 小结


一、创建数据库表

1、创建教师表并插入数据

mybatis如何处理mysql关键字字段 mybatis的关联查询_插入数据

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;


INSERT INTO `t_teacher` VALUES ('1', '刘晓云');
INSERT INTO `t_teacher` VALUES ('2', '郑同华');
INSERT INTO `t_teacher` VALUES ('3', '李明军');

2、创建班级表并插入数据

mybatis如何处理mysql关键字字段 mybatis的关联查询_配置文件_02

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;

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');

3、创建学生表并插入数据

mybatis如何处理mysql关键字字段 mybatis的关联查询_插入数据_03

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;

INSERT INTO `t_student` VALUES ('1', '冬大为', '男','20','1');
INSERT INTO `t_student` VALUES ('2', '李芳玉', '女','20','1');
INSERT INTO `t_student` VALUES ('3', '郑大岺', '男','19','2');
INSERT INTO `t_student` VALUES ('4', '温晓辉', '男','18','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', '唐雨涵', '女','19','2');
INSERT INTO `t_student` VALUES ('9', '金雨欣', '女','20','1');

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

1、创建教师实体类

mybatis如何处理mysql关键字字段 mybatis的关联查询_配置文件_04

2、创建学生实体类

mybatis如何处理mysql关键字字段 mybatis的关联查询_mybatis_05

因为还没创建班级实体类,所以报错

3、创建班级实体类

mybatis如何处理mysql关键字字段 mybatis的关联查询_实体类_06


班级实体类创建后,学生类报错就没了

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

1、在resources/mapper目录里创建班级映射器配置文件ClazzMapper.xml

mybatis如何处理mysql关键字字段 mybatis的关联查询_插入数据_07

四、修改MyBatis配置文件

mybatis如何处理mysql关键字字段 mybatis的关联查询_插入数据_08

五、定义班级映射接口ClazzMapper

mybatis如何处理mysql关键字字段 mybatis的关联查询_配置文件_09

六、创建测试类TestClazzMapper

mybatis如何处理mysql关键字字段 mybatis的关联查询_插入数据_10

七、添加测试方法,运行测试类

1、

mybatis如何处理mysql关键字字段 mybatis的关联查询_配置文件_11

2、

mybatis如何处理mysql关键字字段 mybatis的关联查询_实体类_12

3、

mybatis如何处理mysql关键字字段 mybatis的关联查询_实体类_13

运行错误

1、

mybatis如何处理mysql关键字字段 mybatis的关联查询_mybatis_14

报错:Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is ‘mapper/ClazzMapper.xml’. Cause: org.apache.ibatis.builder.BuilderException: Error resolving JdbcType. Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.int

mybatis如何处理mysql关键字字段 mybatis的关联查询_实体类_15

删除后正常运行

mybatis如何处理mysql关键字字段 mybatis的关联查询_配置文件_16

2、重构一下Teacher类

由于操作失误,把Teacher打成Tercher

mybatis如何处理mysql关键字字段 mybatis的关联查询_配置文件_17

小结

注意细节注意细节注意细节