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

网友投稿 219 2023-01-05

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

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)

项目结构

导入依赖

mysql

mysql-connector-java

5.1.48

org.projectlombok

lombok

1.18.20

org.mybatis

mybatis

3.5.6

junit

junit

4.11

test

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文件

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from teacher

select s.id sid,s.name sname,t.name tname,

t.id tid from student_2 s,teacher t where s.tid=t.id and t.id=#{tid}

select * from teacher where id=#{tid}

select * from student_2 where tid=#{tid}

mybatis-config.xml 文件

"http://mybatis.org/dtd/mybatis-3-config.dtd">

测试:

/**

* @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结果集映射一对多 的详细内容,更多关于Mybatis结果集映射的资料请关注我们其它相关文章!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:获取网站的api接口(获取网站的api接口地址)
下一篇:上海大件快递物流查询单号(上海大件快递物流查询单号)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~