时间:2021-05-19
MyBatis3.0 添加了association和collection标签专门用于对多个相关实体类数据进行级联查询,但仍不支持多个相关实体类数据的级联保存和级联删除操作
一、创建student、teacher和stu_teach_rel三张张表
DROP TABLE IF EXISTS `student`;CREATE TABLE `student` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, `gender` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `student` VALUES ('1', '刘德华', '55', '0');INSERT INTO `student` VALUES ('2', '张惠妹', '49', '1');INSERT INTO `student` VALUES ('3', '谢霆锋', '35', '0');INSERT INTO `student` VALUES ('4', '王菲', '47', '1');INSERT INTO `student` VALUES ('5', '汪峰', '48', '0');INSERT INTO `student` VALUES ('6', '章子怡', '36', '1');DROP TABLE IF EXISTS `teacher`;CREATE TABLE `teacher` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `gender` varchar(255) DEFAULT NULL, `subject` varchar(255) DEFAULT NULL, `degree` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `teacher` VALUES ('1', '王晶', '0', 'CHINESE', '大专');INSERT INTO `teacher` VALUES ('2', '冯小刚', '0', 'ENGLISH', '本科');INSERT INTO `teacher` VALUES ('3', '吴京', '0', 'MATHEMATICS', '大专');INSERT INTO `teacher` VALUES ('4', '王倦', '1', 'MATHEMATICS', '研究生');DROP TABLE IF EXISTS `stu_teach_rel`;CREATE TABLE `stu_teach_rel` ( `id` int(11) NOT NULL, `stu_id` int(11) NOT NULL, `teach_id` int(11) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `stu_teach_rel` VALUES ('1', '1', '1');INSERT INTO `stu_teach_rel` VALUES ('2', '2', '1');INSERT INTO `stu_teach_rel` VALUES ('3', '1', '2');INSERT INTO `stu_teach_rel` VALUES ('4', '2', '2');INSERT INTO `stu_teach_rel` VALUES ('5', '2', '3');INSERT INTO `stu_teach_rel` VALUES ('6', '3', '1');INSERT INTO `stu_teach_rel` VALUES ('7', '3', '2');INSERT INTO `stu_teach_rel` VALUES ('8', '1', '3');INSERT INTO `stu_teach_rel` VALUES ('9', '4', '1');INSERT INTO `stu_teach_rel` VALUES ('10', '4', '2');INSERT INTO `stu_teach_rel` VALUES ('11', '5', '3');INSERT INTO `stu_teach_rel` VALUES ('12', '5', '4');INSERT INTO `stu_teach_rel` VALUES ('13', '6', '1');INSERT INTO `stu_teach_rel` VALUES ('14', '6', '3');二、新建和表相关的实体类
package com.yihaomen.mybatis.model;import com.yihaomen.mybatis.enums.Gender;import java.util.List;public class Student { private String id; private String name; private int age; private Gender gender; private List<Teacher> teachers; setters&getters }package com.yihaomen.mybatis.model;import com.yihaomen.mybatis.enums.Gender;import com.yihaomen.mybatis.enums.Subject;import java.util.List;public class Teacher { private int id; private String name; private Gender gender; private Subject subject; private String degree; private List<Student> students; setters&getters}三、新建映射关系
student.xml
四、在configuration.xml中配置相关mapper
五、测试
以上这篇mybatis多对多关联实战教程(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
什么是多对多关联?Eloquent中一个模型就是一个数据表,数据表之间通常会有关联,多对多关联就是2个表之间相互有很多关联,比如说:一个表存放了用户数据,另一个
一对多关联映射映射原理一对多关联映射和多对一关联映射的映射原理是一致的,都是在多的一端加入一个外键,指向一的一端。关联关系都是由多端维护,只是在写映射时发生了变
Hibernate多对多关联映射(many-to-many)在操作和性能方面都不太理想,所以多对多的映射使用较少,实际使用中最好转换成一对多的对象模型;Hibe
这篇文章主要介绍了Mybatis一对多关联关系映射实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1、概念:MyBatis中的延迟加载,也称为懒加载,是指在进行表的关联查询时,按照设置延迟规则推迟对关联对象的select查询。例如在进行一对多查询的时候,只查