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

http://www.lryc.cn/news/542306.html

相关文章:

  • 正态分布的奇妙性质:为什么奇数阶中心矩(odd central moments)为零?
  • 【入门音视频】音视频基础知识
  • 游戏引擎学习第120天
  • 【Qt之QQuickWidget】QML嵌入QWidget中
  • Vue 3 + Vite 项目中配置代理解决开发环境中跨域请求问题
  • Eureka、ZooKeeper 和 Nacos 之间的对比
  • CSS中padding和margin属性的使用
  • 【Python爬虫(49)】分布式爬虫:在新兴技术浪潮下的蜕变与展望
  • 网络安全-系统层攻击流程及防御措施
  • centos 7 安装python3 及pycharm远程连接方法
  • 【llm对话系统】如何快速开发一个支持openai接口的llm server呢
  • 跟着柳叶刀数字健康,学习如何通过病理切片预测分子分类对预后的影响|项目复现
  • deepseek_清华大学指导手册_pdf_1-5
  • 数据库(MySQL)二
  • 第15届 蓝桥杯 C++编程青少组中/高级选拔赛 202401 真题答案及解析
  • 《AI大模型趣味实战》第10集:开发一个基于Mermaid的AI绘图网站
  • androidstudio 运行项目加载很慢,优化方法
  • python脚本实现接入企微机器人
  • 《论面向对象的建模及应用》审题技巧 - 系统架构设计师
  • 【Godot4.3】自定义圆角容器
  • 开源RAG主流框架有哪些?如何选型?
  • 【Microsoft PowerPoint for Mac】2分钟配置-MAC一键删除PPT中的所有备注
  • 【UML】统一建模语言 UML 基础
  • AWS S3深度解析:十大核心应用场景与高可用架构设计实践
  • 如何用Python 3自动打开exe程序
  • 计算机网络之路由协议(自治系统)
  • MFC笔记:本专栏课件
  • springboot集成jackson-dataformat-xml实现发送XML请求和XML响应参数处理
  • Spring Cloud Gateway 网关的使用
  • 超高速工业相机的应用