Java项目:ssm教材征订与发放管理系统

news2024/11/15 5:49:40

作者主页:源码空间站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.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 

6.数据库:MySql 5.7版本;

技术栈

1. 后端:Spring SpringMVC MyBatis
2. 前端:JSP+jQuery

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置

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

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

4. 运行项目,输入localhost:8080/xxx 登录

运行截图

相关代码 

ClassController

package com.se.controller;

import com.se.pojo.Order;
import com.se.pojo.User;
import com.se.server.ClassLeaderServer;
import com.se.server.ManagerServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @author DeepBlue
 * @date 2019/11/5  16:15
 */
@Controller
@RequestMapping("/class")
public class ClassController {

    @Autowired
    private ClassLeaderServer classLeaderServer = null;

    @Autowired
    private ManagerServer managerServer=null;
    @RequestMapping("/index")
    public String showPage() {
        return "class/classIndex";
    }

    @RequestMapping("/welcome")
    public String welcome(HttpServletRequest request) {
        return "managers/welcome";
    }

    @RequestMapping("/changeinfo")
    public String changeinfo() {
        return "class/changeinfo";
    }


    //已经发放列表
    @RequestMapping("/grantlist")
    public String grantList(HttpServletRequest request) {
        User user = (User) request.getSession().getAttribute("session");
        List<Order> orders = classLeaderServer.selectAllPassOrder(user.getUsername());
        request.setAttribute("books", orders);
        return "teacher/grantlist";
    }

    //班长信息修改
    @RequestMapping("/classleaderinfo")
    public String changeClassLeaderInfo(HttpServletRequest request, @RequestParam(required = false) String username
            , @RequestParam(required = false) String classid, @RequestParam(required = false) String department,
                                        @RequestParam(required = false) String email,
                                        @RequestParam(required = false) Integer po) {
        User user = (User) request.getSession().getAttribute("session");
        request.setAttribute("username", user.getUsername());
        if (po != null && po == 1) {
            managerServer.updateClassLeaderInfo(user.getUsername(), classid, department, email);
            request.setAttribute("message", "更新完成!");
        }
        return "class/changeinfo";
    }
}

LoginController

package com.se.controller;

import com.se.pojo.User;
import com.se.server.LoginServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author DeepBlue
 * @date 2019/11/2  17:34
 */
@Controller
public class LoginController {

    @Autowired
    private LoginServer loginServer = null;

    @RequestMapping(value = "/login", method = RequestMethod.GET)
    public ModelAndView showPage(ModelAndView mv) {
        mv.setViewName("login");
        return mv;
    }

    @RequestMapping(value = "/log", method = RequestMethod.POST)
    public String login(HttpServletRequest request, HttpServletResponse response) throws IOException {
        request.setCharacterEncoding("UTF-8");
        String username = request.getParameterValues("username")[0];
        String identity = request.getParameterValues("identity")[0];
        String password = request.getParameterValues("password")[0];
        User user = new User( identity,username, password);
        boolean flag = loginServer.checkData(user);
        if (flag) {
            boolean flag2 = loginServer.checkLogin(user);
            if (flag2) {
                switch (user.getIdentity()) {
                    case "管理员":
                        request.getSession().setAttribute("session", user);
                        response.sendRedirect("./managers/index");
                        break;
                    case "老师":
                        request.getSession().setAttribute("session", user);
                        response.sendRedirect("./teacher/index");
                        break;
                    case "班长":
                        request.getSession().setAttribute("session", user);
                        response.sendRedirect("./class/index");
                }
            } else {
                request.setAttribute("error", "用户名密码校验错误,请重新输入!");
                return "login";
            }
        } else {
            request.setAttribute("error", "信息校验错误,请检查是否注册以及字段值是否填写!");
        }
        return "login";
    }
}

ManagerController

package com.se.controller;

import com.se.pojo.*;
import com.se.server.ManagerServer;
import com.sun.org.apache.xpath.internal.operations.Or;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.lang.Class;
import java.util.List;

/**
 * @author DeepBlue
 * @date 2019/11/3  21:17
 */

@Controller
@RequestMapping("/managers")
public class ManagerController {
    @Autowired
    private ManagerServer managerServer = null;

    //管理员主页
    @RequestMapping("/index")
    public String showPage(HttpServletRequest request) {
        return "managers/managerIndex";
    }

    //订单首页
    @RequestMapping("/order-list")
    public String show1(HttpServletRequest request) {
        List<Order> orders = managerServer.selectAllOrder();
        request.setAttribute("orders", orders);
        return "managers/order-list";
    }

