MyBatis实现一对一,一对多关联查询 |
您所在的位置:网站首页 › mysql一对一一对多 › MyBatis实现一对一,一对多关联查询 |
文章目录
准备数据库表结构与数据新建Spring Boot项目在pom.xml文件中添加如下依赖在application.yml文件中进行数据库和mybatis配置新建老师类Teacher新建班级类Classes新建学生类Student新建ClassesMapper.xml映射文件Application类测试类测试结果
MyBatis如何实现一对一,一对多查询的? 可以通过关联查询实现。关联查询是几个表联合查询,只查询一次,通过在resultMap里面的association,collection节点配置一对一,一对多的类就可以完成 具体实现如下 准备数据库表结构与数据班级classes与老师teacher是一对一的关系 班级classes与学生student是一对多的关系 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for classes -- ---------------------------- DROP TABLE IF EXISTS `classes`; CREATE TABLE `classes` ( `c_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '班级id', `c_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '班级名', `teacher_id` int(11) NULL DEFAULT NULL COMMENT '老师id', PRIMARY KEY (`c_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic COMMENT '班级表'; -- ---------------------------- -- Records of classes -- ---------------------------- INSERT INTO `classes` VALUES (1, '高三2班', 1); INSERT INTO `classes` VALUES (2, '高一4班', 2); -- ---------------------------- -- Table structure for teacher -- ---------------------------- DROP TABLE IF EXISTS `teacher`; CREATE TABLE `teacher` ( `t_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '老师id', `t_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '老师姓名', PRIMARY KEY (`t_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic COMMENT '老师表'; -- ---------------------------- -- Records of teacher -- ---------------------------- INSERT INTO `teacher` VALUES (1, '老师张三'); INSERT INTO `teacher` VALUES (2, '老师李四'); SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for student -- ---------------------------- DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `s_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学生id', `s_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学生姓名', `class_id` int(11) NULL DEFAULT NULL COMMENT '班级id', PRIMARY KEY (`s_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic COMMENT '学生表'; -- ---------------------------- -- Records of student -- ---------------------------- INSERT INTO `student` VALUES (1, '学生小明', 1); INSERT INTO `student` VALUES (2, '学生小陈', 1); INSERT INTO `student` VALUES (3, '学生小张', 2); SET FOREIGN_KEY_CHECKS = 1;数据库准备工作完成后,使用IDEA新建一个Spring Boot项目,工程目录如下 新建Spring Boot项目test01()测试结果输出 ==> Preparing: select * from classes c,teacher t where c.teacher_id=t.t_id and c.c_id=? ==> Parameters: 1(Integer) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |