javaEE基于ssm的小学生餐桌管理系统

项目介绍

用户;家长(家长需要注册)(只能绑定一个学生,对一个学生进行操作),管理员(老师)
一、家长功能模块:个人信息,餐桌分配,意见箱,餐桌申请,查看自己孩子健康状况,修改个人信息,修改个人密码,查看学生信息
1、家长个人信息:身份,绑定一位学生(数据库中已经添加的,否则添加失败),住址,电话等等,
2、餐桌分配情况:通过年级学号姓名手动查询自己孩子在几号桌吃饭,吃什么,价格是多少,什么时间。可随意查看某一天,一般自动显示当天结果
3、意见箱;提出自己各个方面的意见发送给管理员(管理员不止一个,但是只能发送给其中一个,即自己的学生班主任)
4、餐桌申请:给自己的孩子申请留校还是回家,向管理员发送申请,管理员回复后方可留校或者离校,管理员回复后显示你的请求已被同意或反对
5、健康状况;查看自己学生的包括体温,饮食等等
6、查看学生信息:查看学生个人信息,班主任,年级,教室位置,饮食习惯等等
二、管理员功能模块:分配管理,餐桌申请管理,查询功能,意见箱,学生信息管理,个人信息管理,修改密码
1、分配管理(最好通过选项来进行操作,下拉或者标签,):
a、只能分配当天餐谱,日期表明,方便家长查询。
b、分配餐桌(通过年级班级学号姓名分配,所有添加的学生都要分配,不申请留校的可以不分配,对数据库中已经申请就餐的学生进行分配)几号餐桌分配某某年级某某,一个餐桌五六个人,一个餐桌位置都占用时下个操作不能再出现这个餐桌名称,
c、分配食物,几号桌分配什么食物(可以添加固定食谱,也可以现行自己添加,食谱可以重复),价格多少,
d、分配时间,几点就餐,。。。分配完成。
分配过程中可以进行修改删除添加等操作(就是某某餐桌可以重新分配学生或者食谱时间等),按完成按钮后不可操作
就餐时间完成,系统按照请求清除餐桌位置,也可自行保留餐桌位置,方便下次使用(保留或清除餐桌按钮,只在就餐完成后出现)。

ssm的三层架构指的是:
1.表示层:这一层通常由 Controller 组成,负责处理 HTTP 请求和向用户展示信息。
2.业务逻辑层:包含 Service 接口及其实现类(ServiceImpl),处理应用程序的核心业务逻辑。
3.数据访问层:由 Mapper 接口和 Mapper.xml 文件组成,负责与数据库交互,执行 CRUD操作。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

技术栈

开发工具:idea/eclipse、navicat for mysql
开发语言:java、mysql
硬件环境:Win10系统、Google等。
主要技术:spring家族,springmvc、mybatis、java等
框架:ssm
数据库: mysql
前端:layui+bootstrap+jsp

具体实现截图

SpringMVC的执行流程

(1)客户端发起请求到前端控制器(DispatcherServlet)[7]
(2)前端控制器请求HandLerMapping去查找Handler(可以根据SpringMVC的配置文件或注解去查找)
(3)处理器映射器向前端控制器返回HandlerExcutionChain(执行器链)
(4)前端控制器调用处理器适配器去执行Handler
(5)处理适配器去执行Handler
(6)Handler将ModelAndView返回给处理适配器(ModelAndView是SpringMVC底层的一个对象,内部封装了Model和View,也就是分装了数据和视图的信息)
(7)处理适配器将ModelAndView返回给前端控制器
(8)前端控制器请求视图解析器去解析视图(根据逻辑视图名解析成物理视图)

Mybaits链接数据库MySQL

1 加载配置并初始化
ClassForName加载驱动
2 根据配置文件config.xml生成SQLSessionFactory
3 根据SQLSessionFactory生成sqlSession
4 由SQLSession产生Mapper代理对像
5 Mapper代理对象进行数据库操作
6具体使用
在项目包下创建一个Mapper的抽象类[2],在Mapper中定义增删改查的抽象方法,
再创建一个Mapper的xml文件用以保存SQL语句,再书写Service类调用Mapper.xml中的Sql即可