    //教师列表
    @RequestMapping("/teacherlist")
    public String show2(HttpServletRequest request) {
        List<Teacher> teachers = managerServer.getAllTeacher();
        request.setAttribute("teachers", teachers);
        return "managers/teacherlist";
    }

    //班长列表
    @RequestMapping("/class-list")
    public String classLeaderList(HttpServletRequest request) {
        List<ClassLeader> classLeaders = managerServer.getAllClassLeader();
        request.setAttribute("classLeader", classLeaders);
        return "managers/classlist";
    }

    //改密码
    @RequestMapping(value = "/changepassword", method = RequestMethod.POST)
    public String changePassword(HttpServletRequest request) throws UnsupportedEncodingException {
        request.setCharacterEncoding("UTF-8");
        String oldpassword = request.getParameterValues("oldpass")[0];
        String newPass = request.getParameterValues("newpass")[0];
        String newPass1 = request.getParameterValues("repass")[0];
        String username = request.getParameterValues("username")[0];
        String kind = request.getParameterValues("kind")[0];
        boolean flag = managerServer.checkDataAndUpdate(username, oldpassword, newPass, newPass1, kind);
        if (flag)
            request.setAttribute("message", "修改成功");
        else
            request.setAttribute("message", "修改失败,请检查");
        return "managers/member-password";
    }

    //修改资料
    @RequestMapping("member-edit")
    public String editPage(HttpServletRequest request) {
        return "managers/member-edit";
    }


    //修改老师密码
    @RequestMapping("member-password")
    public String editPasswordPage(HttpServletRequest request, @RequestParam String username) {
        request.setAttribute("username", username);
        return "managers/member-password";
    }

    //删除用户
    @RequestMapping(value = "/delete", method = RequestMethod.POST)
    public void delete(HttpServletRequest request, @RequestParam String id, @RequestParam String kind) {
        if (id != null) {
            managerServer.delete(id, kind);
        }
    }

    //修改班长密码
    @RequestMapping(value = "member-password2")
    public String editPasswordPage2(HttpServletRequest request, @RequestParam String username) {
        request.setAttribute("username", username);
        return "managers/member-password2";
    }

    @RequestMapping("/welcome")
    public String show3(HttpServletRequest request) {
        return "managers/welcome";
    }

    //审批订单
    @RequestMapping("/approval")
    public void approval(HttpServletRequest request, @RequestParam int id, @RequestParam int state, @RequestParam int num) {
        managerServer.approval(id, state);
        if (state == 1) {
            managerServer.deduction(id, num);
        }
    }

    //待发放列表
    @RequestMapping("/wait-list")
    public String waitPage(HttpServletRequest request) {
        List<GrantBooks> grantBooks = managerServer.getBooks();
        request.setAttribute("grant", grantBooks);
        return "managers/wait-list";
    }

    //获取图书列表
    @RequestMapping("/books")
    public String books(HttpServletRequest request) {
        List<Book> books = managerServer.books();
        request.setAttribute("books", books);
        return "managers/books";
    }

    //增加图书库存
    @RequestMapping(value = "/addbook")
    public String addBook(HttpServletRequest request, String place, String time) {
        if (place != null && time != null) {
        }
        return "managers/addbook";
    }

    //改变图书数量的POST提交
    @RequestMapping("/changebooknum")
    public String changeBookNum(HttpServletRequest request,
                                @RequestParam int id, @RequestParam int num) {
        managerServer.changeBookNum(id, num);
        return "managers/changebooknum";
    }

    //获取修改图书页面
    @RequestMapping("/getchangenumPage")
    public String getChangePage(HttpServletRequest request, int id) {
        request.setAttribute("id", id);
        return "managers/changebooknum";
    }

    //增加新图书
    @RequestMapping("/addnewbook")
    public String addNewBook(@RequestParam(value = "bookname", required = false) String bookName,
                             @RequestParam(value = "booknum", required = false) Integer bookNum,
                             @RequestParam(value = "press", required = false) String press,
                             @RequestParam(value = "price", required = false) Double price) {
        if (bookName != null) {
            managerServer.addNewBook(bookName, bookNum, press, price);
        }
        return "managers/addnewbook";
    }

