山东大学软件学院nosql实验三

实验题目:

用Java做简单查询(2学时) 

实验内容

用API方式,做简单查询。

实验要求

在以下要求中选择至少2个,使用Java语言实现数据查询,最终把数据输出到前端界面。

(1)找出年龄小于20岁的所有学生

(2)找出年龄小于20岁且是软件学院的学生

(3)找出学生关系中的所有学生

(4)求所有学生的姓名、年龄

(5)找出年龄小于20岁的学生的姓名、性别

(6)检索所有课程情况

(7)检索先行课号为“300001”的课程名

(8)找出年龄大于50岁的老师

(9)找出所有的男老师

(10)找出所有在CS学院的老师

实验步骤与内容:

后端基于Springboot框架搭建,使用Java实现数据查询,并将结果返回给前端展示。前端展示效果见4.搭建前端页面。本实验实现了所有的10个查询题目,但因为原理差不多,所以只详细解释一个,在最后会给出所有的结果展示。

一、后端

  1. 首先建立springboot项目,并且与MongoDB进行连接,具体操作为:在application.properties文件中添加MongoDB配置

并且连接数据库user202200300224:

检查是否连接成功,在query console中新建查询db.course.find()查出相应结果,表示连接成功:

  1. 为student、course、studentcourse、teacher、teachercourse建立实体model类,在此处以student类为例(@Id注解用于标识MongoDB中的_id字段):

  1. 为每个类创建Repository,用于封装数据查询和存储的逻辑。创建studentRepository类,里为面是所有查询语句的方法。

对于findAll方法和findByXX等方法,MongoRepository已经集成,直接调用即可。同时也可用@Query注解实现自定义查询。

  1. 创建Service包,用于完成业务逻辑,它的作用是调用Repository提供的方法,并且为Controller层提供接口。

  1. 创建controller类,用于前后端交互,接收前端请求,并且为前端返回具体数据

  • 前端项目搭建:

前端的任务就是完成数据的展示工作,是以表格的形式展示,因为本次实验涉及到student、teacher、course三个类别的查询,所以建立了三个界面来分别展示部分查询

具体效果为:

实验结果与分析:

本次实验正式进入正篇,开始运用前端展示相应的查询数据。在对Java与MongoDB的集成有了一定的了解后,我搭建了用Spring Boot和Vue3的前后端分离项目,并成功完成了10个查询,在此过程中,遇到了许多技术难题,但都通过持续的努力得以解决。对于大多数查询需求,我利用MongoDB的查询语法,如 findAll 来检索所有文档,或findByXxx来执行条件查询,取得了良好的效果。在处理特定需求4和5时,使用query字段进行查询,使用find({}, {"NAME":1, "AGE":1})这种样式即可实现特定查询

通过本次实验,我再次拾起了Java课设和web课设所学的内容,重新掌握了Spring Boot框架,也学会了MongoDB数据库的基本用法及配置方法,还学会了如何使用注解、接口和工具类来简化开发流程。为以后的实验打下了基础

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/976088.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【NLP 38、激活函数 ④ GELU激活函数】

别盲目,别着急,慢慢走,没事的 —— 25.2.24 一、定义与数学表达式 GELU(Gaussian Error Linear Unit,高斯误差线性单元)是一种结合概率分布的非线性激活函数,其核心思想是通过输入值服从标准正…

突破性能极限:DeepSeek开源FlashMLA解码内核技术解析

引言:大模型时代的推理加速革命 在生成式AI大行其道的今天,如何提升大语言模型的推理效率已成为行业焦点。DeepSeek团队最新开源的FlashMLA项目凭借其惊人的性能表现引发关注——在H800 GPU上实现580 TFLOPS计算性能,这正是大模型推理优化的…

touchgfx的工作机制

touchgfx的工作机制 一.MVP软件架构 MVP的全称为Model-View-Presenter Model: 就是数据部分,在整个touchgfx应用中,只有一个Model类实例对象,它为所有的Screen屏幕界面服务,可以理解成是一个全局变量区,同时它还负责和后端系统通信 View: 就是UI界面部分,对应于View类,在整…

网站搭建wp

前置准备工作 需要下载Git,note.js,在官网上可以搜索并安装 搭建过程 这里借助hexo工具 1. 本地博客搭建 首先创建本地文件夹,并在该文件夹里面创建一个叫做hexo的文件夹在该文件夹中选择Git Bash 进入hexo官网将五条指令用bash运行运行…

现场可以通过手机或者pad实时拍照上传到大屏幕的照片墙现场大屏电子照片墙功能

现场可以通过手机或者pad实时拍照上传到大屏幕的照片墙现场大屏电子照片墙功能,每个人都可以通过手机实时拍照上传到大屏幕上,同时还可以发布留言内容,屏幕上会同步滚动播放展示所有人的照片和留言。相比校传统的照片直播功能更加灵活方便,而…

MySQL 主从复制原理及其工作过程

一、MySQL主从复制原理 MySQL 主从复制是一种将数据从一个 MySQL 数据库服务器(主服务器,Master)复制到一个或多个 MySQL 数据库服务器(从服务器,Slave)的技术。以下简述其原理,主要包含三个核…

