Java项目实战II基于Java+Spring Boot+MySQL的学院班级回忆录(源码+数据库+文档)

news2024/11/18 7:30:25

目录

一、前言

二、技术介绍

三、系统实现

四、文档参考

五、核心代码

六、源码获取


全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者

一、前言

在时光的长河中,班级的记忆如同璀璨星辰,照亮了我们共同的青春岁月。为了珍藏这些宝贵的回忆,我们精心打造了基于Java、Spring Boot与MySQL的班级回忆录系统。本系统旨在利用现代Web开发技术,为班级成员提供一个便捷、安全的平台,用于记录、分享与回味那些难忘的瞬间。通过简洁明了的界面设计和强大的数据管理功能,班级回忆录不仅能让每位成员轻松上传照片、视频、文字记录,还能实现内容的分类、搜索与评论互动。让我们携手,用代码编织记忆,让班级的温暖与欢笑永远镌刻在心。

二、技术介绍

语言:Java
使用框架:Spring Boot
前端技术:JS、Vue 、css3
开发工具:IDEA/Eclipse
数据库:MySQL 5.7/8.0
数据库管理工具:phpstudy/Navicat
JDK版本:jdk1.8
Maven: apache-maven 3.8.1-bin
前端环境:Node.Js 12\14\16

三、系统实现

用户信息管理
海滨学院班级回忆录的系统管理员可以管理用户,可以对用户信息修改删除以及查询操作。具体界面的展示如图5.1所示。

班委信息管理
系统管理员可以查看对班委信息进行添加,修改,删除以及查询操作。具体界面如图5.2所示。

班级信息管理
系统管理员可以对班级信息进行添加,修改,删除以及查询操作。界面如下图所示:

班级相册管理
系统管理员可以对班级相册进行添加修改删除操作。界面如下图所示:

用户和班委模块的实现
班委注册
班委需要注册信息。界面如下图所示:

班级信息管理
班委可以对班级信息进行添加修改删除。界面如下图所示:

加入班级
班委创建班级,管理员审核班级,最后用户才可以加入班级。界面如下图所示:

四、文档参考

五、核心代码

@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

六、源码获取

 感谢大家点赞、收藏、关注、评论

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis篇(应用案例 - 商户查询缓存)

目录 一、什么是缓存? 二、为什么要使用缓存 三、如何使用缓存 四、添加商户缓存 1. 缓存模型和思路 2. 代码如下 五、缓存更新策略 1. 内存淘汰 2. 超时剔除 3. 主动更新 六、数据库缓存不一致解决方案 1. 数据库缓存不一致解决方案 2. 数据库和缓存不一致采用什…

C++之STL—常用集合算法

set_intersection(iterator beg1, iterator end1, iterator beg2, iterator end2, iterator dest); // 求两个集合的交集 // **注意:两个集合必须是有序序列** // beg1 容器1开始迭代器 // end1 容器1结束迭代器 // beg2 容器2开始迭代器 // end2 容器2结束迭代器 //…

评估员工绩效的 5 个最佳实践

使用目标。 员工目标是设定期望和评估员工绩效的最有效、最客观的方式。由于目标是在年初或季度初由员工和经理共同制定的&#xff0c;因此双方可以在此过程中讨论他们期望在特定时期内完成的目标&#xff0c;并就成功的样子达成一致。 例如&#xff0c;如果内容营销人员的个人…

代码随想录_刷题笔记_第三次

字符串 — KMP算法&#xff08;理论&#xff09; **解决问题&#xff1a;**字符串匹配的问题&#xff08;eg&#xff1a;文本串 aabaabaaf 模式串 aabaaf 求在文本串中是否出现过模式串&#xff09; **暴力匹配&#xff1a;**当 b 和 f 不匹配时&#xff0c;整体向后跳一位再进…

婚恋交友小程序的设计思路与用户体验优化

在数字化时代&#xff0c;婚恋小程序作为一种新兴的婚恋交友平台&#xff0c;正逐渐成为单身人士寻找伴侣的重要工具。一个优秀的婚恋小程序不仅要有创新的设计思路&#xff0c;还要注重用户体验的优化。编辑h17711347205以下是婚恋小程序的设计思路与用户体验优化的详细阐述&a…

【设计模式】精通高级行为模式:揭秘状态、中介者及其它模式的深层机制

作者&#xff1a;后端小肥肠 &#x1f347; 我写过的文章中的相关代码放到了gitee&#xff0c;地址&#xff1a;xfc-fdw-cloud: 公共解决方案 &#x1f34a; 有疑问可私信或评论区联系我。 &#x1f951; 创作不易未经允许严禁转载。 姊妹篇&#xff1a; 【设计模式】万字详解…

PDD 各岗位薪资一览表

PDD 昨天聊到 PDD 可能会执行双休政&#xff0c;当中提到了「PDD 的年包在互联网行业中名列前茅」&#xff0c;不少同学一下子来兴趣了。 我这里也从脉脉中找到一份较新的 PDD 各岗位薪资一览表&#xff1a; 注意&#xff0c;这里的平均月薪的计算方式是年收入除以 12&#xff…