    //班长信息修改
    @RequestMapping("/classleaderinfo")
    public String changeClassLeaderInfo(HttpServletRequest request, @RequestParam(required = false) String username
            , @RequestParam(required = false) String classid, @RequestParam(required = false) String department,
                                        @RequestParam(required = false) String email,
                                        @RequestParam(required = false) Integer po) {
        if (classid != null) {
            request.setAttribute("username", username);
            request.setAttribute("classid", classid);
            request.setAttribute("department", department);
            request.setAttribute("email", email);
        }
        if (po != null && po == 1) {
            managerServer.updateClassLeaderInfo(username, classid, department, email);
            request.setAttribute("message", "更新完成!");
        }
        return "managers/classleaderinfo";
    }

    //发放图书
    @RequestMapping("/sendbook")
    public String sendBook(HttpServletRequest request, @RequestParam Integer id, @RequestParam(required = false) String time, @RequestParam(required = false) String place) {
        if (id != null) {
            request.setAttribute("id", id);
        }
        if (time != null) {
            managerServer.sendBook(id, time, place);
            request.setAttribute("message", "ok");
        }
        return "managers/sendbook";
    }

    //已经发放列表
    @RequestMapping("/grantlist")
    public String grantList(HttpServletRequest request) {
        List<Order> orders = managerServer.selectAllPassOrder();
        request.setAttribute("books", orders);
        return "managers/grantlist";
    }

    //教师信息修改
    @RequestMapping("/teacherinfo")
    public String changeTeacherInfo(HttpServletRequest request, @RequestParam(required = false) String username
            , @RequestParam(required = false) String classid, @RequestParam(required = false) String department, @RequestParam(required = false) Integer po,
                                    @RequestParam(required = false) String email) {
        if (classid != null) {
            request.setAttribute("username", username);
            request.setAttribute("classid", classid);
            request.setAttribute("department", department);
            request.setAttribute("email", email);
        }
        if (po != null && po == 1) {
            managerServer.updateTeacherInfo(username, department, email);
            String[] cs = classid.split("\\,");
            System.out.println(cs);
            int userId=managerServer.selectTeacherId(username);
            managerServer.deleteClass(userId);
            for (int i = 0; i < cs.length; i++) {
                managerServer.updateClasses(userId,cs[i]);
            }
            request.setAttribute("message", "更新完成!");
        }
        return "managers/teacherinfo";
    }
}

如果也想学习本系统,下面领取。关注并回复:042ssm 

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

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

相关文章

java计算机毕业设计ssm魔术教学网站k304y(附源码、数据库)

java计算机毕业设计ssm魔术教学网站k304y&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。…

Springboot旅游网站管理系统毕业设计、Springboot旅游线路和景点网站设计与实现 毕设作品参考

功能清单 【后台功能】 系统设置&#xff1a;设置关于我们、联系我们、加入我们、法律声明 广告管理&#xff1a;设置小程序首页轮播图广告和链接 留言列表&#xff1a;所有用户留言信息列表&#xff0c;支持删除 会员列表&#xff1a;查看所有注册会员信息&#xff0c;支持删…

QT登录界面设计及跳转主界面

文章目录QT登录界面设计及跳转主界面界面样式创建流程界面设计所需控件界面外观设计添加底色设置密码输入框以密文显示&#xff1a;程序设计取消按钮登录按钮注&#xff1a;QT登录界面设计及跳转主界面 界面样式 先贴图 创建流程 首先创建界面&#xff1a; 选择无按钮界面…

[附源码]计算机毕业设计springboot校园便携系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【第 8 章 MySQL InnoDB ClusterSet 】

【第 8 章 MySQL InnoDB ClusterSet 】 文章目录【第 8 章 MySQL InnoDB ClusterSet 】本章内容本章简介本章内容 8.1 InnoDB ClusterSet 要求 8.2 InnoDB ClusterSet 限制 8.3 User Accounts for InnoDB ClusterSet 8.4 Deploying InnoDB ClusterSet 8.5 Integrating MySQL R…

VS系列多通道无线采发仪

VS101/104/208/416/432 是以振弦、温度传感信号为主的多通道无线采发仪&#xff0c;并可扩展其它模拟&#xff08;电流、 电压、电阻&#xff09;信号和数字信号&#xff08;RS485、RS232&#xff09;传感器通道&#xff0c;内置电池&#xff0c;可外接太阳能电池板。最多可实…

QT学习日记28——QT动态库制作和使用

学习视频链接 课时3 控件介绍,使用和样式修改_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV14t411b7EL/?p3&spm_id_from333.337.top_right_bar_window_history.content.click&vd_source0471cde1c644648fafd07b54e303c905 目录 一、动态库项目 1.1 新建工程…

