JSP ssm 智能水表管理myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

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

ssm 智能水表管理系统


二、功能介绍
(1)权限管理:对权限信息进行添加、删除、修改和查看
(2)用户管理:对用户信息进行添加、删除、修改和查看
(3)菜单管理:对菜单信息进行添加、删除、修改和查看
(4)菜单权限管理:对菜单权限信息进行添加、删除、修改和查看 系统通过配置实现动态菜单
(5)居民管理:对居民信息进行添加、删除、修改和查看
(6)水表管理:对水表信息进行添加、删除、修改和查看
(7)巡检管理:对巡检信息进行添加、删除、修改和查看
(8)日志管理:对日志信息进行添加、删除、修改和查看
(9)缴费管理:对缴费信息进行添加、删除、修改和查看
(10)常量管理:对常量信息进行添加、删除、修改和查看
(11)个人信息管理

数据库设计

CREATE TABLE `quanxian` (
`qxid` int(11) NOT NULL auto_increment,
`qx` VARCHAR(40) default NULL COMMENT '权限',  PRIMARY KEY  (`qxid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `yonghu` (
`yhid` int(11) NOT NULL auto_increment,
`yhm` VARCHAR(40) default NULL COMMENT '用户名',
`mm` VARCHAR(40) default NULL COMMENT '密码',
`xm` VARCHAR(40) default NULL COMMENT '姓名',
`qx` VARCHAR(40) default NULL COMMENT '权限',
`lxdh` VARCHAR(40) default NULL COMMENT '联系电话',
`lxdz` VARCHAR(40) default NULL COMMENT '联系地址',  PRIMARY KEY  (`yhid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `caidan` (
`cdid` int(11) NOT NULL auto_increment,
`cdmc` VARCHAR(40) default NULL COMMENT '菜单名称',
`px` VARCHAR(40) default NULL COMMENT '排序',
`lj` VARCHAR(40) default NULL COMMENT '链接',
`sj` VARCHAR(40) default NULL COMMENT '上级',  PRIMARY KEY  (`cdid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `cdqx` (
`cdqxid` int(11) NOT NULL auto_increment,
`cd` VARCHAR(40) default NULL COMMENT '菜单',
`qx` VARCHAR(40) default NULL COMMENT '权限',  PRIMARY KEY  (`cdqxid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `jumin` (
`jmid` int(11) NOT NULL auto_increment,
`yhm` VARCHAR(40) default NULL COMMENT '用户名',
`mm` VARCHAR(40) default NULL COMMENT '密码',
`xm` VARCHAR(40) default NULL COMMENT '姓名',
`zz` VARCHAR(40) default NULL COMMENT '住址',
`lxdh` VARCHAR(40) default NULL COMMENT '联系电话',
`jd` VARCHAR(40) default NULL COMMENT '经度',
`wd` VARCHAR(40) default NULL COMMENT '纬度',  PRIMARY KEY  (`jmid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `shuibiao` (
`sbid` int(11) NOT NULL auto_increment,
`sbh` VARCHAR(40) default NULL COMMENT '水表号',
`jm` VARCHAR(40) default NULL COMMENT '居民',
`bs` VARCHAR(40) default NULL COMMENT '表数',
`cjsj` VARCHAR(40) default NULL COMMENT '创建时间',  PRIMARY KEY  (`sbid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `xunjian` (
`xjid` int(11) NOT NULL auto_increment,
`sb` VARCHAR(40) default NULL COMMENT '水表',
`yss` VARCHAR(40) default NULL COMMENT '原始数',
`zzs` VARCHAR(40) default NULL COMMENT '增长数',
`cz` VARCHAR(40) default NULL COMMENT '差值',
`sfyc` VARCHAR(40) default NULL COMMENT '是否异常',
`xjry` VARCHAR(40) default NULL COMMENT '巡检人员',
`xjsj` VARCHAR(40) default NULL COMMENT '巡检时间',
`sm` VARCHAR(40) default NULL COMMENT '说明',  PRIMARY KEY  (`xjid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

代码设计

@RequestMapping(value="/add")public String add(changliang changliang,HttpServletRequest request){//添加方法Map<String,Object> map= new HashMap<String,Object>();//初始化对象//String name=(String)request.getParameter("name");map.put("clid", changliang.getClid());//常量编号map.put("ycbj", changliang.getYcbj());//异常报警map.put("sfjg", changliang.getSfjg());//水费价格String clid=(String)changliang.getClid();//常量编号String ycbj=(String)changliang.getYcbj();//异常报警String sfjg=(String)changliang.getSfjg();//水费价格changliangdao.save(map);//调用 add方法 保存changliang 数据rz r=new rz();r.rz("常量修改", request);request.setAttribute("msg", "<script>alert('添加成功');</script>");System.out.println("addok");return "changliang/changliangadd";}/**删除 changliang* */@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");//request 方式获得主键idid=Integer.parseInt(a);request.setAttribute("msg", "<script>alert('删除成功');</script>");changliangdao.del(id);//调用 删除方法return selectall(null,map,request);}/*** 修改changliang信息*/@RequestMapping(value="/update")public String update(changliang changliang,HttpServletRequest request,Map<String,Object> map1){Map<String,Object> map= new HashMap<String,Object>();//初始化对象map.put("clid", changliang.getClid());//常量编号map.put("ycbj", changliang.getYcbj());//异常报警map.put("sfjg", changliang.getSfjg());//水费价格String clid=(String)changliang.getClid();//常量编号String ycbj=(String)changliang.getYcbj();//异常报警String sfjg=(String)changliang.getSfjg();//水费价格request.setAttribute("msg", "<script>alert('修改成功');</script>");changliangdao.update(map);//执行update 方法return selectall(null,map1,request);}/*** 查询changliang信息*/@RequestMapping(value="/modify")public String modify(Integer id,Map<String,Object> map,HttpServletRequest request){String keyid=(String)request.getParameter("keyid");//request 方式获得主键idList<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();//初始化对象list=changliangdao.select(Integer.parseInt(keyid));//根据id返回 changliang对象数据request.setAttribute("clid", list.get(0).get("clid"));//常量编号request.setAttribute("ycbj", list.get(0).get("ycbj"));//异常报警request.setAttribute("sfjg", list.get(0).get("sfjg"));//水费价格return "changliang/changliangmodify";}@RequestMapping(value="/detail")public String detail(Integer id,Map<String,Object> map,HttpServletRequest request){String keyid=(String)request.getParameter("keyid");//request 方式获得主键idList<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();//初始化对象list=changliangdao.select(Integer.parseInt(keyid));//根据id返回 changliang对象数据request.setAttribute("clid", list.get(0).get("clid"));//常量编号request.setAttribute("ycbj", list.get(0).get("ycbj"));//异常报警request.setAttribute("sfjg", list.get(0).get("sfjg"));//水费价格return "changliang/changliangdetail";}/*** 查询changliang信息*/@RequestMapping(value="/selectall")public String selectall(Integer id,Map<String,Object> map,HttpServletRequest request){List<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();//初始化对象Map<String,Object> map1= new HashMap<String,Object>();String clid=(String)request.getParameter("clid");//常量编号if(clid!=null&&!clid.equals("")){map1.put("clid",clid);//常量编号}String ycbj=(String)request.getParameter("ycbj");//异常报警if(ycbj!=null&&!ycbj.equals("")){map1.put("ycbj",ycbj);//异常报警}String sfjg=(String)request.getParameter("sfjg");//水费价格if(sfjg!=null&&!sfjg.equals("")){map1.put("sfjg",sfjg);//水费价格}


三、注意事项
    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

四 系统实现


代码下载

https://download.csdn.net/download/qq_41221322/89280741

需要源码 其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Electron学习笔记(三)

文章目录 相关笔记笔记说明 五、界面1、获取 webContents 实例&#xff08;1&#xff09;通过窗口对象的 webContent 属性获取 webContent 实例&#xff1a;&#xff08;2&#xff09;获取当前激活窗口的 webContents 实例&#xff1a;&#xff08;3&#xff09;在渲染进程中获…

252 基于MATLAB的自适应差分阈值法检测心电信号的QRS波

基于MATLAB的自适应差分阈值法检测心电信号的QRS波&#xff0c;QRS波群反映左、右心室除极电位和时间的变化&#xff0c;第一个向下的波为Q波&#xff0c;向上的波为R波&#xff0c;接着向下的波是S波。通过GUI进行数据处理&#xff0c;展示心率和QRS。程序已调通&#xff0c;可…

域控安全 ----> Ntds.dit文件抓取

大家还记得内网渗透的初衷吗&#xff1f;&#xff1f;&#xff1f; 找到域馆&#xff0c;拿下域控&#xff01;&#xff01; 拿下了域控就是拿下了整个域&#xff01;&#xff01; 但是大家知道拿下域环境之后应该怎么操作吗(灵魂拷问)&#xff1f;&#xff1f;&#xff1f; …

升级! 测试萌新Python学习之连通数据库Pymsql增删改及封装(四)

pymysql 数据库概述python对数据库的增删改查pymysql核心操作事务事务操作pymysql工具类封装每日复习ChatGPT的回答 数据库概述 分类 关系型数据库: 安全 如, mysql oracle SQLite…database tables 行列 非关系型数据库: 高效 如, redis mongoDB…数据存储结构多样 键值对…

字符串函数(一):strcpy(拷贝),strcat(追加),strcmp(比较),及strncpy,strncat,strncmp

字符串函数 一.strcpy&#xff08;字符串拷贝&#xff09;1.函数使用2.模拟实现 二.strcat&#xff08;字符串追加&#xff09;1.函数使用2.模拟实现 三.strcmp&#xff08;字符串比较&#xff09;1.函数使用2.模拟实现 四.strncpy1.函数使用2.模拟实现 五.strncat1.函数使用2.…

汇昌联信电商:拼多多新手怎么做店铺的免费流量会慢慢起来?

在拼多多上开店&#xff0c;新手们往往面临着如何吸引免费流量的挑战。毕竟&#xff0c;流量是店铺生存和发展的血脉&#xff0c;没有流量&#xff0c;就没有销量&#xff0c;店铺也就失去了生命力。那么&#xff0c;作为拼多多新手&#xff0c;如何做才能让店铺的免费流量慢慢…

前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 引言 &#x1f44b;一、Nginx简介 &#x1f4da;二、常见的Web服务器架构 &#x1f300;&#x1f4cc; 架构概述&#x1f4cc; Nginx的深入探讨 三、正向代理与反向代理 &#x1f52e;&#x1f4cc; 正向代理工作原理&#…

通用型产品发布解决方案(后端环境搭建)

文章目录 后端renren脚手架配置1.解压后放到项目目录下2.新建商品模块1.创建一个新模块 sunliving-commodity2.删除两个不必要的文件3.pom.xml 引入依赖 3.maven进行聚合管理1.将刚才配置的pom.xml文件复制到父项目下并进行修改2.手动将这个pom.xml加入项目&#xff08;如果右下…

自定义类型——结构体、枚举和联合

自定义类型——结构体、枚举和联合 结构体结构体的声明匿名结构体结构体的自引用结构体的初始化结构体的内存对齐修改默认对齐数结构体传参 位段枚举联合 结构体 结构是一些值的集合&#xff0c;这些值被称为成员变量&#xff0c;结构的每个成员可以是不同类型的变量。 数组是…

【面试经典题】环形链表

个人主页&#xff1a;一代… 个人专栏&#xff1a;数据结构 在面试中我们经常会遇到有关链表的相关题目&#xff0c;面试官通常会对题目给出拓展 下面我就两个leetcode上的一个双指针的题目为例&#xff0c;并对其进行拓展 题目链接&#xff1a;环形链表 题目描述&#xf…

Java抽象类:为何它是你代码架构的基石?

目录 1、抽象类的概念 2、抽象类语法 3、抽象类特性 4、抽象类的作用 5、 完结散花 个人主页&#xff1a;秋风起&#xff0c;再归来~ 文章专栏&#xff1a;javaSE的修炼之路 个人格言&#xff1a;悟已往之不谏&#xff0c;知来者犹可追 克…

人脸消费给传统食堂带来的变化

消费的技术基础是脸部识别&#xff0c;脸部识别是基于人的容貌特征信息进行认证的生物特征识别技术&#xff0c;其突出的特征是以非接触方式进行识别&#xff0c;避免个人信息的泄露。 面部识别和指纹识别、掌纹识别、视网膜识别、骨骼识别、心率识别等都是人体生物特征识别技术…

【C语言/数据结构】栈:从概念到两种存储结构的实现

目录 一、栈的概念 二、栈的两种实现方式 1.顺序表实现栈 2.链表实现栈 三、栈的顺序存储结构及其实现 1.栈的声明 2.栈的初始化 3.栈的销毁 4.栈的压栈 5.栈的弹栈 6.栈的判空 7.返回栈顶元素 8.返回栈的长度 四、栈的链式存储结构及其实现 1.栈的声明 2.栈的…

【SRC实战】前端脱敏信息泄露

挖个洞先 https://mp.weixin.qq.com/s/xnCQQCAneT21vYH8Q3OCpw “ 以下漏洞均为实验靶场&#xff0c;如有雷同&#xff0c;纯属巧合 ” 01 — 漏洞证明 一、前端脱敏&#xff0c;请求包泄露明文 “ 前端脱敏处理&#xff0c;请求包是否存在泄露&#xff1f; ” 1、获取验…

3.整数运算

系列文章目录 信息的表示和处理 : Information Storage&#xff08;信息存储&#xff09;Integer Representation&#xff08;整数表示&#xff09;Integer Arithmetic&#xff08;整数运算&#xff09;Floating Point&#xff08;浮点数&#xff09; 文章目录 系列文章目录前…

钟表——蓝桥杯十三届2022国赛大学B组真题

问题分析 这个问题的关键有两点&#xff1a;1.怎么计算时针&#xff0c;分针&#xff0c;秒针之间的夹角&#xff0c;2.时针&#xff0c;分针&#xff0c;秒针都是匀速运动的&#xff0c;并非跳跃性的。问题1很好解决看下面的代码就能明白&#xff0c;我们先考虑问题2&#xf…

Springboot+Vue项目-基于Java+MySQL的车辆管理系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

Rx(Reactive Extensions)的由来

既然我们已经介绍了响应式编程&#xff0c;现在是时候了解我们的明星了:响应式扩展&#xff0c;通常简称为Rx。微软开发了Reactive扩展库&#xff0c;使其易于处理事件流和数据流。在某种程度上&#xff0c;时变值本身就是一个事件流;每个值更改都是一种类型的事件它会更新依赖…

Vue中使用$t(‘xxx‘)实现中英文切换;

&#xff08;原文链接&#xff09; 介绍 {{$t(key)}} &#xff1a;是VueI18n插件提供的函数&#xff0c;主要用于根据当前语言环境返回对应的翻译文本&#xff0c;以便在页面上显示多语言内容。 key&#xff1a;作为参数传递给函数$t()的字符串&#xff0c;用于指定需要翻译的…

【C++要哮着学】初识C++,什么是C++?什么是命名空间?什么又是缺省函数?

文章目录 前言1、C简介1.1、什么是C1.2、C起源1.3、C发展 2、C关键字&#xff08;C98&#xff09;3、命名空间3.1、命名空间的定义及使用3.2、命名空间的嵌套3.3、命名空间的三种使用方式3.3.1、加命名空间名称及作用域限定符3.3.2、使用using将命名空间中某个成员引入3.3.3、使…