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

基于SSM的垃圾分类管理系统的设计与实现 (含源码+sql+视频导入教程+论文)

👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频

1 、功能描述

  基于SSM的垃圾分类管理系统拥有两种角色:用户和管理员。具体功能如下:
系统功能结构图

1.1 背景描述

  基于SSM的垃圾分类管理系统采用Spring、SpringMVC和MyBatis框架,实现了垃圾分类、回收、统计等核心功能。该系统可便捷地添加、查询和分类垃圾信息,提高垃圾分类效率,促进环保事业。界面简洁,操作方便,可广泛应用于小区、学校等场所。通过该系统,用户可轻松掌握垃圾分类知识,养成良好的垃圾分类习惯,共同构建美好的生活环境。

2、项目技术

后端框架:SSM(Spring、SpringMVC、Mybatis)

前端框架:Bootstrap、html、css、JavaScript、JQuery

2.1 SSM

  SSM(Spring+SpringMVC+MyBatis)是目前比较主流的Java EE企业级框架,适用于搭建各种大型的企业级应用系统。其中,Spring就像是整个项目中的粘合剂,负责装配bean并管理其生命周期,实现控制反转(IoC)的功能。SpringMVC负责拦截用户请求,通过DispatcherServlet将请求匹配到相应的Controller并执行。而MyBatis则是对JDBC的封装,让数据库底层操作变得透明,通过配置文件关联到各实体类的Mapper文件,实现了SQL语句映射。

2.2 mysql

  MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。

3、开发环境

  • JAVA版本:JDK1.8,其它版本理论上可以
  • IDE类型:IDEA、Eclipse、Myeclipse都可以。推荐IDEA与Eclipse
  • tomcat版本:Tomcat 7.x、8.x、9.x、10.x版本均可
  • 数据库版本:MySql 5.5-8.0
  • maven版本:无限制
  • 硬件环境:Windows 或者 Mac OS

4、功能截图+视频演示+文档目录

4.1 登录

登陆

4.2用户 模块

用户-垃圾分类信息

用户-垃圾与运输信息

用户-垃圾站信息

用户-报修信息

用户-投诉信息

  • 垃圾分类信息:用户可以根据垃圾分类名字,查询分类信息
  • 垃圾运输信息:用户可以查看自己小区对应的垃圾运输信息
  • 报修信息:用户可以根据关键词搜索自己报修过的信息,并能够增、删、改
  • 留言信息:用户可以根据关键词搜索自己留言过的信息,并能够增、删、改
  • 垃圾站信息:用户可以根据垃圾站名搜索垃圾站信息

4.3 管理员模块

管理员-垃圾信息管理

管理员-垃圾站管理

管理员-垃圾分类信息管理

管理员-报修管理

管理员-报修状态修改

管理员-小区管理

  • 小区管理:管理员可以根据小区名搜索小区信息,并能增删改查,还能禁止或开启小区账户
  • 垃圾运输信息管理:管理员可以增删改垃圾运输信息
  • 垃圾分类管理:管理员可以根据垃圾分类名搜索,,并能增删改查
  • 垃圾站管理:管理员可以根据垃圾站名搜索,并能增删改查
  • 报修管理:管理员可以根据关键字和小区名(即业主)搜索报修信息,并能修改信息的状态(状态分为“待处理”和“已完成”)
  • 投诉管理:管理员可以根据关键字和小区名(即业主)搜索投诉信息,并能修改信息的状态

4.4 设计文档目录

文档目录

5 、核心代码实现

5.1 配置代码

jdbc.url=jdbc:mysql://localhost:3306/database?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true
jdbc.username=root
jdbc.password=200212jdbc.initialSize=5
jdbc.maxActive=30jdbc.minPoolSize=2
jdbc.maxIdleTime=30000
jdbc.idleConnectionTestPeriod=100

5.2 其它核心代码

