Mybatis结果集映射一对多简单入门教程

本文给大家介绍Mybatis结果集映射一对多简单入门教程,包括搭建数据库环境的过程,idea搭建maven项目的代码详解,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧

Mybatis 一对多 简单入门 易懂

搭建数据库环境

student 表

 DROP TABLE IF EXISTS `student_2`; CREATE TABLE `student_2`  ( `id` int(10) NOT NULL, `name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `tid` int(10) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, INDEX `fktid`(`tid`) USING BTREE, CONSTRAINT `fktid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; INSERT INTO `student_2` VALUES (1, '小明', 1); INSERT INTO `student_2` VALUES (2, '邱ss', 2); INSERT INTO `student_2` VALUES (3, '邱大哥', 3); INSERT INTO `student_2` VALUES (4, '杨大哥', 1); INSERT INTO `student_2` VALUES (5, '杨ss', 2);

teacher

 DROP TABLE IF EXISTS `teacher`; CREATE TABLE `teacher`  ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of teacher -- ---------------------------- INSERT INTO `teacher` VALUES (1, '小王老师'); INSERT INTO `teacher` VALUES (2, '小李老师'); INSERT INTO `teacher` VALUES (3, '小黑老师');

idea 搭建maven 项目 (mybatis-demo)

项目结构

在这里插入图片描述

导入依赖

   mysqlmysql-connector-java5.1.48 org.projectlomboklombok1.18.20 org.mybatismybatis3.5.6 junitjunit4.11test

mysql 配置文件

 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/ssm-study?useSSL=false jdbc.username=root jdbc.password=123456

创建pojo 类

学生

 /** * @Author: crush * @Date: 2021-06-17 18:23 * version 1.0 */ public class Student { /** * 学生id */ private Integer id; /** * xueshneg xingming */ private String name; /** * 老师id */ private Integer tid; }

老师

 /** * @Author: crush * @Date: 2021-06-17 18:23 * version 1.0 */ public class Teacher { /** * 老师id */ private Integer id; /** * 老师的姓名 */ private String name; /** * 每个老师是不是有很多学生 */ private List students; }

写一个mybatis 的工具类

 /** * @author crush */ public class MybatisUtil { private static SqlSessionFactory sqlSessionFactory; static { try { String resource="mybatis-config.xml"; InputStream inputStream= Resources.getResourceAsStream(resource); sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } public static SqlSession getSession(){ return sqlSessionFactory.openSession(true); } }

写一个TeacherMapper

 import com.crush.pojo.Teacher; import org.apache.ibatis.annotations.Param; import java.util.List; public interface TeacherMapper { // 获取老师 List getTeacher(); //获取指定老师下的所有学生及老师的信息 Teacher getTeacher2(@Param("tid") Integer id); //获取指定老师下的所有学生及老师的信息 Teacher getTeacher3(@Param("tid") Integer id); }

写一个TeacherMapper.xml文件

      

mybatis-config.xml 文件

         

测试:

 /** * @Author: crush * @Date: 2021-06-17 18:22 * version 1.0 */ public class MyTest { @Test public void getTeacher(){ SqlSession session = MybatisUtil.getSession(); TeacherMapper mapper = session.getMapper(TeacherMapper.class); List teacher = mapper.getTeacher(); System.out.println(teacher); session.close(); } @Test public  void getTeacher2(){ SqlSession session = MybatisUtil.getSession(); TeacherMapper mapper = session.getMapper(TeacherMapper.class); Teacher teacher2 = mapper.getTeacher2(1); System.out.println(teacher2); session.close(); } @Test public  void getTeacher3(){ SqlSession session = MybatisUtil.getSession(); TeacherMapper mapper = session.getMapper(TeacherMapper.class); Teacher teacher2 = mapper.getTeacher3(1); System.out.println(teacher2); session.close(); } }

以上就是Mybatis结果集映射一对多简单入门教程的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java