java SSM水质历史数据可视化设计myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点
    java SSM水质历史数据可视化设计是一套完善的web设计系统(系统采用SSM框架进行设计开发,spring+springMVC+mybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。

ssm 水质历史数据可视化设计


二、功能介绍
主要内容包括数据的按时间段查询、表格化分页显示、趋势图显示等功能。完成课题的条件需要熟悉Java web开发,以及web前端设计技术。实现检测站点历史数据的表格化分页显示、根据查询时间区间查询历史数据、历史数据折线图显示等功能,不同的用户角色所能浏览的权限不同
(1)用户管理:对用户信息进行添加、删除、修改和查看
(2)管理员管理:对管理员信息进行添加、删除、修改和查看
(3)地区管理:对地区信息进行添加、删除、修改和查看
(4)站点管理:对站点信息进行添加、删除、修改和查看
(5)水质管理:对水质信息进行添加、删除、修改和查看 折线图查看
(6)个人信息修改

数据库设计

(1)用户信息表如表3.1所示:

表3.1 用户信息表

序号

字段名称

数据类型

长度

主键

描述

1

yhid

INTEGER

11

用户编号

2

yhm

VARCHAR

40

用户名

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

5

lxdh

VARCHAR

40

联系电话

6

lxdz

VARCHAR

40

联系地址

(2)管理员信息表如表3.2所示:

表3.2 管理员信息表

序号

字段名称

数据类型

长度

主键

描述

1

glyid

INTEGER

11

管理员编号

2

yhm

VARCHAR

40

用户名

3

mm

VARCHAR

40

密码

4

xm

VARCHAR

40

姓名

(3)地区信息表如表3.3所示:

表3.3 地区信息表

序号

字段名称

数据类型

长度

主键

描述

1

dqid

INTEGER

11

地区编号

2

dq

VARCHAR

40

地区

(4)站点信息表如表3.4所示:

表3.4 站点信息表

序号

字段名称

数据类型

长度

主键

描述

1

zdid

INTEGER

11

站点编号

2

zdmc

VARCHAR

40

站点名称

3

dq

VARCHAR

40

地区

(5)水质信息表如表3.5所示:

表3.5 水质信息表

序号

字段名称

数据类型

长度

主键

描述

1

szid

INTEGER

11

水质编号

2

zhd

VARCHAR

40

站点

3

sj

VARCHAR

40

时间

4

zd

VARCHAR

40

浊度

5

yd

VARCHAR

40

盐度

6

sjd

VARCHAR

40

酸碱度

7

sw

VARCHAR

40

水温

8

rjy

VARCHAR

40

溶解氧

9

ddl

VARCHAR

40

电导率

系统ER 图

代码设计

	public String addPage(yonghu yonghu,HttpServletRequest request){
		Map<String,Object> map= new HashMap<String,Object>();
		
		System.out.println("addPageok");
		return "yonghu/yonghuadd";
	}
	
	@RequestMapping(value="/add")
	public String add(yonghu yonghu,HttpServletRequest request){
		Map<String,Object> map= new HashMap<String,Object>();
		//String name=(String)request.getParameter("name");

		map.put("yhid", yonghu.getYhid());//用户编号

		map.put("yhm", yonghu.getYhm());//用户名

		map.put("mm", yonghu.getMm());//密码

		map.put("xm", yonghu.getXm());//姓名

		map.put("lxdh", yonghu.getLxdh());//联系电话

		map.put("lxdz", yonghu.getLxdz());//联系地址
		
		map.put("zd", yonghu.getZd());//联系地址

		String yhid=(String)yonghu.getYhid();//用户编号

		String yhm=(String)yonghu.getYhm();//用户名

		String mm=(String)yonghu.getMm();//密码

		String xm=(String)yonghu.getXm();//姓名

		String lxdh=(String)yonghu.getLxdh();//联系电话

		String lxdz=(String)yonghu.getLxdz();//联系地址

		String sql="select count(1) as num from yonghu where yhm='"+yhm+"'";
		ResultSet rs=null;
		int num=0;
		DBO db=new DBO();
		try{
			rs=db.query(sql);
			if(rs.next()){
				num=rs.getInt("num");
			}
			if(num>0){
				request.setAttribute("msg", "<script>alert('添加失败、用户名重复');</script>");
				
			}else{
				
				yonghudao.save(map);
				
				
				request.setAttribute("msg", "<script>alert('添加成功');</script>");
			}
		}catch(Exception e){
			e.printStackTrace();
		}

		System.out.println("addok");
		return "yonghu/yonghuadd";
	}
	
	/**删除 
	 * 
	 */
	@RequestMapping(value="/del")
	public String  del(Integer id,HttpServletRequest request,Map<String,Object> map){
	//	Map<String,Object> map= new HashMap<String,Object>();
		String a=(String)request.getParameter("keyid");
		id=Integer.parseInt(a);
		request.setAttribute("msg", "<script>alert('删除成功');</script>");
		yonghudao.del(id);
		return selectall(null,map,request);
	}
	/**
	 * 修改yonghu信息
	 */
	@RequestMapping(value="/update")
	public String update(yonghu yonghu,HttpServletRequest request,Map<String,Object> map1){
		Map<String,Object> map= new HashMap<String,Object>();
		map.put("yhid", yonghu.getYhid());//用户编号

		map.put("yhm", yonghu.getYhm());//用户名

		map.put("mm", yonghu.getMm());//密码

		map.put("xm", yonghu.getXm());//姓名

		map.put("lxdh", yonghu.getLxdh());//联系电话

		map.put("lxdz", yonghu.getLxdz());//联系地址

		String yhid=(String)yonghu.getYhid();//用户编号

		String yhm=(String)yonghu.getYhm();//用户名

		String mm=(String)yonghu.getMm();//密码

		String xm=(String)yonghu.getXm();//姓名

		String lxdh=(String)yonghu.getLxdh();//联系电话

		String lxdz=(String)yonghu.getLxdz();//联系地址

		request.setAttribute("msg", "<script>alert('修改成功');</script>");
		yonghudao.update(map);
		return selectall(null,map1,request);
	}
	/**
	 * 修改yonghu信息
	 */
	@RequestMapping(value="/upd")
	public String upd(yonghu yonghu,HttpServletRequest request,Map<String,Object> map1){
		Map<String,Object> map= new HashMap<String,Object>();
		map.put("yhid", yonghu.getYhid());//用户编号

		map.put("yhm", yonghu.getYhm());//用户名

		map.put("mm", yonghu.getMm());//密码

		map.put("xm", yonghu.getXm());//姓名

		map.put("lxdh", yonghu.getLxdh());//联系电话

		map.put("lxdz", yonghu.getLxdz());//联系地址

		String yhid=(String)yonghu.getYhid();//用户编号

		String yhm=(String)yonghu.getYhm();//用户名

		String mm=(String)yonghu.getMm();//密码

		String xm=(String)yonghu.getXm();//姓名

		String lxdh=(String)yonghu.getLxdh();//联系电话

		String lxdz=(String)yonghu.getLxdz();//联系地址

		request.setAttribute("msg", "<script>alert('修改成功');</script>");
		yonghudao.update(map);
		return mod(null,map1,request);
	}

mybatis配置

<insert id="insertshuizhi"  parameterType="java.util.Map">
 insert  into  shuizhi(zhd,sj,zd,yd,sjd,sw,rjy,ddl)  values(#{zhd},#{sj},#{zd},#{yd},#{sjd},#{sw},#{rjy},#{ddl})
</insert>

<delete id="delshuizhi" parameterType="int">
 delete  from  shuizhi where szid=#{szid}
</delete>

<update id="updateshuizhi" parameterType="java.util.Map">
update shuizhi set zhd=#{zhd},sj=#{sj},zd=#{zd},yd=#{yd},sjd=#{sjd},sw=#{sw},rjy=#{rjy},ddl=#{ddl} where szid=#{szid}
</update>

<!--  查询返回的是 list<map> -->
<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean  -->
<select  id="selectshuizhi"  parameterType="int" resultType="java.util.Map">
  select  * from shuizhi where szid=#{szid}
</select>

<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean  -->
<select  id="selectall"  parameterType="java.util.Map" resultType="java.util.Map">
  select  a.*,b.zdmc,b.dq from shuizhi a,zhandian b where 1=1 and a.zhd=b.zdid
<if test=" null != zhd and zhd!=''" >
 and a.zhd = #{zhd}
</if>
<if test=" null != kssj and kssj!=''" >
 and a.sj >= #{kssj}
</if>
<if test=" null != jssj and jssj!=''" >
 and  #{jssj}>=a.sj

</if>

</select>


  
三、注意事项
    1、管理员账号:admin 密码:admin 数据库配置文件datasource.properties
     2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。
    3、数据库文件名是jspssmwater.sql,系统名称ssmwater
    4、系统首页地址:http://127.0.0.1:8080/ssmwater/login.jsp

四 系统实现


源码获取 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023-我的CSDN创作之旅

1.博客内容与数量 2023年共发表博客59篇&#xff0c;内容主要集中在GIS&#xff0c;空间分析等领域 主要内容有&#xff1a; networkx学习 Geospatial Data Science Geocomputation ESDA in PySal SHAP Spatial Data Analysis BikeDNA 以下是对这几个章节主要内容的简…

Docker无法启动Postgresql容器

目录 问题描述解决问题 问题描述 拉取了一个Postgresql14.2的镜像&#xff0c;在docker run创建并运行容器之后使用docker ps发现容器没有跑起来&#xff0c;再次使用docker start也没跑起来。 docker run -d --name mypg -v psql-data:/var/lib/postgresql/data -e POSTGRES…

【Bug】Android BottomNavigationView 图标黑色色块问题

最近在研究Android Jetpack组件&#xff0c;在使用Navigation配合底部导航栏时&#xff0c;发现一个奇怪的问题&#xff0c;如下&#xff1a; 说明&#xff1a;图标来源于Iconfont开源图标库 我的第三个图标变成了一个黑色色块&#xff0c;这个问题前两天我遇见过&#xff0c…

web服务器nginx和Apache有什么区别?

随着互联网的快速发展&#xff0c;Web服务器在互联网应用中扮演着越来越重要的角色。其中&#xff0c;Nginx和Apache是两种广泛使用的Web服务器软件。尽管它们都可以实现Web服务器的功能&#xff0c;但Nginx和Apache在许多方面存在一些重要的区别。本文将探讨Nginx和Apache之间…

学习Vue 03-03 为TypeScript使用defineComponent支持

03 为TypeScript使用defineComponent支持 The defineComponent() method is a wrapper function that accepts an object of configurations and returns the same thing with type inference for defining a component. defineComponent() 方法是一个封装函数&#xff0c;它…

win2003搭建DNS服务器域名解析方法

可以搭建DNS服务器的系统有很多&#xff0c;这里以win2003举例。 要在Windows 2003上搭建DNS服务器&#xff0c;需要按照以下步骤操作&#xff1a; 一 配置DNS服务器 1、打开“控制面板”,选择“添加/删除程序”,点击“添加/删除Windows组件”。 2、在“Windows组件向导”中…

【技能---500G硬盘-Ubuntu 20.04安装分区参考】

文章目录 Ubuntu 20.04安装分区指导安装分区流程Ubuntu 系统分区关键一步----- 选择安装启动引导器的设备 Ubuntu 20.04安装分区指导 安装Ubuntu 20.04的时候可以自己指定各个内存空间的占用&#xff0c;值得注意的是&#xff0c;这里的分区有一定的技巧&#xff01;&#xff0…

深度学习 Day24——J3-1DenseNet算法实战与解析

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制&#x1f680; 文章来源&#xff1a;K同学的学习圈子 文章目录 前言1 我的环境2 pytorch实现DenseNet算法2.1 前期准备2.1.1 引入库2.1.2 设…

Spring MVC RequestMappingInfo路由条件匹配

前言 我们已经知道&#xff0c;被RequestMapping标注的方法会被解析为 HandlerMethod&#xff0c;它也是 Spring MVC 中最常用的 Handler 类型。现在的问题是&#xff0c;HTTP 请求是如何路由到对应的 HandlerMethod&#xff1f;你可能脱口而出&#xff1a;根据请求的 Url 匹配…

知识图谱 vs GPT

简介&#xff1a; 当我们谈论知识图谱时&#xff0c;我们指的是一种结构化的知识表示形式&#xff0c;是一种描述真实世界中事物及其关系的语义模型&#xff0c;用于描述实体之间的关系。它通过将知识组织成图形结构&#xff0c;提供了一种更全面、准确和智能的信息处理方式。知…

【论文阅读笔记】Mip-NeRF 360: Unbounded Anti-Aliased Neural Radiance Fields

目录 概述摘要引言参数化效率歧义性 mip-NeRF场景和光线参数化从粗到细的在线蒸馏基于区间的模型的正则化实现细节实验限制总结&#xff1a;附录退火膨胀采样背景颜色 paper&#xff1a;https://arxiv.org/abs/2111.12077 code&#xff1a;https://github.com/google-research/…

分布式系统架构设计之分布式事务的概述和面临的挑战

在当今大规模应用和服务的背景下&#xff0c;分布式系统的广泛应用已经成为了一种必然的主流趋势。然后&#xff0c;伴随着分布式系统的应用范围的增长&#xff0c;分布式事务处理成为了一个至关重要的关键话题。在传统的单体系统中&#xff0c;事务处理通常相对简单&#xff0…

opencv006 绘制直线、矩形、⚪、椭圆

绘制图形是opencv经常使用的操作之一&#xff0c;库中提供了很多有用的接口&#xff0c;今天来学习一下吧&#xff01; &#xff08;里面的函数和参数还是有点繁琐的&#xff09; 最终结果显示 函数介绍 直线 line(img, pt1, pt2, color, thickness, lineType, shift) img: 在…

django websocket

目录 核心代码 consumers.py from channels.generic.websocket import WebsocketConsumer from channels.exceptions import StopConsumer import datetime import time from asgiref.sync import async_to_sync class ChatConsumer(WebsocketConsumer):def websocket_conne…

【STM32】STM32学习笔记-编码器接口测速(20)

00. 目录 文章目录 00. 目录01. 预留02. 编码器测速接线图03. 编码器测速程序示例04. 程序下载05. 附录 01. 预留 02. 编码器测速接线图 03. 编码器测速程序示例 Encoder.h #ifndef __ENCODER_H #define __ENCODER_Hvoid Encoder_Init(void); int16_t Encoder_Get(void);#en…

someip中通过event方式通信,为什么实际使用时使用的是eventGroup?

someip是一种面向服务的可伸缩的协议,用于控制消息的汽车中间件的解决方案。someip提供了三种接口类型:Method,Event和Field,分别对应不同的通信机制和场景。 Event是一种主动发送的接口,用于通知客户端服务端的状态变化或者事件发生。Event可以按照一定的规则或者周期发…

IDEA中自动导包及快捷键

导包设置及快捷键 设置&#xff1a;Setting->Editor->General->Auto import快捷键 设置&#xff1a;Setting->Editor->General->Auto import java区域有两个关键选项 Add unambiguous imports on the fly 快速添加明确的导包 IDEA将在我们书写代码的时候…

JS中模块的导入导出

背景 学习js过程中&#xff0c;发现导入导出有的是使用的export 导出&#xff0c;import导入&#xff0c;有的是使用exports或module.exports导出&#xff0c;使用require导入&#xff0c;不清楚使用场景和规则&#xff0c;比较混乱。 经过了解发现&#xff0c;NodeJS 中&…

莫比乌斯函数

积性函数定义 若gcd(p,q)1&#xff0c;有f(p*q)f(p)*f(q)&#xff0c;则f(x)是积性函数 其中规定f(1)1&#xff0c;对于积性函数有&#xff1a;所有的积性函数都可以用筛法求出 常见的积性函数有欧拉函数和莫比乌斯函数 筛法求莫比乌斯函数 const int N 1e9 5; const int …

QT_01 安装、创建项目

QT - 安装、创建项目 1. 概述 1.1 什么是QT Qt 是一个跨平台的 C图形用户界面应用程序框架。 它为应用程序开发者提供建立艺术级图形界面所需的所有功能。 它是完全面向对象的&#xff0c;很容易扩展&#xff0c;并且允许真正的组件编程。 1.2 发展史 1991 年 Qt 最早由奇…