当前位置: 首页 > news >正文

教师教室预约管理系统(SpringBoot,H-UI,Mysql)

教师教室预约管理系统(SpringBoot,H-UI,Mysql)(毕业论文10640字以上,共35页,程序代码,MySQL数据库)

链接:https://pan.baidu.com/s/1ZHURnxlqMIgLvo0aFCX_CA 
提取码:8888 

【运行环境】  IDEA JDK1.7(JDK1.8)   Tomcat7(Tomcat8)

【技术栈】  JAVA, JSP, SpringBoot, JQUERY,  MYSQL, HTML, CSS, JAVASCRIPT, H-UI

【视频教程

【项目包含内容

【文档包含内容】

5.1用户功能模块的实现

用户进入本教室和教师预约管理后可进行查看首页、新闻公告、预约须知、全部教室、留言交流等等,系统主界面展示如图5-1所示

图5-1 首页界面图

5.1.1用户注册界面

用户要在注册界面输入正确的用户名、用户密码、性别、出生等,选择登录注册,界面展示如图5-2所示。

图5-2 用户注册界面

5.1.2预约须知界面

用户通过预约须知可以信息预约信息的查看,其界面展示如图5-3所示。

图5-3 预约须知界面

5.1.3留言交流界面

用户可以进行留言交流,界面展示如图5-4所示。

图5-4 留言交流界面

5.1.4教室预约界面

用户登录后可以进行教室信息的查看和进行在线预约,界面展示如图5-5所示。

图5-5 教室预约界面

5.1.5我的预约界面

用户可以进行预约信息的查看,界面展示如图5-6所示。

图5-6 我的预约界面

5.2管理员功能模块的实现

5.2.1管理员信息管理界面

管理员可以进行新增管理员,界面如图5-7所示。

图5-7 新增管理员界面

5.2.2教师用户管理界面

管理员可以进行教师用户信息的查看和删除,界面如图5-8所示。

图5-8 教室用户管理界面

5.2.3网站栏目管理界面

管理员可以进行网站栏目信息的新增、修改和删除,界面如图5-9所示。

图5-9 网站栏目界面

5.2.4教师信息管理界面

管理员可以进行教师信息的新增、修改和删除,界面如图5-10所示。

图5-10 教室信息管理界面

5.2.5意见反馈管理界面

管理员可以进行意见反馈信息的查看和删除,界面如图5-11所示。

图5-11用意见反馈信息界面

5.2.6教室预约管理界面

通过教室预约可以进行查看和进行教室预约的确认,界面展示如图5-12所示。

图5-12 教室预约管

【项目功能介绍】

    本系统由两个大模块组成:前台教师和后台管理。

    前台用户界面主要是分为:用户注册登录,首页展示教室分类及分类下的教室,栏目分类及分类下的栏目列表数据,栏目信息详情,全部教室展示,用户留言,留言列表查询,留言回帖,用户中心,用户密码修改,我的教室预约,我的班级列表,意见反馈及反馈列表

    后台管理用户功能主要为:  管理员登录, 管理员新增修改删除及密码修改,教师用户列表展示及教师认证,栏目分类管理,栏目内容管理,教室类型管理,教室信息管理,班级信息管理,课时信息管理,教室预约信息管理,意见反馈信息管理,留言交流管理,留言回复管理

代码介绍:

AdminController:

package com.boot.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.boot.entity.Admin;
import com.boot.service.AdminService;
import com.boot.util.PageHelper;
import com.boot.util.VeDate;
//定义为控制器
@Controller
// 设置路径
@RequestMapping(value = "/admin" , produces = "text/plain;charset=utf-8")
public class AdminController extends BaseController {
	// 注入Service 由于标签的存在 所以不需要getter setter
	@Autowired
	private AdminService adminService;

	// 管理员准备
	@RequestMapping("index.action")
	public String index() {
		return "admin/index";
	}

	// 管理员登录 1 验证用户名是否存在 2 验证密码是否正确
	@RequestMapping("login.action")
	public String login() {
		String username = this.getRequest().getParameter("username");
		String password = this.getRequest().getParameter("password");
		Admin adminEntity = new Admin();
		adminEntity.setUsername(username);
		List<Admin> adminlist = this.adminService.getAdminByCond(adminEntity);
		if (adminlist.size() == 0) {
			this.getRequest().setAttribute("message", "用户名不存在");
			return "redirect:/admin/index.action";
		} else {
			Admin admin = adminlist.get(0);
			if (password.equals(admin.getPassword())) {
				this.getSession().setAttribute("adminid", admin.getAdminid());
				this.getSession().setAttribute("adminname", admin.getUsername());
				this.getSession().setAttribute("realname", admin.getRealname());
			} else {
				this.getRequest().setAttribute("message", "密码错误");
				return "redirect:/admin/index.action";
			}
		}
		return "admin/main";
	}

// 管理员准备修改密码
	@RequestMapping("prePwd.action")
	public String prePwd() {
		return "admin/editpwd";
	}
	// 修改密码
	@RequestMapping("editpwd.action")
	public String editpwd() {
		String adminid = (String) this.getSession().getAttribute("adminid");
		String password = this.getRequest().getParameter("password");
		String repassword = this.getRequest().getParameter("repassword");
		Admin admin = this.adminService.getAdminById(adminid);
		if (password.equals(admin.getPassword())) {
			admin.setPassword(repassword);
			this.adminService.updateAdmin(admin);
		} else {
			this.getRequest().setAttribute("message", "旧密码错误");
		}
		return "redirect:/admin/prePwd.action";
	}

	// 管理员退出登录
	@RequestMapping("exit.action")
	public String exit() {
		this.getSession().removeAttribute("adminid");
		this.getSession().removeAttribute("adminname");
		this.getSession().removeAttribute("realname");
		return "redirect:/admin/index.action";
	}
	// 准备添加数据
	@RequestMapping("createAdmin.action")
	public String createAdmin() {
		return "admin/addadmin";
	}
	// 添加数据
	@RequestMapping("addAdmin.action")
	public String addAdmin(Admin admin) {
		admin.setAddtime(VeDate.getStringDateShort());
		this.adminService.insertAdmin(admin);
		return "redirect:/admin/createAdmin.action";
	}

	// 通过主键删除数据
	@RequestMapping("deleteAdmin.action")
	public String deleteAdmin(String id) {
		this.adminService.deleteAdmin(id);
		return "redirect:/admin/getAllAdmin.action";
	}

	// 批量删除数据
	@RequestMapping("deleteAdminByIds.action")
	public String deleteAdminByIds() {
		String[] ids = this.getRequest().getParameterValues("adminid");
		for (String adminid : ids) {
			this.adminService.deleteAdmin(adminid);
		}
		return "redirect:/admin/getAllAdmin.action";
	}

	// 更新数据
	@RequestMapping("updateAdmin.action")
	public String updateAdmin(Admin admin) {
		this.adminService.updateAdmin(admin);
		return "redirect:/admin/getAllAdmin.action";
	}

	// 显示全部数据
	@RequestMapping("getAllAdmin.action")
	public String getAllAdmin(String number) {
		List<Admin> adminList = this.adminService.getAllAdmin();
		PageHelper.getPage(adminList, "admin", null, null, 10, number, this.getRequest(), null);
		return "admin/listadmin";
	}

	// 按条件查询数据 (模糊查询)
	@RequestMapping("queryAdminByCond.action")
	public String queryAdminByCond(String cond, String name, String number) {
		Admin admin = new Admin();
		if(cond != null){
			if ("username".equals(cond)) {
				admin.setUsername(name);
			}
			if ("password".equals(cond)) {
				admin.setPassword(name);
			}
			if ("realname".equals(cond)) {
				admin.setRealname(name);
			}
			if ("contact".equals(cond)) {
				admin.setContact(name);
			}
			if ("addtime".equals(cond)) {
				admin.setAddtime(name);
			}
		}

		List<String> nameList = new ArrayList<String>();
		List<String> valueList = new ArrayList<String>();
		nameList.add(cond);
		valueList.add(name);
		PageHelper.getPage(this.adminService.getAdminByLike(admin), "admin", nameList, valueList, 10, number, this.getRequest(), "query");
		name = null;
		cond = null;
		return "admin/queryadmin";
	}

