SpringBoot FK-关联表查询(二)
上篇中已经介绍了如何创建外键,以下是实现的demo效果
从中我们可以查询出t_student中的学生信息以及其对应班级信息,并且可以根据id进行增删查改。
1、实体类代码
package com.ydf.demo.pojo;import lombok.Data;@Data
public class Student {private int stu_id; //学生主键private String stu_name; //学生姓名private int stu_classid; //班级表外键private Grade grades; //班级对象//注:如果没有配置lombok依赖 删除@Data注解 添加get set toString方法
}
package com.ydf.demo.pojo;import lombok.Data;@Data
public class Grade {private int class_id; //班级主键private String class_name; //班级名称
}
2、控制层代码
/***
* 查询所有学生相关信息
* @return
*/
@RequestMapping(value = "/")public String testModel(Model model){List<Student> studentList = studentService.selectStudent();System.out.println("学生所有信息===="+studentList);model.addAttribute("studentList",studentList);return "/index";
}
(service)服务层、(dao)数据访问层省略…
3、StudentMapper.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.ydf.demo.dao.StudentDao"><resultMap type="com.ydf.demo.pojo.Student" id="studentMap"><id column="stu_id" property="stu_id"/><result column="stu_name" property="stu_name"/><association property="grades" javaType="com.ydf.demo.pojo.Grade"><id column="did" property="class_id"/><id column="dname" property="class_name"/></association></resultMap><select id="selectStudent" resultMap="studentMap">select u.stu_id,u.stu_name,d.class_id did,d.class_name dnamefrom t_student u,t_class d where u.stu_classid=d.class_id</select></mapper>
sql语句
select u.stu_id,u.stu_name,d.class_id did,d.class_name dname from t_student u,t_class d where u.stu_classid=d.class_id
4、index.html
<!DOCTYPE html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>测试</title><link type="text/css" rel="stylesheet" th:href="@{/bootstrap-4.3.1-dist/css/bootstrap.css}" >
</head>
<body>
<table class="table table-hover"><thead class="thead-dark"><tr><th scope="col">#</th><th scope="col">姓名</th><th scope="col">所在班级</th><th scope="col">编辑</th></tr></thead><tbody><tr th:each="stu:${studentList}"><td th:text="${stu.stu_id}"></td><td th:text="${stu.stu_name}"></td><td th:text="${stu.grades.class_name}"></td><td><a th:href="@{'/stuInfo/'+${stu.stu_id}}">查看</a></td></tr></tbody>
</table>
<script th:src="@{/jquery-2.2.4/jquery.min.js}"></script>
<script th:src="@{/bootstrap-4.3.1-dist/js/bootstrap.js}"></script>
</body>
</html>
如果搭建的框架为SSM 则table表改为c标签的遍历循环,很简单。
<c:forEach items="${studentList}" var="stu">...省
</c:forEach>
SpringBoot FK-关联表查询(二)相关推荐
- Mybatis源码分析--关联表查询及延迟加载原理(二)
在上一篇博客Mybatis源码分析--关联表查询及延迟加载(一)中我们简单介绍了Mybatis的延迟加载的编程,接下来我们通过分析源码来分析一下Mybatis延迟加载的实现原理. 其实简单来说Myba ...
- mongodb关联表查询
1.首先自定义一个查询的Operation package com.pica.wx.bean;import com.mongodb.DBObject; import org.springframewo ...
- Mybatis实现关联表查询
Mybatis实现关联表查询 6.1. 一对一关联 1). 提出需求 根据班级 id 查询班级信息(带老师的信息) 2). 创建表和数据 [](javascript:void(0)
- MySQL 实现多张无关联表查询数据并分页
MySQL 实现多张无关联表查询数据并分页 1.功能需求 在三张没有主外键关联的表中取出自己想要的数据,并且分页. 2.数据库表结构 水果表: 坚果表: 饮料表: 主要用UNION AL UNION ...
- hibernate mysql 关联查询_hibernate 查询缓存,以及在关联表查询缓存下使用HQL,而不是sql去查询...
什么是查询缓存? 也就是如果开启了查询缓存, 在 没有使用二级缓存的情况下,会 缓存第一次查询出来的数据的id. 第二次查询的时候, 如果查询的参数和查询语句没有变化,那么就会使用 第一次查询的出来的 ...
- MyBatis学习总结(五)——实现关联表查询
2019独角兽企业重金招聘Python工程师标准>>> 一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里 ...
- MyBatis学习总结(5)——实现关联表查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...
- Mybatis系列(三):Mybatis实现关联表查询
原文链接:http://www.cnblogs.com/xdp-gacl/p/4264440.html 一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 ...
- 7.Mybatis关联表查询(这里主要讲的是一对一和一对多的关联查询)
视频地址:http://edu.51cto.com/sd/be679 在Mybatis中的管理表查询这里主要介绍的是一对一和一对多的关联查询的resultMap的管理配置查询,当然你也可以用包装类来实 ...
- Mybatis 实现关联表查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...
最新文章
- 零基础学习Python需要注意的几个点,Python培训机构排名
- tensorflow电子书(附下载链接)
- storm_常用命令
- EXPRESS.JS再出发
- GPU Gems 3
- jQuery-1.9.1源码分析系列(六) 延时对象应用——jQuery.ready
- MySQL中索引的分类和基本操作
- java 构造函数和_Java类和构造函数
- linux笔记_20150825_linux下的软件工具唠叨下
- (转)两大量化交易巨头“抱团取暖”:Virtu14亿美元收购骑士资本
- Linux安装libmodbus库
- 解决Windows 10环境下 Realtek声卡 台式机前面板插孔没有声音输出问题
- c++ ‘-DNODE_GYP_MODULE_NAME=libsass‘ ‘-DUSING_UV_SHARED=1‘ ‘-DUSING_V8_SHARED=1‘ ‘-DV8_DEPRECATION_
- 如何用java画一颗圣诞树
- udisk2阻止自动Mount某些设备
- okdownload下载mp4视频文件
- 广义拉格朗日函数的理解
- 程序员如何提高自己的编程水平?
- 朝韩危机-Python模拟导弹互射
- 小程序音乐播放器播放闪退
热门文章
- mysql安装失败net_mysql安装后.net程序运行出错的解决方法
- 信息学奥赛一本通 1193:吃糖果 | OpenJudge NOI 2.6 1944:吃糖果
- 信息学奥赛一本通(1094:与7无关的数)
- 信息学奥赛一本通(1014:与圆相关的计算)
- 53 MM配置-评估和科目设置-定义评估控制
- C语言 strcpy函数实现
- vue多选框点击其中一个控制div隐藏_Vue 零碎知识点
- linux那些事之gup_flags
- 大数据系统和分析技术综述(引用最多)
- [实验流体力学][Matlab] pi 定理的应用