Java项目:Springboot体育器材管理系统

news/2024/5/6 5:09:19/文章来源:https://blog.csdn.net/m0_74967853/article/details/128435537

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

体育器材管理系统主要包含以下功能:
登录注册;
体育器材管理:显示器材表、显示价目表、显示供应商表;
器材借还管理:借用申请、归还申请;
管理员个人信息:对当前管理员的信息进行查看或修改
器材报废登记:登记报废器材,生成、修改以及导出采购清单

信息录入:用户信息录入以及体育器材信息录入

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
5.数据库:MySql 5.7版本;

6.是否Maven项目:是;

技术栈

1. 后端:SpringBoot+Mybatis

2. 前端:HTML+CSS+Bootstrap+jQuery

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;

3. 将项目中application.properties配置文件中的数据库配置改为自己的配置;

4. 运行项目,前台地址:http://localhost:8080/web/home.html

运行截图

代码相关

器材管理控制器

@RestController
@RequestMapping("/equ")
public class EquController extends BaseController{@AutowiredEquServiceImpl service;@AutowiredEquMapper mapper;@AutowiredManagerMapper managerMapper;@RequestMapping("/delEquById")public JsonResult<Void> delEqu(Integer id){System.out.println(id);if ( service.delEqu(id)==1){return new JsonResult<>(OK);}else {return new JsonResult<>("shibai");}}@RequestMapping("/delEmpById")public JsonResult<Void> delEmp(Integer id){service.delEmp(id);return new JsonResult<>(OK);}@RequestMapping("/updateEmpById")public JsonResult<Void> updateEmp(Emp emp){service.updateEmp(emp);return new JsonResult<>(OK);}@RequestMapping("/updateEquById")public JsonResult<Void> updateEqu(Equipment equipment){service.updateEqu(equipment);return new JsonResult<>(OK);}@RequestMapping("/showlist")public JsonResult<List<Equipment>> showlist(Integer page){List<Equipment> list=mapper.orderequlist(page);for (Equipment map : list) {System.err.println(map);}return new JsonResult<>(OK,list);}@RequestMapping("/showprice")public JsonResult<List<Equipment>> showprice(Integer page){System.err.println("showprice执行");List<Equipment> list=mapper.pricelist(page);for (Equipment map : list) {System.err.println(map);}System.err.println("showprice执行完毕");return new JsonResult<>(OK,list);}@RequestMapping("/showsup")public JsonResult<List<Equipment>> showsup(Integer page){List<Equipment> list=mapper.suplist(page);for (Equipment map : list) {System.err.println(map);}return new JsonResult<>(OK,list);}@RequestMapping("/showEquHistory")public JsonResult<List<Equipment>> showEquHistory(Integer page){List<Equipment> list=mapper.equhistory(page);for (Equipment map : list) {System.err.println(map);}return new JsonResult<>(OK,list);}Equipment equipment=new Equipment();Emp emp=new Emp();@RequestMapping("/postNotes")public JsonResult<Void> postNote(Integer id, String key){System.out.println(id+key);if (key.equals("equ")){System.out.println(id);equipment=mapper.findEquById(id);System.out.println(equipment);}if (key.equals("emp")){System.out.println(id);emp=managerMapper.findEmpById(id);System.out.println(emp);}return new JsonResult<>(OK);}@RequestMapping("/getEquNotes")public JsonResult<Equipment> getEquNote(){System.out.println(equipment);return new JsonResult<>(OK,equipment);}@RequestMapping("/getEmpNotes")public JsonResult<Emp> getEmpNotes(){System.out.println(emp);return new JsonResult<>(OK,emp);}@RequestMapping("/addEqu")public JsonResult<String> addEqu(Equipment equipment){System.out.println(equipment);if (service.addEqu(equipment)!=1){return new JsonResult<>("添加失败,请重试");}return new JsonResult<>(OK);}@RequestMapping("/addEmp")public JsonResult<String> addEmp(Emp emp){System.out.println(emp);if (service.addEmp(emp)!=1){return new JsonResult<>("添加失败,请重试");}return new JsonResult<>(OK);}/*** 允许上传的文件类型的集合*/private static final List<String> AVATAR_TYPES = new ArrayList<>();static {AVATAR_TYPES.add("application/vnd.ms-excel");AVATAR_TYPES.add("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");}@PostMapping("/uploadequ")public JsonResult<String> uploadEqu(@RequestParam("file") MultipartFile file, HttpSession session) {// 日志System.err.println("UserController.changeAvatar()");// 判断文件是否为空boolean isEmpty = file.isEmpty();System.err.println("\tisEmpty=" + isEmpty);if (isEmpty) {System.out.println("empty");throw new FileTypeException("上传失败!文件不能为空:" + AVATAR_TYPES);}// 获取文件的MIME类型String contentType = file.getContentType();System.err.println("\tcontentType=" + contentType);// 判断上传的文件类型是否符合:excel/xlsif (!AVATAR_TYPES.contains(contentType)) {throw new FileTypeException("上传失败!仅允许上传以下类型的文件:" + AVATAR_TYPES);}// 获取原始文件名(客户端设备中的文件名)String originalFilename= file.getOriginalFilename();System.err.println("\toriginalFilename=" + originalFilename);if (originalFilename=="") {System.out.println("empty");throw new FileTypeException("上传失败!文件不能为空:" + AVATAR_TYPES);}// 将文件上传到哪个文件夹String parent = session.getServletContext().getRealPath("upload");System.err.println("\tupload path=" + parent);File dir = new File(parent);if (!dir.exists()) {dir.mkdirs();}// 保存上传的文件时使用的文件名String filename = ""+ System.currentTimeMillis()+ System.nanoTime();String suffix = "";int beginIndex = originalFilename.lastIndexOf(".");if (beginIndex >= 1) {suffix = originalFilename.substring(beginIndex);}String child = filename + suffix;// 将客户端上传的文件保存到服务器端File dest = new File(parent, child);try {file.transferTo(dest);} catch (IllegalStateException e) {System.out.println("上传失败!您的文件的状态异常!");} catch (IOException e) {System.out.println("上传失败!读写文件时出现错误,请重新上传!");}// 将保存的文件的路径记录到数据库中String avatar = "\\" + child;System.err.println("\tavatar path=" + avatar);if (originalFilename.equals("器材表.xls")||originalFilename.equals("器材表.xlsx")){service.ExcelReadEqu(parent,avatar);System.err.println("器材表录入成功");}else {throw new FileUploadException("请按要求规范文件名");}System.err.println(OK);return new JsonResult<>(OK);}}

管理端控制器

@RestController
@RequestMapping("/users")
public class ManagerController extends BaseController{@ResourceIManagerService managerService;@AutowiredManagerMapper manager;//登录@RequestMapping("/logininfo")public JsonResult<Void> logininfo(HttpSession session){session.removeAttribute("num");return  new JsonResult<>(OK);}@AutowiredEmailSend emailSend;private String realKey="";//获取验证码@RequestMapping("/sendRegKey")public JsonResult<String> sendVerificationCode(String num){System.out.println(num);realKey= emailSend.KeyCreated();if (emailSend.RegisterManager(realKey,managerService.findRegPwd(num))==1){return new JsonResult<>(OK);}return new JsonResult<>(1000,"发送失败,请重试");}//注册//http//localhost:8080/users/register?username=zm&password=1234@RequestMapping("/register")public JsonResult<String> register(Manager manager,String key){System.out.println("key"+key);System.out.println("realkey"+realKey);if (key.equals(realKey)){System.out.println("==");managerService.reg(manager);System.out.println("success");return new JsonResult<>(OK);}else {System.out.println("false");return new JsonResult<>(1111);}}@RequestMapping("/loginnum")public JsonResult<String> loginnum( HttpSession session){String managernum=getNumFromSession(session);System.err.println(managernum);return new JsonResult<>(OK,managernum);}private String VerificationCode="";@RequestMapping("/sendFindPwd")public JsonResult<String> sendFindPwd(String num){System.out.println(num);VerificationCode=emailSend.KeyCreated();System.out.println(VerificationCode);if (emailSend.RegisterManager(VerificationCode,managerService.findPwd(num))==1){return new JsonResult<>(OK);}return new JsonResult<>(1000,"发送失败,请重试");}@RequestMapping("/backPwd")public JsonResult<String> findPwd(String num,String key){System.out.println("key:"+key);System.out.println("VerificationCode:"+VerificationCode);if (!VerificationCode.equals(key)){return new JsonResult<>(1111,"验证码错误");}return new JsonResult<>(OK);}@RequestMapping("/resetPwd")public JsonResult<String> resetPwd(String num,String password){if (managerService.resetPwd(num,password)!=1){return new JsonResult<>(11111,"重置失败,请重试");}return new JsonResult<>(OK);}//登录@RequestMapping("/login")public JsonResult<String> login(String num, String password, HttpSession session){Manager manager=managerService.login(num,password);session.setAttribute("mid",manager.getMid());session.setAttribute("num",manager.getNum());String managernum=getNumFromSession(session);System.err.println(managernum);return new JsonResult<>(OK,managernum);}@RequestMapping("/showupdate")public JsonResult<Manager> showupdate(HttpSession session){Manager info=manager.findByNum(getNumFromSession(session));return new JsonResult<>(OK,info);}//修改信息(密码,手机号)@RequestMapping("/updateInfo")public JsonResult<Void> updatePassword(String oldPassword,String newPassword,String phone,String email,HttpSession session){String num=getNumFromSession(session);managerService.changeInfo(oldPassword,newPassword,num,phone,email);return new JsonResult<>(OK);}@GetMapping("showinfo")public JsonResult<Manager> showEmp(HttpSession session){return new JsonResult<>(OK,manager.findByNum(getNumFromSession(session)));}@GetMapping("/delManager")public JsonResult<Manager> delManager(Integer num){if (num!=null) {if (manager.delManager(num) != 1) {return new JsonResult<>(50001);} else {return new JsonResult<>(OK);}}else {return new JsonResult<>(50001);}}/*显示所有员工信息*/@RequestMapping("showallemp")public JsonResult<List> showAllEmp(){return new JsonResult<List>(OK,manager.findAllEmp());}@PostMapping("uploademp")public JsonResult<String> uploadEmp(@RequestParam("file") MultipartFile file, HttpSession session) {// 日志System.err.println("UserController.changeAvatar()");// 判断文件是否为空boolean isEmpty = file.isEmpty();System.err.println("\tisEmpty=" + isEmpty);if (isEmpty) {System.out.println("empty");}// 获取原始文件名(客户端设备中的文件名)String originalFilename= file.getOriginalFilename();System.err.println("\toriginalFilename=" + originalFilename);// 将文件上传到哪个文件夹String parent = session.getServletContext().getRealPath("upload");System.err.println("\tupload path=" + parent);File dir = new File(parent);if (!dir.exists()) {dir.mkdirs();}// 保存上传的文件时使用的文件名String filename = ""+ System.currentTimeMillis()+ System.nanoTime();String suffix = "";int beginIndex = originalFilename.lastIndexOf(".");if (beginIndex >= 1) {suffix = originalFilename.substring(beginIndex);}String child = filename + suffix;// 将客户端上传的文件保存到服务器端File dest = new File(parent, child);try {file.transferTo(dest);} catch (IllegalStateException e) {System.out.println("上传失败!您的文件的状态异常!");} catch (IOException e) {System.out.println("上传失败!读写文件时出现错误,请重新上传!");}// 将保存的文件的路径记录到数据库中String avatar = "\\" + child;System.err.println("\tavatar path=" + avatar);System.out.println();System.out.println(managerService.ExcelRead(parent,avatar));return new JsonResult<>(OK);}}

如果也想学习本系统,下面领取。回复:083springboot

 

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

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

相关文章

4.2、网络层提供的两种服务

1、面向连接的虚电路服务 虚电路服务的核心思想&#xff1a;可靠通信由网络自身来保证\color{red}可靠通信由网络自身来保证可靠通信由网络自身来保证 当两台计算机进行通信时&#xff0c;必须建立网络层的连接\color{red}网络层的连接网络层的连接----虚电路VC\color{red}虚…

Java+SpringBoot电影订票系统(含源码+论文+答辩PPT等)

项目功能简介: 该项目采用技术后台&#xff1a;SpringBoot、Spring、Springmvc、Springdata、MySQL数据库、前台&#xff1a;FreeMarker、css、Javascript等&#xff0c;项目含有源码、论文、配套开发软件、软件安装教程、项目发布教程等 项目功能介绍&#xff1a; 本系统主要的…

Hi,运维,你懂Java吗--No.4:JVM-概述

作为运维&#xff0c;你不一定要会写Java代码&#xff0c;但是一定要懂Java在生产跑起来之后的各种机制。 本文为《Hi&#xff0c;运维&#xff0c;你懂Java吗》系列文章 第四篇&#xff0c;敬请关注后续系列文章 欢迎关注 龙叔运维&#xff08;公众号&#xff09; 持续分享运…

筛法(线性筛,厄拉多塞筛)

在前前前前前前…的博客中,我们主要谈了欧拉筛和埃氏筛. 今天我们主要来聊一聊线性筛和厄拉多塞筛(其实和埃氏筛和欧拉筛本质上没区别哎).其实在这两种筛法中厄拉多塞筛最好懂(就连本蒟蒻一看代码就明白了…别看这个名字,容易糊弄人) 首先是厄拉多塞筛"粉墨登场"::…

某农业学校 算法设计与分析-第五次实验-回溯算法

1. 罗密欧与朱丽叶的迷宫问题 问题描述 罗密欧与朱丽叶的迷宫。罗密欧与朱丽叶身处一个mn的迷宫中&#xff0c;如图所示。每一个方格表示迷宫中的一个房间。这mn个房间中有一些房间是封闭的&#xff0c;不允许任何人进入。在迷宫中任何位置均可沿8 个方向进入未封闭的房间。罗…

深度学习常见概念字典(感知机、全连接层、激活函数、损失函数、反向传播、过拟合等)

这一章的所有内容均是为了进入深度学习具体的某某网络而准备的&#xff0c;简单但是非常有必要。 1. 神经网络&#xff08;neural networks&#xff09;的基本组成 1.1 神经元&#xff08;neuron&#xff09; 神经元&#xff08;neuron&#xff09; 是神经网络&#xff08;n…

Djiango实现用户管理增删改成功能实战

1.0定义 前后端不分离模式 前后端分离是指前端页面看到的效果都是由后端控制&#xff0c;即后端渲染HTML页面&#xff0c;前端与后端的耦合度比较高 前后端分离模式 后端仅返回前端所需要的数据&#xff0c;不在渲染HTML页面&#xff0c;不在控制前端的效果&#xff0c;至…

CodeQL代码静态污点分析引擎排查漏洞模式

文章目录前言环境搭建1.1 codeql基础1.2 vscode插件1.3 生成数据库1.4 HelloWorldcodeql语法2.1 语法结构2.2 常用类库2.3 谓词介绍2.4 污点分析漏洞检测3.1 初步结果3.2 解决误报总结前言 对于代码审计的工作&#xff0c;最早期的安全人员会以人工审计的方式来审计项目代码&a…

RabbitMQ 第二天 高级 7 RabbitMQ 高级特性 7.1 消息的可靠投递 7.1.1 confirm【确认模式】

RabbitMQ 【黑马程序员RabbitMQ全套教程&#xff0c;rabbitmq消息中间件到实战】 文章目录RabbitMQ第二天 高级7 RabbitMQ 高级特性7.1 消息的可靠投递7.1.1 confirm【确认模式】第二天 高级 7 RabbitMQ 高级特性 7.1 消息的可靠投递 7.1.1 confirm【确认模式】 在使用 Ra…

【数据预处理】基于Pandas的数据预处理技术【california_housing加州房价数据集】_后9个任务

文章目录一.需求分析二.需求解决2.1 对第一个特征&#xff08;收入中位数&#xff09;排序后画散点图2.2 对第一个特征&#xff08;收入中位数&#xff09;画分位数图并分析2.3 【选做】对所有特征画分位数图并进行分析2.4 使用线性回归方法拟合第一个特征&#xff08;收入中位…

【C语言进阶】指针练习题

写在前面 这是指有关指针的小题 正文 练习一 int main() {int a[5][5];int (*p)[4];pa;printf("%p,%d", &p[4][2]-&a[4][2], &p[4][2]-&a[4][2] );return 0; } 解析&#xff1a; a[4][2]为如图粉色部分&#xff0c;p[4][2]为如图蓝色部分。a的…

Java项目:springboot药品管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目属于前后端分离的项目&#xff0c;分为两个角色药品管理员和取药处人员 药品管理员&#xff1a; 登录、退出、药品信息录入、药厂信息录入…

买不到的数目(蓝桥杯C/C++A组真题详解)

题目详细&#xff1a; 题目思路&#xff1a; 对于这个题有一个定理 如果 a,b 均是正整数且互质&#xff0c;那么由 axby&#xff0c;x≥0&#xff0c;y≥0 不能凑出的最大数是 &#xff1a; a*b-a-b 具体的证明过程这里就不赘述 感兴趣的同学可以自行查找 这里就提供一种思…

RabbitMQ 第二天 高级 7 RabbitMQ 高级特性 7.2 Consumer Ack

RabbitMQ 【黑马程序员RabbitMQ全套教程&#xff0c;rabbitmq消息中间件到实战】 文章目录RabbitMQ第二天 高级7 RabbitMQ 高级特性7.2 Consumer Ack7.2.1 Consumer Ack7.2.2 Consumer Ack 小结7.2.3 消息可靠性总结第二天 高级 7 RabbitMQ 高级特性 7.2 Consumer Ack 7.2.…

C#语言实例源码系列-伪装文件

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 &#x1f449;关于作者 众所周知&#xff0c;人生是一个漫长的流程&#xff0c;不断克服困难&#xff0c;不断反思前进的过程。在这个过程中…

matlab神经网络求解最优化,matlab神经网络训练数据

1、神经网络的准确率是怎么计算的&#xff1f; 其实神经网络的准确率的标准是自己定义的。 我把你的例子赋予某种意义讲解&#xff1a; 1&#xff0c;期望输出[1 0 0 1]&#xff0c;每个元素代表一个属性是否存在。像着4个元素分别表示&#xff1a;是否肺炎&#xff0c;是否肝…

你可能不知道的DOM断点调试技巧

前言 作为一个前端&#xff0c;DOM断点应该是我们非常熟悉的&#xff0c;也是我们日常工作中经常要用到的一种调试技巧&#xff1b;但是下面这些DOM断点调试技巧你可能不知道&#xff0c;且听我一一道来。 监听元素 有这样一种场景&#xff0c;当DOM中某个元素移除或者元素属…

数据结构---图

&#xff08;一&#xff09; 相关知识点 图&#xff08;graph&#xff09;&#xff1a;图是由顶点的有穷非空集合和顶点之间边的集合组成&#xff0c;通常表示为&#xff1a;G(V,E)&#xff0c;其中&#xff0c;G表示一个图&#xff0c;V是图G中的顶点的集合&#xff0c;E是图G…

从模型到服务——iDesktopX处理自动化工具实现BIM模型到三维服务发布

目录前言一、 处理自动化模型二、 算子参数设置1、 使用迭代数据集打开导出后的BIM模型2、 移除重复点、重复面和重复子对象3、 模型生成缓存4、 三维切片缓存发布5、 执行结果前言 BIM模型在SuperMap实际使用的业务流程中常常需要在桌面产品中生成缓存&#xff0c;然后通过iS…

QT多窗口编程与文件IO编程

目录 一、消息对话框 QMessageBox&#xff08;掌握&#xff09; 二、常用窗口类&#xff08;掌握&#xff09; 三、主窗口类 QMainWindow&#xff08;重点&#xff09; 四、parent参数&#xff08;掌握&#xff09; 五、窗口传参 5.1 成员函数/构造函数 5.2 信号槽传参 六、事件…