	// 按主键查询数据
	@RequestMapping("getAdminById.action")
	public String getAdminById(String id) {
		Admin admin = this.adminService.getAdminById(id);
		this.getRequest().setAttribute("admin", admin);
		return "admin/editadmin";
	}

	public AdminService getAdminService() { return adminService; }

	public void setAdminService(AdminService adminService) { this.adminService = adminService; }

}

 配置文件 application.properties

#\u7AEF\u53E3\u53F7\u8BBE\u7F6E
server.port=8080 

#\u8BBF\u95EE\u8DEF\u5F84\u8BBE\u7F6E
server.servlet.context-path=/sboot_jshjsyyglxt

#\u8BBE\u7F6E\u65E5\u5FD7\u7EA7\u522B
#lv: TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF. \u9ED8\u8BA4\uFF1AINFO
logging.level.root=INFO
logging.level.org.springframework.web=INFO
logging.level.org.hibernate=INFO
logging.level.org.springframework=DEBUG
logging.level.com.boot.dao.*=DEBUG

#\u5B57\u7B26\u96C6 -\u7528\u4E8E\u89E3\u7801URI\u7684\u5B57\u7B26\u7F16\u7801  \u672C\u8EAB\u9ED8\u8BA4UTF-8
server.tomcat.uri-encoding=UTF-8

#HTTP\u8BF7\u6C42\u548C\u54CD\u5E94\u7684\u5B57\u7B26\u96C6\u3002\u5982\u679C\u672A\u660E\u786E\u8BBE\u7F6E\uFF0C\u5219\u6DFB\u52A0\u5230\u201CContent-Type\u201D\u5934 ;\u672C\u8EAB\u9ED8\u8BA4UTF-8
spring.http.encoding.charset=UTF-8

#springboot mybatis
#\u52A0\u8F7D mybatis\u914D\u7F6E\u6587\u4EF6
mybatis.config-location = classpath:mybatis.xml
#mybatis.type-aliases-package = com.boot.entity

#\u6570\u636E\u5E93\u8FDE\u63A5\u914D\u7F6E\u6587\u4EF6
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/sboot_jshjsyyglxt?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root

spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp

spring.servlet.multipart.max-file-size=-1
spring.servlet.multipart.max-request-size=-1



【项目代码截图】

【数据库截图】

【文档部分截图】

【项目运行截图】

相关文章:

  • Centos7五步安装Docker并解决docker官方镜像无法访问问题
  • flink技术总结待续
  • Mac - 安装Nginx
  • SpringBoot事件机制
  • IDEA配置tomcat以及创建项目
  • Node.js | 使用内置模块 event 实现发布订阅模式
  • 七千字详解javaString类
  • 希尔排序算法
  • synchronized同步以及双重检索
  • Codeforce8.29-9.4做题笔记
  • springboot+宴会预定平台 毕业设计-附源码231718
  • python super()详解,一篇文章告诉你python的super是什么,如何使用
  • Redis 的持久化
  • 2022年中国证券行业智能投顾专题分析
  • MYSQL高可用架构之MHA实战(真实可用)
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【面试系列】之二:关于js原型
  • java小心机(3)| 浅析finalize()
  • Redis字符串类型内部编码剖析
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Spark RDD学习: aggregate函数
  • spark本地环境的搭建到运行第一个spark程序
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • windows下mongoDB的环境配置
  • Zepto.js源码学习之二
  • ------- 计算机网络基础
  • 排序(1):冒泡排序
  • 线上 python http server profile 实践
  • 小程序开发中的那些坑
  • 一些关于Rust在2019年的思考
  • 原生 js 实现移动端 Touch 滑动反弹
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​520就是要宠粉,你的心头书我买单
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • ###项目技术发展史
  • $forceUpdate()函数
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (9)目标检测_SSD的原理
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (未解决)macOS matplotlib 中文是方框
  • (一)插入排序
  • (转)jdk与jre的区别
  • .htaccess配置重写url引擎
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET和.COM和.CN域名区别
  • .NET是什么