当前位置: 首页 > news >正文

山东大学软件学院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数据库的基本用法及配置方法,还学会了如何使用注解、接口和工具类来简化开发流程。为以后的实验打下了基础

相关文章:

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

实验题目: 用Java做简单查询(2学时) 实验内容 用API方式,做简单查询。 实验要求 在以下要求中选择至少2个,使用Java语言实现数据查询,最终把数据输出到前端界面。 (1)找出年龄小于20岁的所有学生 &…...

正态分布的奇妙性质:为什么奇数阶中心矩(odd central moments)为零?

正态分布的奇妙性质:为什么奇数阶矩为零? 正态分布(Normal Distribution)是统计学中最常见的分布之一,它的钟形曲线几乎无处不在,从身高体重到测量误差,都能看到它的影子。除了均值和方差这两个…...

【入门音视频】音视频基础知识

🌈前言🌈 这个系列在我学习过程中,对音视频知识归纳总结的笔记。因为音视频相关讲解非常稀少,所以我希望通过这个音视频系列,跟大家一起学习音视频,希望减少初学者在学习上的压力。同时希望也欢迎指出文章的…...

游戏引擎学习第120天

仓库:https://gitee.com/mrxiao_com/2d_game_3 上次回顾:周期计数代码 我们正在进行一个项目的代码优化工作,目标是提高性能。当前正在优化某个特定的代码片段,已经将其执行周期减少到48个周期。为了实现这一目标,我们设计了一个…...

【Qt之QQuickWidget】QML嵌入QWidget中

由于我项目开始使用Widgets,换公司后直接使用QML开发,没有了解过如何实现widget到qml过渡,恰逢面试时遇到一家公司希望从widget迁移到qml开发,询问相关实现,一时语塞,很尴尬,粗略研究并总结下。 对qwidget嵌…...

Vue 3 + Vite 项目中配置代理解决开发环境中跨域请求问题

在 Vue 3 Vite 项目中,配置代理是解决开发环境中跨域请求问题的常见方法。通过在 Vite 的配置文件中设置代理,可以将前端请求转发到后端服务器,从而避免浏览器的同源策略限制。 1. 创建 Vue 3 Vite 项目 首先,确保你已经安装了…...

Eureka、ZooKeeper 和 Nacos 之间的对比

Eureka、ZooKeeper 和 Nacos 都是分布式系统中常用的服务注册与发现工具,但它们的定位、功能和适用场景有所不同。作为一名开发者,理解它们之间的对比有助于选择合适的技术栈。以下从多个维度进行详细比较: 1. 基本概述 Eureka 来源&#xff…...

CSS中padding和margin属性的使用

在 HTML 中,padding 和 margin 是用于控制元素布局和间距的重要属性。 一、Padding(内边距) 定义:Padding 是指元素内容与元素边框之间的距离。它可以在元素内部创造出空白区域,使得内容不会紧贴着边框。 作用 增加元…...

【Python爬虫(49)】分布式爬虫:在新兴技术浪潮下的蜕变与展望

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取&#xff…...

网络安全-系统层攻击流程及防御措施

系统层攻击流程涉及多个阶段,攻击者通过逐步渗透以获取控制权或窃取数据。以下是详细的流程及防御措施: 1. 侦察(Reconnaissance) 信息收集: 主动扫描:使用工具如Nmap、Masscan扫描目标IP、开放端口、服务…...

centos 7 安装python3 及pycharm远程连接方法

安装openssl 使用pip3安装 virtualenv的时候会提示WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 这是因为缺少openssl 2.0以上版本 解决办法: 一、先确认版本 openssl version 二、安…...

【llm对话系统】如何快速开发一个支持openai接口的llm server呢

核心思路:使用轻量级 Web 框架,将 OpenAI API 请求转换为你现有推理脚本的输入格式,并将推理脚本的输出转换为 OpenAI API 的响应格式。 快速开发步骤列表: 选择合适的 Web 框架 (快速 & 简单): FastAPI: Python 最佳选择&am…...

跟着柳叶刀数字健康,学习如何通过病理切片预测分子分类对预后的影响|项目复现

小罗碎碎念 项目复现 今天和大家分享一个非常具有参考价值的项目,手把手带着大家复现一篇发表在柳叶刀数字健康的文章。 花了六个小时才完成的这篇推送,信息量非常大,遇到了很多报错问题,但是解决以后的感觉是非常爽的,先给大家展示一下最终的成果——在同一张切片上,通…...

deepseek_清华大学指导手册_pdf_1-5

deepseek_清华大学指导手册_pdf_1-5 无套路,无需关注,无需登录,无需app,直接下载: 下载地址 文件列表: 001_清华大学_DeepSeek从入门到精通.pdf 002_清华大学_DeepSeek如何赋能职场应用.pdf 003_清华大学…...

数据库(MySQL)二