U盘打开提示要格式化:深度解析、恢复策略与预防之道

现象透视&#xff1a;U盘遭遇格式化预警 在日常的数字生活中&#xff0c;U盘作为便捷的数据存储与传输工具&#xff0c;扮演着不可或缺的角色。然而&#xff0c;当您满怀期待地插入U盘准备访问数据时&#xff0c;却可能遭遇系统突如其来的提示——“U盘需要格式化才能使用”。…

25考研咨询周开启,西安电子科技大学是否改考408??

学长这几天帮大家问了西安电子科技大学是否会从833、834、953改考为408&#xff1f; 西电老师回复&#xff1a;根据上级文件要求&#xff0c;招生简章以及专业目录会在网上报名开始前公布&#xff0c;专业课不会又大变动&#xff01; 因为大家安心复习即可&#xff0c;保证今…

C++编程基础:内联函数、auto关键字、基于范围的for循环和nullptr

内联函数 概念 以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。 如果在函数前增加inline关键字将其改成内联函数,在编译期间编译器会用函数体替换函数的调用。 特性 1.我们可以这…

肌筋膜炎可以自愈吗

肌筋膜炎是一种临床常见的疾病&#xff0c;主要表现为肌肉的筋膜发生无菌性炎症&#xff0c;可能由多种因素诱发&#xff0c;如风寒侵袭、疲劳、外伤、不良生活习惯及工作姿势等。关于肌筋膜炎是否可以自愈&#xff0c;主要取决于病情的严重程度和个体差异。 一、肌筋膜炎的自…

云计算Openstack

OpenStack是一个开源的云计算管理平台项目&#xff0c;由美国国家航空航天局&#xff08;NASA&#xff09;和Rackspace公司合作研发并发起&#xff0c;以Apache许可证授权。该项目旨在为公共及私有云的建设与管理提供软件支持&#xff0c;通过一系列相互协作的组件实现云计算服…

8610 顺序查找

### 思路 1. **创建顺序表**&#xff1a;从输入中读取元素个数和元素值&#xff0c;构造顺序表。 2. **顺序查找**&#xff1a;在顺序表中依次查找关键字&#xff0c;找到则返回位置&#xff0c;否则返回0。 ### 伪代码 1. **创建顺序表**&#xff1a; - 动态分配存储空间。…

统信服务器操作系统【虚拟机CPU核数显示不对】处理方案

虚拟机CPU核数显示不对的问题现象、问题原因以及解决方案 文章目录 一、问题现象二、问题原因三、解决方案 一、问题现象 新建虚拟机安装过程分配 CPU 个数为 20 个&#xff0c;进入系统终端执行 lscpu 命令查看 CPU 只显示 1 个问题。 如图下所示&#xff1a; 二、问题原因 …

设备管理平台-支持快速开发

技术路线&#xff08;同时支持前后端分离 / 前后端一体&#xff0c;可用于网关或者服务器部署&#xff09; 前端&#xff1a;layui-v2.9.17 后端&#xff1a;Net8.0 使用组件 Swagger、Jwt、Freesql、MiniExcel、MemoryCache(存储登录用户信息&#xff0c;代替HttpContext.S…

维修服务品牌小程序渠道客获

维修服务可覆盖家电电器、家具、手机电脑等多个细分类目&#xff0c;本地同城也有着不少目标用户且该行业客户有着一定粘性&#xff0c;比如服务完成递上一张名片/电话留存则有着较高复购率。 线上各行业便捷化程度提升&#xff0c;服务进店/上门都需要快捷完成&#xff0c;包…

又一挣钱副业:AI生成影视解说,半个月涨粉变现3.5W+!

这两年大家都在感叹生活不易&#xff0c;然而我想说的是&#xff0c;机会还是有的&#xff0c;但问题不在于有没有&#xff0c;而在于你是否能够认准机会&#xff0c;然后抓住它。 接触过很多咨询项目的人&#xff0c;发现很多人依旧停留在传统思维中&#xff0c;认为副业就是…

IP 地址大数据分析如何进行网络优化?

一、大数据分析在网络优化中的作用 1.流量分析 大数据分析可以对网络中的流量进行实时监测和分析&#xff0c;了解网络的使用情况和流量趋势。通过对流量数据的分析&#xff0c;可以发现网络中的瓶颈和问题&#xff0c;为网络优化提供依据。 2.用户行为分析 大数据分析可以…

学习JavaScript

js引入方式 1. 内部脚本 内部脚本&#xff1a;将JS代码定义在HTML页面中 JavaScript代码必须位于<script></script>标签之间在HTML文档中,可以在任意地方,放置任意数量的<script>一般会把脚本置于<body>元素的底部,可改善显示速度 弹出一个警告窗口…

Redis集群的两种方式

1.Redis集群 1.1 搭建主从集群 单节点Redis的并发能力是有上限的&#xff0c;要进一步提高Redis的并发能力&#xff0c;就需要搭建主从集群&#xff0c;实现读写的分离。一般情况下&#xff0c;主节点负责写操作&#xff0c;从节点负责读操作。而从节点如何得知数据呢&#xff…