栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于MyBatis 查询数据时属性中多对一的问题(多条数据对应一条数据)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于MyBatis 查询数据时属性中多对一的问题(多条数据对应一条数据)

数据准备

数据表

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

Teacher 类

public class Teacher {
  private int id;
  private String name;
}

Student 类

public class Student {
  private int id;
  private String name;

  private Teacher teacher;
}

查询接口

public interface StudentMapper {
  // 查询嵌套处理 - 子查询
  List getStudentList();

  // 结果嵌套处理
  List getStudentResult();
}
查询嵌套处理(子查询)

思路:先查询出所有学生的数据,再根据学生中关联老师的字段 tid 用一个子查询去查询老师的数据

association:处理对象

property:实体类中属性字段

column:查询结果中需要传递给子查询的字段

javaType:指定实体类

select:子查询SQL


  
  
    
    
    
    
  

  
    select * from teacher where id = #{id}
  
结果嵌套处理

思路:先把所有的信息一次性查询处理, 然后配置字段对应的实体类, 使用 association 配置

association:处理对象

property:实体类中属性字段

javaType:指定实体类


  
  
    
    
    
    
      
    
  

  

到此这篇关于MyBatis 查询数据时属性中多对一的问题(多条数据对应一条数据)的文章就介绍到这了,更多相关MyBatis 查询数据内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/129428.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号