基于SSM和MySQL实现的疫情数据统计分析系统

基于SSM和MySQL实现的疫情数据统计分析系统 1,项目简介 疫情数据统计分析系统是一个基于SSM框架的网页端系统,项目中实现的功能如下:用户访问网站可以浏览全国疫情的图表信息

本文包含相关资料包-----> 点击直达获取<-------

基于SSM和MySQL实现的疫情数据统计分析系统

1.项目简介

疫情数据统计分析系统是一个基于SSM框架的网页端系统,项目中实现的功能如下:用户访问网站可以浏览全国疫情的图表信息,管理员登录后台管理系统,可以进行数据录入、数据查询、图表展示、用户录入和用户编辑。

功能描述

  • 图表展示 :到目前为止,全国疫情分布图、扇形图、柱状图和表格

  • 数据录入 :录入各个省份的确诊人数、疑似人数、隔离人数、治愈人数和死亡人数

  • 数据查询 :展示录入疫情数据的各个省份的确诊人数、疑似人数、隔离人数、治愈人数和死亡人数,以及查询输入省份的疫情数据

  • 用户录入 :录入用户信息,包括账号、用户名和密码,使用账号和密码可以登录后台进行数据管理和系统管理

  • 用户编辑 :查询和修改用户的信息

功能结构

系统用例

项目流程图

2.数据库设计

2.1 表结构

epidemics

provinces

users

2.2 E-R图

3.软件架构

  • 后端 :Spring+SpringMVC+Mybatis

  • 前端 :jsp页面

  • jdk :1.8

  • 开发环境 :IDEA

  • 数据库 :MySQL 5.7

安装教程

  • 在SQLyog或者Navicat中导入数据库文件,创建数据库和相关表

  • 将代码导入IDEA中

  • 启动成功,可以在浏览器中访问

地图上没有显示数据,因为需要录入当天各个省份的疫情数据,才能看到。

4.项目实现

4.1 配置类

MybatisConfig.java

```java @Configuration @MapperScan(basePackages = "com.liu.epidemic.mapper") public class MybatisConfig { @Bean public BasicDataSource basicDataSource(){ BasicDataSource dataSource=new BasicDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/epidemic?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf8"); dataSource.setUsername("root"); dataSource.setPassword("123456"); //配置连接池的相关参数 dataSource.setInitialSize(3); //连接池的初始容量 dataSource.setMaxActive(10); //连接最大活动数量 dataSource.setMaxIdle(1); //连接最大的空闲数量 dataSource.setMaxWait(4000); //连接的超时时间 dataSource.setDefaultAutoCommit(false); //取消SQL语句的自动提交 return dataSource; }

@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource){
    SqlSessionFactoryBean factoryBean=new SqlSessionFactoryBean();
    factoryBean.setDataSource(dataSource);
    //给实体类起别名 com.liu.epidemic.bean.UserInfo==UserInfo
    factoryBean.setTypeAliasesPackage("com.liu.epidemic.bean");
    //创建一个配置对象,该对象可以设置实体类中的成员变量名与数据库的对应关系
    org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
    //将数据库表中的字段名中的下划线取消,紧跟后面的第一个字符变大写,形成实体类中的成员变量名
    //user_id --- userId    province_name --- provinceName
    configuration.setMapUnderscoreToCamelCase(true);
    factoryBean.setConfiguration(configuration);
    SqlSessionFactory sessionFactory = null;
    try {
        sessionFactory = factoryBean.getObject();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return sessionFactory;
}

} ```

SpringMVCConfig.java

java @Configuration //表示当前类是配置类 @EnableWebMvc //表示当前类是springMVC的配置类 //将Controller注解的类纳入springMVC的组件扫描中(让springMVC管理Controller类) @ComponentScan(includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class)) public class SpringMVCConfig extends WebMvcConfigurerAdapter { @Autowired //给变量赋值 private DateConverter dateConverter; /* URL请求没有匹配到 */ @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); //给静态页面资源放行 } /* 添加格式化规则 */ @Override public void addFormatters(FormatterRegistry registry) { registry.addConverter(dateConverter); } /* 添加视图控制器 设置默认的资源访问路径 /epidemic */ @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("epidemic"); } /* 配置视图解析器 给视图添加前缀和后缀 */ @Override public void configureViewResolvers(ViewResolverRegistry registry) { registry.jsp("/",".jsp"); } }