【蓝桥杯单片机】第十三届省赛第二场

一、真题 二、模块构建 1.编写初始化函数(init.c) void Cls_Peripheral(void); 关闭led led对应的锁存器由Y4C控制关闭蜂鸣器和继电器 2.编写LED函数(led.c) void Led_Disp(unsigned char ucLed); 将ucLed取反的值赋给P0 开启锁存器 关闭锁存…

Android Coil3缩略图、默认占位图placeholder、error加载错误显示,Kotlin(3)

Android Coil3缩略图、默认占位图placeholder、error加载错误显示,Kotlin(3) Android Coil3缩略图、默认占位图placeholder、error加载错误显示,Kotlin(1)-CSDN博客文章浏览阅读667次,点赞18次&…

MariaDB 历史版本下载地址 —— 筑梦之路

MariaDB 官方yum源里面只有目前在维护的版本,而有时候对于老项目来说还是需要老版本的rpm包,国内很多镜像站都是同步的官方仓库,因此下载老版本也不好找,这里主要记录下从哪里可以下载到历史版本的MariaDB rpm包。 1. 官方归档网…

RoCBert:具有多模态对比预训练的健壮中文BERT

摘要 大规模预训练语言模型在自然语言处理(NLP)任务上取得了最新的最优结果(SOTA)。然而,这些模型容易受到对抗攻击的影响,尤其是对于表意文字语言(如中文)。 在本研究中&#xff0…

20250212:https通信

1:防止DNS劫持:使用 https 进行通信。 因为是SDK授权开发,需要尽量压缩so库文件和三方依赖。所以第一想法是使用 head only 的 cpp-httplib 进行开发。 cpp-httplib 需要 SSL 版本是 3.0及以上。但本地已经在开发使用的是1.0.2a版本,不满足需求。 方案1:升级OpenSSL 将Op…

数据驱动未来!天合光能与永洪科技携手开启数字化新篇章

在信息化时代的今天,企业间的竞争早就超越了传统产品与服务的范畴,新的核心竞争力即——数据处理能力和信息技术的应用。作为数据技术领域的领军者,永洪科技凭借其深厚的技术积累和丰富的行业经验,成功助力天合光能实现数字化升级…

Android之图片保存相册及分享图片

文章目录 前言一、效果图二、实现步骤1.引入依赖库2.二维码生成3.布局转图片保存或者分享 总结 前言 其实现在很多分享都是我们自定义的,更多的是在界面加了很多东西,然后把整个界面转成图片保存相册和分享,而且现在分享都不需要第三方&…

政安晨的AI大模型训练实践 十一 - 基于千问的Qwen2.5-VL-3B-Instruct 多模态模型进行微调参数认知 2

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 微调一个大模型要准备的背景知识还是很多的。 本节我们介绍训练阶段的一些主要参数。 这是训…

心理咨询小程序的未来发展

还在眼巴巴看着心理咨询行业的巨大蛋糕却无从下口?今天就来聊聊心理咨询小程序的无限潜力 据统计,全球超 10 亿人受精神心理问题困扰,国内心理健康问题也日益突出,心理咨询需求猛增。可传统心理咨询预约难,费用高&…

反欺诈平台|基于Springboot+vue的反欺诈平台(源码+数据库+文档)​

目录 基于Springbootvue的反欺诈平台系统 一、前言 二、系统设计 三、系统功能设计 5.1用户信息管理 5.2 反诈视频管理 5.3视频收藏管理 5.1案例分析管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介…

P8772 [蓝桥杯 2022 省 A] 求和--简单题的陷阱——(不开long long见祖宗!!!

P8772 [蓝桥杯 2022 省 A] 求和 题目分析代码 题目 分析 cnmmd 没什么好分析的&#xff0c;n≤210^5&#xff0c;tmd 我拿着a[100010]算半天 简单题的陷阱- - 代码 #include <iostream> #include <vector> #include <string> #include <algorithm> #i…

如何让传统制造企业从0到1实现数字化突破?

随着全球制造业不断向智能化、数字化转型&#xff0c;传统制造企业面临着前所未有的机遇与挑战。数字化转型不仅是技术的革新&#xff0c;更是管理、文化、业务流程等全方位的变革。从零开始&#xff0c;如何带领一家传统制造企业走向数字化突破&#xff0c;是许多企业领导者面…

TMDS视频编解码算法

因为使用的是DDR进行传输&#xff0c;即双倍频率采样&#xff0c;故时钟只用是并行数据数据的5倍&#xff0c;而不是10倍。 TMDS算法流程&#xff1a; 视频编码TMDS算法流程实现&#xff1a; timescale 1 ps / 1ps //DVI编码通常用于视频传输&#xff0c;将并行数据转换为适合…

SpringBoot源码解析(十一):准备应用上下文

SpringBoot源码系列文章 SpringBoot源码解析(一)&#xff1a;SpringApplication构造方法 SpringBoot源码解析(二)&#xff1a;引导上下文DefaultBootstrapContext SpringBoot源码解析(三)&#xff1a;启动开始阶段 SpringBoot源码解析(四)&#xff1a;解析应用参数args Sp…