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

news2024/11/24 4:41:01

作者主页:源码空间站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{
    @Autowired
    EquServiceImpl service;
    @Autowired
    EquMapper mapper;
    @Autowired
    ManagerMapper 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/xls
        if (!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{
    @Resource
    IManagerService managerService;

    @Autowired
    ManagerMapper manager;



    //登录
    @RequestMapping("/logininfo")
    public JsonResult<Void> logininfo(HttpSession session){
       session.removeAttribute("num");
        return  new JsonResult<>(OK);
    }


    @Autowired
    EmailSend 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.coloradmin.cn/o/114974.html

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

相关文章

通达信逐笔接口怎么查询下单明细?

通达信逐笔接口一般会根据实盘交易系统的模式来开发&#xff0c;然后股票量化交易接口端也能很快的获取用户数据&#xff0c;也就是你的账户下单的数据信息&#xff0c;在市场交易期间能实时与多家证券公司对接&#xff0c;实现委托买入卖出操作。那么&#xff0c;像这么方便的…

IO流Properties配置文件

目录 输入流和输出流 File文件增删 常用IO流类及其分类 FileInputStream/FileOutputStream ObjectInputStream/ObjectOutputStream BufferedInputStream/BufferedOutputStream FileReader/FileWriter BufferedReader/BufferedWriter InputStreamReader/InputStreamWri…

为啥devc++程序运行正确返回不为0?而返回了一个特别大的数,详解。

例如运行以下程序: #include #include typedef char ElemType; typedef struct BiTNode{ char data; struct BiTNode *lchild; struct BiTNode *rchild; int DescNum;}BiTNode ,*BiTree; void CreateBiTree(BiTree *T) { char ch; scanf("%c",&ch); if(ch ){…

时序预测 | MATLAB实现IWOA-LSTM和LSTM时间序列预测(改进的鲸鱼算法优化长短期记忆神经网络)

时序预测 | MATLAB实现IWOA-LSTM和LSTM时间序列预测(改进的鲸鱼算法优化长短期记忆神经网络) 目录时序预测 | MATLAB实现IWOA-LSTM和LSTM时间序列预测(改进的鲸鱼算法优化长短期记忆神经网络)预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 MATLAB实现IWOA-LSTM和…

使用React做一个音乐播放器

目录介绍先决条件和设置环境依赖关系播放器.js进口播放和暂停音频使用音频的当前时间和持续时间添加音频时间线输出附加的功能结论介绍 任何正在学习 React 并想使用 React 构建项目的人。有各种博客和文章可以为开发人员指导此类项目。我确实浏览过这些文章&#xff0c;但其中…

Java集合框架【三Map接口、Iterator送代器、Collections工具类】

文章目录双例模式一 Map接口简介1.1 常用方法1.2 演示二 HashMap的存储结构简介三 TreeMap容器类3.1 TreeMap的比较规则3.2 元素自身实现比较规则3.3 通过比较器实现比较规则四 Iterator迭代器4.1 Iterator送代器接口介绍4.2 栗子五 Collections工具类5.1 Collections工具类简介…

关于node代码如何丝滑执行多条命令行这件事

最近写脚本比较多&#xff0c;然后经常写命令行相关的代码&#xff0c;记录一下以备万一。 首先&#xff0c;node使用命令行依赖于child_process&#xff0c;这个是node原生支持的,我用的最多就是exec。 按顺序执行多个命令 因为写脚本需要执行多个语句&#xff0c;所以写了…

[Python图像识别] 五十一.水书图像识别之利用数据增强扩充图像数据集

该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还请海涵~ 上一篇文章…

五、传输层(三)TCP

目录 3.0 TCP特点补充 3.1 TCP报文段首部格式 3.2 TCP连接管理 3.2.1 三报文握手 3.2.2 四报文挥手 3.3 TCP的流量控制和可靠传输 3.4 TCP拥塞控制 3.4.1 接收窗口、拥塞窗口、发送窗口关系 3.4.2 慢开始和拥塞避免 3.4.3 快重传和快恢复 3.0 TCP特点补…

Java项目:springboot超市订单管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 该超市订单管理毕业设计基于jdk8版本开发&#xff0c;在部署时需要使用jdk8以上的版本。使用了目前流行的框架组合springbootmybatis的框架技术…

DispatcherServlet初始化过程源码分析 | SpringMVC源码分析

一、继承或实现关系 public class DispatcherServlet extends FrameworkServlet public abstract class FrameworkServlet extends HttpServletBean implements ApplicationContextAware public abstract class HttpServletBean extends HttpServlet implements Environment…

聊聊Go语言并发之道

写在前面 2007年&#xff0c;Go语言诞生于Google公司&#xff0c;2009年开源&#xff0c;2012年推出1.0版本&#xff0c;曾两次获得TIOBE年度语言。2012年起&#xff0c;全球大量的开源项目开始使用Go语言开发&#xff0c;目前Go语言已成为云计算领域事实上的标准语言&#xff…

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

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

slf4j常用配置文件读取

slf4j常用配置文件读取 log4j2读取配置文件 日志现在一般都是使用slf4j作为接口、底层实现一般是用log4j2或者logback。 我们先看下log4j2是如何读取配置文件的。 implementation org.apache.logging.log4j:log4j-slf4j-impl:2.19.0如果使用gradle的话。上面的代码就会导入sl…

VS coda C++、python运行与Dbug配置

首先新建终端 一次性使用C方法 检查C编译器是否存在 which g可见位置存在于&#xff1a;/usr/bin/g 一次性命令格式&#xff1a; 使用json配置文件 运行C方法&#xff08;推荐&#xff09;&#xff1a; 根据你查找的g的位置来决定 使用配置好的tasks.json&#xff08;C的…

QT入门-UI-信号槽

目录 一、QWidget类&#xff08;重点&#xff09; 二、子组件&#xff08;掌握&#xff09; 三、样式表&#xff08;熟悉&#xff09; 一、什么是信号槽&#xff1f; 二、信号槽的连接方式 2.1 自带信号→自带槽 2.2 自带信号→自定义槽 2.3 自定义信号 三、传参方式 3.1 成员变…

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

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

Redis分布式锁存在的问题

假设有这样一个场景&#xff0c;在一个购票软件上买一张票&#xff0c;但是此时剩余票数只有一张或几张&#xff0c;这个时候有几十个人都在同时使用这个软件购票。在不考虑任何影响下&#xff0c;正常的逻辑是首先判断当前是否还有剩余的票&#xff0c;如果有&#xff0c;那么…

Spring5.3.0源码下载

目录源码下载环境配置import into idea修改配置gradle-wapper.propertiesbuild.gradleSetting Gradlerefresh Gradle写一个小dome源码研究心得源码下载 Spring5.3.0 Download Address 我们只需要下载zip就行了&#xff0c; 如果忘记了这个地址&#xff0c;可以在Spring Offici…

网络技术——网络运维工程师必会的网络知识(3)(详细讲解)

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.网络层协议与应用 1.网络层的功能 2.IP数据包格式 3.广播与…