package com.learn.controller;import com.learn.entity.SysUserEntity;
import com.learn.service.SysUserService;
import com.learn.utils.R;
import com.learn.utils.ShiroUtils;import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.IncorrectCredentialsException;
import org.apache.shiro.authc.LockedAccountException;
import org.apache.shiro.authc.UnknownAccountException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.crypto.hash.Sha256Hash;
import org.apache.shiro.subject.Subject;
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.bind.annotation.ResponseBody;import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.Producer;/**** 登录相关*/
@Controller
public class SysLoginController {@Autowiredprivate Producer producer;@Autowiredprivate SysUserService sysUserService;@RequestMapping("captcha.jpg")public void captcha(HttpServletResponse response) throws ServletException, IOException {response.setHeader("Cache-Control", "no-store, no-cache");response.setContentType("image/jpeg");//生成文字验证码String text = producer.createText();//生成图片验证码BufferedImage image = producer.createImage(text);//保存到shiro sessionShiroUtils.setSessionAttribute(Constants.KAPTCHA_SESSION_KEY, text);ServletOutputStream out = response.getOutputStream();ImageIO.write(image, "jpg", out);}/*** 登录*/@ResponseBody@RequestMapping(value = "/sys/login", method = RequestMethod.POST)public R login(String username, String password, String captcha) throws IOException {String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY);System.out.println("==验证码=="+kaptcha);System.out.println("==password=="+password);System.out.println("==username=="+username);if(!captcha.equalsIgnoreCase(kaptcha)){return R.error("验证码不正确");}if(password==null){return R.error("密码不能为空");}try {Subject subject = ShiroUtils.getSubject();//sha256加密password = new Sha256Hash(password).toHex();System.out.println("==sha256加密==="+password);UsernamePasswordToken token = new UsernamePasswordToken(username, password);subject.login(token);} catch (UnknownAccountException e) {return R.error(e.getMessage());} catch (IncorrectCredentialsException e) {return R.error(e.getMessage());} catch (LockedAccountException e) {return R.error(e.getMessage());} catch (AuthenticationException e) {return R.error("账户验证失败");}return R.ok();}/***/@ResponseBody@RequestMapping(value = "/sys/reg", method = RequestMethod.POST)public R reg(String username, String password, String captcha) throws IOException {
//		String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY);
//		if(!captcha.equalsIgnoreCase(kaptcha)){
//			return R.error("验证码不正确");
//		}//sha256加密SysUserEntity user = new SysUserEntity();user.setUsername(username);user.setPassword(password);user.setStatus(1);List<Long> roles = new ArrayList<>();roles.add(1L);user.setRoleIdList(roles);this.sysUserService.save(user);return R.ok();}/*** 退出*/@RequestMapping(value = "logout", method = RequestMethod.GET)public String logout() {ShiroUtils.logout();return "redirect:login.html";}}

6 、功能视频演示

基于SSM的垃圾分类管理系统

7 、 获取方式

👇 大家点赞、收藏、关注、评论啦 👇🏻获取联系方式,后台回复关键词:垃圾👇🏻

请添加图片描述


http://www.mrgr.cn/news/12345.html

相关文章:

  • JSP 常用指令精简介绍
  • C++基础知识(三)
  • 第一次运行Neo4J
  • 力扣455-分发饼干(java题解)
  • 深度学习100问8-什么是PTB语料库
  • 标准UEFI Shell命令
  • 腾讯开源突破技术:V-Express引领人像照片视频化新潮流
  • 网络优化4|网络流问题|路径规划问题|车辆路径问题
  • 汽车功能安全--TC3xx LBIST触发时机讨论
  • 网络编程(学习)2024.8.27
  • 模拟实现string
  • 解锁2024音乐新玩法!3款剪辑神器在手,专属BGM创作从此不再难!
  • 【IC设计】跨时钟异步处理系列——单比特跨时钟
  • 如何使用Hive构建高校考试分析系统:大数据技术在教育领域的应用
  • 核心数据加密的实现方式
  • 心觉:赚钱是修行最快的一种方式
  • BAT32G137国产项目通用第四节:FreeRTOS MCU负载率
  • 算法刷题日志
  • CentOS7 多硬盘合成卷组并创建LVM,挂载到同一目录下
  • 2024年8月20日~2024年8月26日周报