[附源码]Python计算机毕业设计Django家庭医生签约服务管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

车载测试好就业?车载测试就业薪资和前景怎么样?

什么是车载智能系统测试&#xff1f; 车载测试&#xff0c;又叫车载智能系统测试&#xff0c;是汽车智能化重要的组成部分&#xff0c;由旧有的车载资通讯系统结合联网汽车技术所演进而来&#xff0c;随着软硬件技术的不断进步&#xff0c; 让车载智能系统拥有强大的运算能力及…

时序数据库-6-[IoTDB]的数据模式

1 数据模型 我们以风电场物联网场景为例&#xff0c;说明如何在IoTDB中创建一个正确的数据模型。 根据企业组织结构和设备实体层次结构&#xff0c;我们将其物联网数据模型表示为如下图所示的属性层级组织结构&#xff0c;即电力集团层-风电场层-实体层-物理量层。 其中ROOT…

[附源码]计算机毕业设计JAVA校园期刊网络投稿系统

[附源码]计算机毕业设计JAVA校园期刊网络投稿系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM my…

设计模式-桥接模式

桥接模式( Bridge Pattern &#xff09;也称为桥梁模式、接口(Interfce)模式或柄体&#xff08; Handle and Body)模 式&#xff0c;是将抽象部分与它的具体实现部分分离&#xff0c;使它们都可以独立地变化&#xff0c;属于结构型模式。 原文&#xff1a;Decouple an abstract…

【图像分割】Unet-ConvLstm利用时序信息进行视频分割

文章目录0. 介绍1. ConvLstm1.1 Lstm1.2 ConvLstm0. 介绍 文章&#xff1a; Exploiting Temporality for Semi-Supervised Video Segmentation 代码&#xff1a; https://github.com/mhashas/Exploiting-Temporality-For-Semi-Supervised-Video-Segmentation 理解&#xff1a;…

塔望食业洞察丨大健康黄金赛道,低GI食品风起

随着“健康中国2030”国家战略进入到第二阶段&#xff0c;消费者在身心健康方面的提升诉求成为刚需 。在国家政策支持、技术发展的情况下&#xff0c;健康产业已经迎来前所未有的发展契机&#xff0c;健康产业百业兴盛。根据国家数据统计显示&#xff0c;2020年我国健康服务业规…

【加油站会员管理小程序】02创建数据源

我们上一篇介绍了加油站会员管理小程序的原型,本篇我们推导一下需要的数据源。 推导数据源的办法是要从页面上提炼需要存放的数据,在提炼的过程中要考虑表和表的拆分,主要是考虑主子关系。 在数据源设计中有关联关系和主子表的区分,关联关系是一种组成关系,比如学生和班…

扩散模型的启发和因果推论之数据增强

&#x1f37f;*★,*:.☆欢迎您/$:*.★* &#x1f37f; 正文 从因果中推导一种 数据增强的方法比如 使用相机采样的时候 随着相机的移动 采样的时间越短采样的数据越多 那么说名 数据量越大 这样虽然能达到更多数据量的目的但是如果输入是T1 输出是T2那么模型学习到的信息是确…

DSP篇--C6678功能调试系列之DDR3调试

目录 0、前言 1、硬件状态确认 2、DDR3调试 2.1 DDR3初始化 2.2 DDR3读写测试 2.3 DDR3 ECC&#xff08;略&#xff09; 0、前言 本来在写完《DSP篇--C6678 SPI BOOT详解及其优化实现》这篇文章后是不打算再去更新嵌入式相关的博文了&#xff08;主要是换行业了&#xff0…

一种用于环境声源的被动到达角(AoA)提取算法(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

G1D29-Roberta智能蜜罐环境

一、Roberta &#xff08;一&#xff09;特点 对bert的一点点改进啦 1、动态遮掩 2、FULL-SENTENCE without NSP loss 3、Large mini-batch 4、A larger Byte-Pair Encoding &#xff08;二&#xff09;关于BERT中的NSP和MLM 参考&#xff1a;https://blog.csdn.net/qq_436…

创建一个web项目

servlet 概念: 运行在服务端的程序&#xff0c;是一个接口&#xff0c;定义了java类被浏览器访问到(tomcat识别)的规则 tomcat会读取web.xml文件中的配置 创建一个web项目 目录说明: 1.src&#xff1a;自动编译.java文件的目录 依赖的jdk版本 依赖的tomcat版本 build: 用来…