MyBatis多对一及一对多处理

 

目录

1、一对多的处理

多对一的理解:

1.1、数据库设计

1.2、搭建测试环境

1. IDEA安装Lombok插件

2. 引入Maven依赖

3. 在代码中增加注解

4. 编写实体类对应的Mapper接口 【两个】

5. 编写Mapper接口对应的 mapper.xml配置文件 【两个】

1.3、按查询嵌套处理

1. 给StudentMapper接口增加方法

2. 编写对应的Mapper文件

3. 编写完毕去Mybatis配置文件中,注册Mapper!

4. 注意点说明:

5. 测试

1.4 、按结果嵌套处理

1. 接口方法编写

2. 编写对应的mapper文件

3. 去mybatis-config文件中注入【此处应该处理过了】

4. 测试

1.5、小结

2、一对多的处理

一对多的理解:

2.1、实体类编写

2.2、按结果嵌套处理

1. TeacherMapper接口编写方法

2. 编写接口对应的Mapper配置文件

3. 将Mapper文件注册到MyBatis-config文件中

4. 测试

2.3、按查询嵌套处理

1. TeacherMapper接口编写方法

2. 编写接口对应的Mapper配置文件

3. 将Mapper文件注册到MyBatis-config文件中

4. 测试

2.4、小结

注意说明:


1、一对多的处理

多对一的理解:

  • 多个学生对应一个老师
  • 如果对于学生这边,就是一个多对一的现象,即从学生这边关联一个老师!

1.1、数据库设计

 

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

1.2、搭建测试环境

【Lombok的使用】

1. IDEA安装Lombok插件

2. 引入Maven依赖

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>

3. 在代码中增加注解

@Data //GET,SET,ToString,有参,无参构造
public class Teacher {
private int id;
private String name;
}
@Data
public class Student {
private int id;
private String name;
//多个学生可以是同一个老师,即多对一
private Teacher teacher;
}

4. 编写实体类对应的Mapper接口 【两个】

无论有没有需求,都应该写上,以备后来之需!

public interface StudentMapper {
}
public interface TeacherMapper {
}

5. 编写Mapper接口对应的 mapper.xml配置文件 【两个】

无论有没有需求,都应该写上,以备后来之需!

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kuang.mapper.StudentMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kuang.mapper.TeacherMapper">
</mapper>

1.3、按查询嵌套处理

1. 给StudentMapper接口增加方法

//获取所有学生及对应老师的信息
public List<Student> getStudents();
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值