MySQL 六、MySQL索引视图6.1 索引底层原理6.1.1 索引hash算法6.1.2 索引二叉树算法6.1.3 索引平衡二叉树算法6.1.4 索引BTREE树算法6.1.5 普通SQL全表扫描过程 6.2 索引分类6.2.1 按数据结构层次分类6.2.2 按字段数量层次分类6.2.3 按功能逻辑层次分类(面试题&#…...

第15届 蓝桥杯 C++编程青少组中/高级选拔赛 202401 真题答案及解析

第 1 题 【 单选题 】 表达式117 % 16 的结果是( )。 A:0 B:5 C:7 D:10 解析: % 是取模运算符,用于计算两个数相除后的余数。 计算 117 / 16,结果是 7,余数是 5。因此,117 % 16 = 5。答案: B 第 2 题 【 单选题 】 下列选项中,字符数组定义正确的是( …...

《AI大模型趣味实战》第10集:开发一个基于Mermaid的AI绘图网站

《AI大模型趣味实战》第10集:开发一个基于Mermaid的AI绘图网站 抱歉不按顺序出牌,先出一个第10集,第1到第9集慢慢来,后续也不会按顺序,总之凑满36集,可能或补充12集。 AI大模型趣味实战专栏 所有36个主题预…...

androidstudio 运行项目加载很慢,优化方法

一、Android Studio 运行项目加载缓慢可能由多种原因引起,以下是一些优化建议: 1. 升级硬件配置 内存:建议至少 8GB,16GB 或以上更佳。 SSD:使用 SSD 替代 HDD 以加快读写速度。 CPU:多核处理器有助于提…...

python脚本实现接入企微机器人

企业微信中的群聊机器人在日常办公中无处不在,对提升工作效率、保证消息及时送达提供了重要的技术保障。例如:DevOps助手、JIRA、构建通知等;还常常使用在运维服务器中配合Prometheus监控体系及时发送告警信息等 文章目录 源码示例Demo源码处…...

《论面向对象的建模及应用》审题技巧 - 系统架构设计师

论面向对象的建模及应用写作框架 一、考点概述 本论题“论面向对象的建模及应用”主要考察软件测试工程师对面向对象建模技术的理解和应用能力。具体涵盖以下几个方面: 面向对象建模的基本概念 :这包括理解面向对象编程(OOP)的基…...

mysql如何配置插件以提升查询性能_安装启用memcached插件

MySQL 8.0.29起已彻底移除daemon_memcached插件,因其与InnoDB缓存重叠、维护成本高且功能受限;推荐改用Redis应用层缓存或优化InnoDB配置与SQL索引。memcached插件在 MySQL 8.0 已被移除,无法安装MySQL 官方从 8.0.29 版本起彻底删除了 libme…...

别再只用VAE或GAN了!手把手教你用PyTorch复现VAE-GAN,生成更清晰的人脸图像

突破生成模型边界:PyTorch实战VAE-GAN融合架构与CelebA人脸生成优化 当我们在CelebA数据集上观察VAE生成的模糊人脸与GAN产生的扭曲五官时,一个关键问题浮现:是否存在兼具两者优势的解决方案?2016年ICML论文《Autoencoding beyond…...

5分钟掌握微信数据库密钥提取:Sharp-dumpkey终极指南

5分钟掌握微信数据库密钥提取:Sharp-dumpkey终极指南 【免费下载链接】Sharp-dumpkey 基于C#实现的获取微信数据库密钥的小工具 项目地址: https://gitcode.com/gh_mirrors/sh/Sharp-dumpkey 当你需要迁移微信聊天记录或恢复误删的重要对话时,是否…...

【2024最硬核工程能力】:为什么头部科技公司正紧急替换CI/CD工具链?答案藏在这7个自愈触发条件与4层语义理解模型中

第一章:智能代码生成与代码自愈结合 2026奇点智能技术大会(https://ml-summit.org) 智能代码生成与代码自愈并非孤立能力,而是构成现代AI编程闭环的双引擎:前者聚焦于“从意图到可运行代码”的高效构建,后者专注于“从缺陷到稳定…...

信息学奥赛一本通 1248:Dungeon Master | 三维迷宫搜索算法精讲

1. 三维迷宫搜索算法入门:从Dungeon Master开始 第一次看到《Dungeon Master》这个题目时,我完全被三维迷宫的概念震撼到了。相比常见的二维迷宫,这个题目要求我们在一个立体的空间中寻找最短路径,就像被困在一个真实的地牢里一样…...

Visual C++ Redistributable AIO:一站式解决Windows DLL依赖问题的最佳方案

Visual C Redistributable AIO:一站式解决Windows DLL依赖问题的最佳方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经在运行某些软件时…...

嵌入式工程师避坑指南:RK817 PMU在无电池场景下的5个关键配置点

嵌入式工程师避坑指南:RK817 PMU在无电池场景下的5个关键配置点 RK3568平台凭借其出色的性能和丰富的接口资源,已成为嵌入式领域的热门选择。然而在实际项目中,许多工程师在使用RK817电源管理单元(PMU)时,常…...

艾尔登法环存档备份迁移终极指南:3分钟安全转移你的游戏进度

艾尔登法环存档备份迁移终极指南:3分钟安全转移你的游戏进度 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier 艾尔登法环存档管理是每个褪色者都需要掌握的重要技能。EldenRingSaveCopier 是一个专…...

零成本掌握专业音频编辑:Audacity免费音频处理终极指南

零成本掌握专业音频编辑:Audacity免费音频处理终极指南 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 在数字内容创作蓬勃发展的今天,高质量的音频处理已成为专业创作的标配。然而&#x…...

为什么92%的AI编码团队在2026年Q1已启用动态回滚建议?,深度拆解奇点大会披露的实时语义追溯引擎架构

第一章:2026奇点智能技术大会:AI代码回滚建议 2026奇点智能技术大会(https://ml-summit.org) 在2026奇点智能技术大会上,AI驱动的代码变更风险识别与自动化回滚机制成为核心议题。与传统基于Git提交哈希的手动回滚不同,本届大会…...