4.2 业务代码

```java @Service public class EpidemicServiceImpl implements EpidemicService { @Autowired private EpidemicMapper epidemicMapper; @Autowired private ProvinceMapper provinceMapper; @Override public List saveEpidemicInfos(Integer userId, DailyEpidemicInfo dailyEpidemicInfo) { String date = dailyEpidemicInfo.getDate(); List array = dailyEpidemicInfo.getArray(); String[] strings = date.split("-"); int year = Integer.parseInt(strings[0]); int month = Integer.parseInt(strings[1]); int day = Integer.parseInt(strings[2]); for(int i=0;i<array.size();i++){ //epidemicInfo封装页面提交过来的数据 EpidemicInfo epidemicInfo = array.get(i); epidemicInfo.setDataYear(year); epidemicInfo.setDataMonth(month); epidemicInfo.setDataDay(day); epidemicInfo.setUserId(userId); epidemicInfo.setInputDate(new Date()); //设置当前时间作为数据录入时间 //保存所有的疫情信息数据 epidemicMapper.saveEpidemicInfos(epidemicInfo); } //返回下一组 List noDataProvinceList = provinceMapper.findNoDataProvinceList(year, month, day); return noDataProvinceList; } @Override public List findEpidemicInfoTotal() { GregorianCalendar calendar = new GregorianCalendar(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH)+1; int day = calendar.get(Calendar.DATE);

    List<EpidemicDetailInfo> epidemicInfoTotals = epidemicMapper.findEpidemicInfoTotal(year, month, day);
    return epidemicInfoTotals;
}
@Override
public EpidemicDetailInfo queryEpidemicInfoByProvince(String province) {
    GregorianCalendar calendar = new GregorianCalendar();
    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH)+1;
    int day = calendar.get(Calendar.DATE);

    EpidemicDetailInfo epidemicDetailInfo = epidemicMapper.queryEpidemicInfoByProvince(year, month, day, province);
    return epidemicDetailInfo;
}

} ```

4.3 控制层代码