#使用Jsp完成视觉设计
(1)首先用div标签定下大致总-分-总布局
(2)全局设置边框1px solid black
(3)消除div之间的空隙: border-collapse:collapse
(4)模块分为交流区与电子图书馆,交流区通过收发贴实现即时学术交流,电子图书馆收集学习资料方便大家网上学习。
(5)设置全局背景图片,因为背景图片整体颜色为黑,所以文本字体我设置为白
(6)使用iframe固定主页面,其余页面都在主页面下的div中显示。
(7)HTML/CSS的主要用法:关于样式共有三种设置方式。一是外部式,在外部的样式文件,一般都是拷贝自别人已经设置好的样式,项目成员都应用以保证样式统一美观,外部文件的扩展名为.CSS,引用语句为,表示引用ui文件夹下的bootstrap样式,这种样式的优先级最低;二是嵌入式,在头部文件中以载入,可以设置字体颜色,表格边框,空隙边距等;三是内联式,在标签中定义样式,这种样式的优先级最高。

详细视频演示

请联系我获取更详细的演示视频

核心代码部分展示

/**
 * 登录相关
 */
	// 前台登录
	@RequestMapping("login.do")
	public String checkAdminLogin(Sysuser user, HttpSession session) {
		Map<String, Object> u = new HashMap<String, Object>();
		System.out.println("name===" + user.getUname());
		u.put("uname", user.getUname());
		u.put("pwd", user.getPwd());
		u.put("utype", "会员");
		user = userService.adminLogin(u);
		if (user != null) {
			session.setAttribute("user", user);
			System.out.println("user=" + user);
			session.removeAttribute("suc");
			return "redirect:index.do";
		} else {
			session.setAttribute("suc", "登录失败!用户名或密码错误!");
			return "login";
		}

	}

	// 后台登录
	@RequestMapping("admin/alogin.do")
	public String checkLogin(Sysuser user, HttpSession session) {
		Map<String, Object> u = new HashMap<String, Object>();
		System.out.println("name===" + user.getUname());
		System.out.println("pwd===" + user.getPwd());
		u.put("uname", user.getUname());
		u.put("utype", user.getUtype());
		u.put("pwd", user.getPwd());
		user = userService.adminLogin(u);
		if (user != null) {
			session.setAttribute("auser", user);
			System.out.println("auser=" + user);
			return "admin/index2";
		} else {

			return "admin/login";
		}
	}

// 验证用户名是否存在
		@RequestMapping("checkLossPwd.do")
		public void checkLossPwd(Sysuser user, HttpServletResponse response) {
			Map<String, Object> map = new HashMap<>();
			map.put("uname", user.getUname());
			System.out.println("uname===" + user.getUname());
			System.out.println("uname222===" + userService.checkUname(map));
			JSONObject obj = new JSONObject();
			Sysuser user1 = userService.checkUname(map);
			if (userService.checkUname(map) != null) {
				System.out.println("uname233333333333===");
				obj.put("info", "ok");
				obj.put("answer", user1.getMbanswer());
				obj.put("question", user1.getQuestion());
				obj.put("pwd", user1.getPwd());
			} else {
				System.out.println("uname255555555555555===");
				obj.put("info", "ng");

			}
			response.setContentType("text/html;charset=utf-8");
			PrintWriter out = null;
			try {
				out = response.getWriter();
				out.print(obj);
				out.flush();
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				out.close();
			}
		}

操作可行性

Spring MVC属于Spring Frame Work的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1,Struts2等。。
MyBatis框架: MyBatis是一个支持普通sql查询,存储过程和高级映射的优秀持久层框架,Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的xml或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。。

可行性论证

  1. 完成系统需求分析和功能模块结构设计,完成界面基本样式设计。
  2. 完成了系统数据库的设计,并基于MySQL数据库管理系统,建立了名称为javaweb的数据库。
  3. 前端采用的html5,css,javascript语言和bootstrap框架,后端采用java语言,springmvc框架,mybatis操作数据源,使用软件:idea,eclipse、MySQL。完成了用户登录管理等模块的设计与实现。

系统测试

为了确保系统的正确性和可靠性,需要对不同的模块进行审查,在代码完成后对系统进行测试必不可少。(1)代码逻辑测试,代码的质量决定了模块运行的持续性。因此,在编写代码时,必须严格按照测试的要求进行编写,测试输出是否符合预期的要求。(2)功能性测试,为了测试模块之间的衔接是否紧密,各个功能之间的组合是否符合最初系统设计的要求,有一些细微的功能上的差别是否会影响到系统的运行,本系统虽然还是存在一些细小的误差,但是不会影响整个系统的运行。(3)压力测试,当多个管理员登录系统进行操作时,测试服务器是否能承载。球迷同时登录服务器是都可以承载。经过以上测试发现本系统存在一些不足和缺点,一边测试一边进行修改,力争使本系统符合要求。

详细视频演示

请联系我获取更详细的演示视频

源码获取方式

点击文章下方名片联系我即可~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值