mybatis一对多

MyBatis:一对多、多对一处理

喜欢而已 提交于 2020-02-28 02:05:35
多对一的处理 多对一的理解: 多个学生对应一个老师 如果对于学生这边,就是一个多对一的现象,即从学生这边关联一个老师! 数据库设计 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`

MyBatis-一对多、多对一

岁酱吖の 提交于 2020-02-26 07:22:11
一对多和多对一,是一个相对的概念。 以老师和学生为例,最常见的情况就是:一个老师教授很多学生。站在学生的角度,是很多学生被一个老师教,即很多学生关联一个老师(多对一);站在老师的角度,是一个老师教授很多学生,即一个老师有多个学生(一对多)。 在MyBatis中,处理多对一的问题使用 association标签(关联);处理一对多的问题使用 collection标签(集合)。 多对一 按照查询嵌套处理 查询所有的学生信息。 根据查询出来的学生的tid,寻找对应的老师。 < select id = " getStudent " resultMap = " StudentTeacher " > select * from mybatis_test.student; </ select > < resultMap id = " StudentTeacher " type = " Student " > < result column = " id " property = " id " /> < result column = " name " property = " name " /> < association column = " tid " property = " teacher " javaType = " Teacher " select = " getTeacher "

mybatis一对多 多对一 多对多

青春壹個敷衍的年華 提交于 2020-02-17 14:26:41
https://blog.csdn.net/AdminGuan/article/details/98952484 Mybatis的Mapper该如何编写 多对一 ?   很简单,就是在resultMap标签中配置<association></ collection >标签关联所属的用户实体 Mybatis的Mapper该如何编写 多对多 ?   不能直接用标签关联,为了解决这个问题,我们需要再用户和组之间建立一张关联的表,用于存储他们之间的对应关系,用户和组都通过这个关联的表,来查询他们之间的关系 <resultMap id="唯一的标识" type="映射的pojo对象"> <id column="表的主键字段或查询语句中的别名字段" jdbcType="字段类型" property="映射pojo对象的主键属性" /> <result column="表的一个字段(可以为任意表的一个字段)" jdbcType="字段类型" property="映射到pojo对象的一个属性"/> <collection property="pojo的集合属性" ofType="集合中的pojo对象"> <id column="集合中pojo对象对应的表的主键字段" jdbcType="字段类型" property="集合中pojo对象的主键属性" /> <result column=

MyBatis——多对一查询

亡梦爱人 提交于 2019-12-28 09:51:22
多对一的处理 多对一的理解: 多个学生对应一个老师 如果对于学生这边,就是一个多对一的现象,即从学生这边关联一个老师! 数据库设计 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

mybatis多对一处理

送分小仙女□ 提交于 2019-12-10 01:56:31
Mybatis 一对多的处理 我们可以把多对一比作为一个班级,班级有学生若干个,但老师只有一个。 要求把每个学生对应的老师全部查询出来: 多对一处理有两种 常用方式: 一. * 按结果查询 1.写两个查询,分别查询出老师和学生 2.字段名和数据库名称不相同,使用 "resultMap" <resultMap id="StudentTeacher" type="Student"> <result property="id" column="id"/> <result property="name" column="name"/> <!--复杂的属性,我们需要单独处 对象:association 集和:collection--> <association property="teacher" column="tid" javaType="Teacher" select="getTeacher"/> </resultMap> 二. 按照结果集嵌套 1.查询出所有学生 sql 建议写成: select s.id sid,s.name sname,t.name tname from student s,teacher t where s.tid=t.id 数据库名称和字段不一样 使用resultMap <resultMap id="StudentTeacher2" type="Student