java @Controller @RequestMapping("/epidemicData") public class EpidemicController { @Autowired private EpidemicService epidemicService; @RequestMapping("/ajax/input") //@RequestBody作用是将页面提交的json格式的数据转换成对象 @ResponseBody //将return对象转换成json格式响应给页面 public AjaxResponseInfo saveEpidemicInfo(@RequestBody DailyEpidemicInfo dailyEpidemicInfo, HttpSession session){ AjaxResponseInfo ajaxResponseInfo=new AjaxResponseInfo(); UserInfo loginedUser = (UserInfo) session.getAttribute("loginedUser"); System.out.println("saveEpidemicInfo "+dailyEpidemicInfo); if(loginedUser!=null){ //已经登录 Integer userId = loginedUser.getUserId(); List<ProvinceInfo> provinceInfos = epidemicService.saveEpidemicInfos(userId, dailyEpidemicInfo); ajaxResponseInfo.setCode(0); ajaxResponseInfo.setMsg("保存成功"); ajaxResponseInfo.setData(provinceInfos); }else{ //表示用户没有登录 ajaxResponseInfo.setCode(-2); ajaxResponseInfo.setMsg("权限不足,请登录后再试"); } return ajaxResponseInfo; } @RequestMapping("/ajax/lastestData") @ResponseBody public AjaxResponseInfo findEpidemicInfoTotal(){ List<EpidemicDetailInfo> epidemicInfoTotals = epidemicService.findEpidemicInfoTotal(); AjaxResponseInfo ajaxResponseInfo = new AjaxResponseInfo(); ajaxResponseInfo.setCode(0); ajaxResponseInfo.setMsg("查询成功"); ajaxResponseInfo.setData(epidemicInfoTotals); return ajaxResponseInfo; } @RequestMapping("/ajax/queryProvince") @ResponseBody public AjaxResponseInfo queryEpidemicInfoByProvince(@RequestBody String province){ EpidemicDetailInfo epidemicDetailInfo = epidemicService.queryEpidemicInfoByProvince(province); AjaxResponseInfo ajaxResponseInfo = new AjaxResponseInfo(); if(epidemicDetailInfo!=null){ ajaxResponseInfo.setCode(0); ajaxResponseInfo.setMsg("查询成功"); ajaxResponseInfo.setData(epidemicDetailInfo); }else{ ajaxResponseInfo.setCode(-1); ajaxResponseInfo.setMsg("查询失败"); } return ajaxResponseInfo; } }

UserController.java

java @Controller //该注解表示当前类被springmvc框架管理 @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @RequestMapping("/login") public String login(UserInfo userInfo, Model model, HttpSession session){ UserInfo login = userService.login(userInfo); System.out.println("usercontroller"+login); if(login!=null){ //登录成功,记录用户的登录状态 session.setAttribute("loginedUser",login); //重定向,跳转页面 return "redirect:/main.jsp"; }else{ //请求转发 //跳转到 /login.jsp model.addAttribute("msg","账号或密码有误!"); return "login"; } } @RequestMapping("/logout") public String logout(HttpSession session){ session.invalidate(); //使所有Attribute失效 return "redirect:/login.jsp"; } @RequestMapping("/input") public String userInput(UserInfo userInfo,Model model){ userService.userInput(userInfo); model.addAttribute("msg1","用户录入成功!"); return "admin/user_input"; } @RequestMapping("/ajax/query") @ResponseBody public AjaxResponseInfo queryUserByAccount(@RequestBody String account){ UserInfo userInfo = userService.queryUserByAccount(account); AjaxResponseInfo ajaxResponseInfo = new AjaxResponseInfo(); if(userInfo!=null){ ajaxResponseInfo.setCode(0); ajaxResponseInfo.setMsg("查询成功"); ajaxResponseInfo.setData(userInfo); }else{ ajaxResponseInfo.setCode(-1); ajaxResponseInfo.setMsg("该账号不存在!"); } return ajaxResponseInfo; } @RequestMapping("/ajax/update") @ResponseBody public AjaxResponseInfo updateUser(@RequestBody UserInfo userInfo){ AjaxResponseInfo ajaxResponseInfo = new AjaxResponseInfo(); int res = userService.updateUser(userInfo); if(res>0){ ajaxResponseInfo.setCode(0); ajaxResponseInfo.setMsg("修改成功!"); }else{ ajaxResponseInfo.setCode(-1); ajaxResponseInfo.setMsg("修改失败!"); } return ajaxResponseInfo; } }

5.项目展示

登录

若登录失败,则显示如下 :

首页

数据录入

数据查询

若输入省份,点击查询,则会查询相关省份的疫情信息

图表展示

全国疫情分布图:各个省份颜色会随着确诊人数的增加而变深,当鼠标悬停在某个省的地图上时,这个省的颜色会变成黄色,并显示该省的名字和确诊人数。

扇形图

表格

当日全国疫情柱状图

用户录入

若输入账号已存在,会提示用户

用户编辑

管理员可以修改用户名和密码,然后点击修改

用户操作

普通用户访问 http://localhost:8080/epidemic/ ,查看全国疫情数据统计信息。和上面图表展示信息相同。

参考文献

  • 移动互联网数据分析系统设计与实现(北京邮电大学·左猛)
  • Web数据库系统应用技术的研究(天津大学·高云)
  • 数据分析流程编排系统设计与实现(大连理工大学·闫欣)
  • 基于SSM框架的微生物数据分析与挖掘平台的设计与实现(华中科技大学·郑照翔)
  • 智慧园区物业电子服务系统设计与实现(华东师范大学·陈宇鹏)
  • 互联网金融数据平台的设计与实现(北京交通大学·揭杰)
  • 基于QSEIR模型的COVID-19发展趋势预测系统研究与开发(长春师范大学·郭皓钰)
  • 承压设备泄漏事故应急决策与救援指挥系统的建设(北京邮电大学·宋丹杰)
  • 新冠疫情舆情信息分析系统的设计与实现(华中科技大学·胡永辉)
  • 基于SSM的企业网站设计与实现(黑龙江大学·张泷元)
  • 济宁市林业局动物疫病防控信息管理系统设计与实现(山东大学·房璐璐)
  • 中小型建筑施工企业ERP管理系统(电子科技大学·陈巍祥)
  • 基于微服务的疫情联防联控平台研究与实现(上海第二工业大学·张亮)
  • 新冠疫情舆情信息分析系统的设计与实现(华中科技大学·胡永辉)
  • 济宁市林业局动物疫病防控信息管理系统设计与实现(山东大学·房璐璐)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码导航 ,原文地址:https://bishedaima.com/yuanma/35471.html

相关推荐

  • 基于Springboot+RabbitMQ+redis实现的超市订单管理系统

    基于Springboot+RabbitMQ+redis实现的超市订单管理系统 1 系统需求分析 超市订单管理系统是一个专为连锁店,超市等商业场所提供订单管理平台的系统
    2024年05月14日
    5 1 2
  • 基于mybatis的时间日程管理系统

    基于 MyBatis 的时间日程管理系统 1 绪论 1,1 背景 随着时代的进步,网络技术层出不穷信息量急剧膨胀,整个人类社会已成为信息化的社会
    2024年05月14日
    2 1 1
  • 新手python简单的飞机游戏

    game 一个新手做的python简单的飞机游戏 参考文献 基于Java EE的个人博客管理系统的设计和实现(内蒙古大学·闫伟光) 深度可定制的工具化爬虫系统的设计与实现(北京邮电大学·李笑语) 航空订票服务器爬虫检测技术研究(杭州电子科技大学·陈万烤) 主题爬虫关键技术研究(哈尔滨工程大学·黄正德) 机票票价预测系统设计与实现(大连理工大学·陈岩松) 深度可定制的工具化爬虫系统的设计与实现(北京邮电大学·李笑语) 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航) 基于B/S架构的酷跑社区系统的设计与实现(内蒙古大学·张晓乐) 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航) 机票票价预测系统设计与实现(大连理工大学·陈岩松) 山东航空货运业务管理系统的设计与实现(山东大学·高辉) 飞行情报资料管理信息系统设计与实现(中国地质大学(北京)·张晓琴) 山东航空货运业务管理系统的设计与实现(山东大学·高辉) 豆玩手机游戏平台的设计与实现(吉林大学·李天明) 面向高职信息技术教育的严肃游戏设计与实施(大连理工大学·王晓姝)
    2024年05月14日
    1 1 1
  • 基于JSP实现的校园师生交流系统

    基于JSP实现的校园师生交流系统 第1章 课设任务 1,1 课程题目 师生交流系统的设计与开发 1,2 课设目的 复习,巩固JavaWeb的基础知识
    2024年05月14日
    17 1 3
  • 基于Python实现手写数字识别

    基于 TensorFlow 框架的手写数字识别系统 摘要 时下人工智能蔚然成风,作为新型生产要素,在各个领域都极大地推动了经济发展,预示着社会经济将取得巨大增长和和人类潜能将得到深度开发
    2024年05月14日
    4 1 2
  • 基于springboot和ftp实现的网盘文件系统

    基于springboot和ftp实现的网盘文件系统 1,项目简介 因为开发中很多时候都需要上传和下载文件,所以想开发出一个模块,用于文件的上传和下载,自然而然也就想到了网盘
    2024年05月14日
    4 1 1
  • 基于Spring与Spark开发电影推荐网站

    电影推荐系统 演示效果 演示视频 环境搭建 ES ``` docker run -p 9200:9200 -p 9300:9300 --name='es' -d -v /home/k8s-develop/movie/elasticsearch
    2024年05月14日
    4 1 1
  • 基于Python的智能监控平台

    基于Python的智能监控平台 1,环境配置 网站使用了 Flask 框架,安装 Flask : pip install Flask Flask 连接 mysql 数据库需要库 flask_sqlalchemy 和库 pymysql
    2024年05月14日
    2 1 1
  • JavaWeb电商项目

    基于 javaweb 技术的在线电子商城系统 摘 要 随着人们生活水平的提高,对物质要求也越来越高,人们网购的消费也逐年增长,所以电子商务发展十分迅速
    2024年05月14日
    3 1 2
  • 大数据中的文本挖掘之Python

    大数据中的文本挖掘 Introduction 本次作业的任务是故事生成,即给定一个故事标题,要求输出 5 个句子的短故事,我们力图复现一下论文(Seq2Seq
    2024年05月14日
    1 1 1

发表回复

登录后才能评论