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 厂房管理系统

代码下载

https://download.csdn.net/download/qq_41221322/88907518
二、功能介绍
(1)管理员管理:对管理员信息进行添加、删除、修改和查看
(2)员工管理:对员工信息进行添加、删除、修改和查看
(3)材料人员管理:对材料人员信息进行添加、删除、修改和查看
(4)公告管理:对公告信息进行添加、删除、修改和查看
(5)请假管理:对请假信息进行添加、删除、修改和查看
(6)订单管理:对订单信息进行添加、删除、修改和查看
(7)用户登录、个人信息修改

数据库设计i

[表gly] 管理员列属性表格

序号字段名称数据类型长度主键描述
1glyidINTEGER11管理员编号
2yhmVARCHAR40用户名
3mmVARCHAR40密码
4xmVARCHAR40姓名

[表yuangong] 员工列属性表格

序号字段名称数据类型长度主键描述
1ygidINTEGER11员工编号
2yhmVARCHAR40用户名
3mmVARCHAR40密码
4xmVARCHAR40姓名
5lxdhVARCHAR40联系电话
6lxdzVARCHAR40联系地址

[表clry] 材料人员列属性表格

序号字段名称数据类型长度主键描述
1clryidINTEGER11材料人员编号
2yhmVARCHAR40用户名
3mmVARCHAR40密码
4xmVARCHAR40姓名
5lxdhVARCHAR40联系电话
6lxdzVARCHAR40联系地址

[表gonggao] 公告列属性表格

序号字段名称数据类型长度主键描述
1ggidINTEGER11公告编号
2btVARCHAR40标题
3nrVARCHAR40内容
4fbsjVARCHAR40发布时间

[表qingjia] 请假列属性表格

序号字段名称数据类型长度主键描述
1qjidINTEGER11请假编号
2btVARCHAR40标题
3nrVARCHAR40内容
4qjsjVARCHAR40请假时间
5kssjVARCHAR40开始时间
6jssjVARCHAR40结束时间
7ztVARCHAR40状态
8yhVARCHAR40用户

代码设计

@RequestMapping(value="/add")
	public String add(qingjia qingjia,HttpServletRequest request){//添加方法
		Map<String,Object> map= new HashMap<String,Object>();//初始化对象
		//String name=(String)request.getParameter("name");

		map.put("qjid", qingjia.getQjid());//请假编号

		map.put("bt", qingjia.getBt());//标题

		map.put("nr", qingjia.getNr());//内容

		map.put("qjsj", qingjia.getQjsj());//请假时间

		map.put("kssj", qingjia.getKssj());//开始时间

		map.put("jssj", qingjia.getJssj());//结束时间

		map.put("zt", qingjia.getZt());//状态

		map.put("yh", qingjia.getYh());//用户



		String qjid=(String)qingjia.getQjid();//请假编号

		String bt=(String)qingjia.getBt();//标题

		String nr=(String)qingjia.getNr();//内容

		String qjsj=(String)qingjia.getQjsj();//请假时间

		String kssj=(String)qingjia.getKssj();//开始时间

		String jssj=(String)qingjia.getJssj();//结束时间

		String zt=(String)qingjia.getZt();//状态

		String yh=(String)qingjia.getYh();//用户

		qingjiadao.save(map);//调用 add方法 保存qingjia 数据
		
		
		request.setAttribute("msg", "<script>alert('添加成功');</script>");
		System.out.println("addok");
		return "qingjia/qingjiaadd";
	}
	
	/**删除 qingjia
	 * 
	 */
	@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 方式获得主键id
		id=Integer.parseInt(a);
		request.setAttribute("msg", "<script>alert('删除成功');</script>");
		qingjiadao.del(id);//调用 删除方法
		return selectall(null,map,request);
	}
	/**
	 * 修改qingjia信息
	 */
	@RequestMapping(value="/update")
	public String update(qingjia qingjia,HttpServletRequest request,Map<String,Object> map1){
		Map<String,Object> map= new HashMap<String,Object>();//初始化对象
		map.put("qjid", qingjia.getQjid());//请假编号

		map.put("bt", qingjia.getBt());//标题

		map.put("nr", qingjia.getNr());//内容

		map.put("qjsj", qingjia.getQjsj());//请假时间

		map.put("kssj", qingjia.getKssj());//开始时间

		map.put("jssj", qingjia.getJssj());//结束时间

		map.put("zt", qingjia.getZt());//状态

		map.put("yh", qingjia.getYh());//用户



		String qjid=(String)qingjia.getQjid();//请假编号

		String bt=(String)qingjia.getBt();//标题

		String nr=(String)qingjia.getNr();//内容

		String qjsj=(String)qingjia.getQjsj();//请假时间

		String kssj=(String)qingjia.getKssj();//开始时间

		String jssj=(String)qingjia.getJssj();//结束时间

		String zt=(String)qingjia.getZt();//状态

		String yh=(String)qingjia.getYh();//用户

		request.setAttribute("msg", "<script>alert('操作成功');</script>");
		qingjiadao.update(map);//执行update 方法
		return selectall(null,map1,request);
	}
	/**
	 * 查询qingjia信息
	 */
	@RequestMapping(value="/modify")
	public String modify(Integer id,Map<String,Object> map,HttpServletRequest request){
		String keyid=(String)request.getParameter("keyid");//request 方式获得主键id
		List<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();//初始化对象
		list=qingjiadao.select(Integer.parseInt(keyid));//根据id返回 qingjia对象数据
		request.setAttribute("qjid", list.get(0).get("qjid"));//请假编号

		request.setAttribute("bt", list.get(0).get("bt"));//标题

		request.setAttribute("nr", list.get(0).get("nr"));//内容

		request.setAttribute("qjsj", list.get(0).get("qjsj"));//请假时间

		request.setAttribute("kssj", list.get(0).get("kssj"));//开始时间

		request.setAttribute("jssj", list.get(0).get("jssj"));//结束时间

		request.setAttribute("zt", list.get(0).get("zt"));//状态

		request.setAttribute("yh", list.get(0).get("yh"));//用户

		
		return "qingjia/qingjiamodify";
	}
	
	@RequestMapping(value="/detail")
	public String detail(Integer id,Map<String,Object> map,HttpServletRequest request){
		String keyid=(String)request.getParameter("keyid");//request 方式获得主键id
		List<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();//初始化对象
		list=qingjiadao.select(Integer.parseInt(keyid));//根据id返回 qingjia对象数据
		request.setAttribute("qjid", list.get(0).get("qjid"));//请假编号

		request.setAttribute("bt", list.get(0).get("bt"));//标题

		request.setAttribute("nr", list.get(0).get("nr"));//内容

		request.setAttribute("qjsj", list.get(0).get("qjsj"));//请假时间

		request.setAttribute("kssj", list.get(0).get("kssj"));//开始时间

		request.setAttribute("jssj", list.get(0).get("jssj"));//结束时间

		request.setAttribute("zt", list.get(0).get("zt"));//状态

		request.setAttribute("yh", list.get(0).get("yh"));//用户

		return "qingjia/qingjiadetail";
	}


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

四 系统实现


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

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

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

相关文章

10 | MySQL为什么有时候会选错索引?

前面我们介绍过索引&#xff0c;你已经知道了在 MySQL 中一张表其实是可以支持多个索引的。但是&#xff0c;你写 SQL 语句的时候&#xff0c;并没有主动指定使用哪个索引。也就是说&#xff0c;使用哪个索引是由 MySQL 来确定的。 不知道你有没有碰到过这种情况&#xff0c;一…

Java17 --- springCloud之LoadBalancer

目录 一、LoadBalancer实现负载均衡 1.1、创建两个相同的微服务 1.2、在客户端80引入loadBalancer的pom 1.3、80服务controller层&#xff1a; 一、LoadBalancer实现负载均衡 1.1、创建两个相同的微服务 1.2、在客户端80引入loadBalancer的pom <!--loadbalancer-->&…

Qt学习-22 <QTreeWidget QTreeView>

—均为学习笔记&#xff0c;如有错误请指出 一、QTreeWidget 1. 样式展示&#xff1a; ① ② 2. 样式代码&#xff1a; ① //treeWidget树控件的使用//设置水平头//QStringList() 创建匿名对象&#xff0c;省略起名的操作ui->treeWidget->setHeaderLabels(QString…

对中国境内所有地区KFC门店基本信息的统计(简略版)

我们要获取每个地区的kfc信息就要先获取中国一共有哪些地区 中国所有城市名称获取 import requests from lxml import etreewith open(f./省份.txt, w) as fp:fp.write() with open(f./城市.txt, w) as fp:fp.write()url1http://www.kfc.com.cn/kfccda/storelist/index.aspx#…

高度塌陷问题及解决

什么情况下产生 (when 父盒子没有定义高度&#xff0c;但是子元素有高度&#xff0c;希望用子盒子撑起父盒子的高度&#xff0c;但是子盒子添加了浮动属性之后&#xff0c;父盒子高度为0 <template><div class"father"><div class"son"&…

【兔子机器人】修改GO电机id(软件方法、硬件方法)

一、硬件方法 利用上位机直接修改GO电机的id号&#xff1a; 打开调试助手&#xff0c;点击“调试”&#xff0c;查询电机&#xff0c;修改id号&#xff0c;即可。 但先将四个GO电机连接线拔掉&#xff0c;不然会将连接的电机一并修改。 利用24V电源给GO电机供电。 二、软件方…

LoadBalancer (本地负载均衡)

1.loadbalancer本地负载均衡客户端 VS Nginx服务端负载均衡区别 Nginx是服务器负载均衡&#xff0c;客户端所有请求都会交给nginx&#xff0c;然后由nginx实现转发请求&#xff0c;即负载均衡是由服务端实现的。 loadbalancer本地负载均衡&#xff0c;在调用微服务接口时候&a…

Linux文件和文件夹操作

前言&#xff1a; 相较于前面背诵的诸多内容&#xff0c;可能现在的部分就需要多多的练习了&#xff0c;难度也慢慢提升。 那就大家一起慢慢努力吧&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 目录 一、Linux目录结构 &#xff08;一&#xff09;Window…

2024年AI辅助研发趋势深度分析

2024 年 AI 辅助研发趋势 随着人工智能技术的持续发展与突破&#xff0c;2024年AI辅助研发正成为科技界和工业界瞩目的焦点。从医药研发到汽车设计&#xff0c;从软件开发到材料科学&#xff0c;AI正逐渐渗透到研发的各个环节&#xff0c;变革着传统的研发模式。在这一背景下&a…

果蔬作物疾病防治系统|基于Springboot的果蔬作物疾病防治系统设计与实现(源码+数据库+文档)

果蔬作物疾病防治系统目录 目录 基于Springboot的果蔬作物疾病防治系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、果蔬百科列表 2、公告信息管理 3、公告类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推…

最简单的基于 FFmpeg 的内存读写的例子:内存转码器

最简单的基于 FFmpeg 的内存读写的例子&#xff1a;内存转码器 最简单的基于 FFmpeg 的内存读写的例子&#xff1a;内存转码器正文源程序结果工程文件下载参考链接 最简单的基于 FFmpeg 的内存读写的例子&#xff1a;内存转码器 参考雷霄骅博士的文章&#xff0c;链接&#xf…

利用华为CodeArts持续交付项目演示流程

软件开发生产线&#xff08;CodeArts&#xff09;是面向开发者提供的一站式云端平台&#xff0c;即开即用&#xff0c;随时随地在云端交付软件全生命周期&#xff0c;覆盖需求下发、代码提交、代码检查、代码编译、验证、部署、发布&#xff0c;打通软件交付的完整路径&#xf…

C语言:通讯录(纯代码)

目录 背景&#xff1a;VS2019编译器 创建文件&#xff1a; contact.h代码&#xff1a; test.c代码&#xff1a; contact.c代码&#xff1a; 背景&#xff1a;VS2019编译器 创建文件&#xff1a; contact.h代码&#xff1a; #pragma once#include <string.h> #includ…

GTH手册学习注解

CPLL的动态配置 终于看到有这个复位功能了 QPLL SWITCHing需要复位 器件级RESET没发现有管脚引出来 两种复位方式&#xff0c;对应全复位和器件级复位 对应的复位功能管脚 改那个2分频的寄存器说明段&#xff0c;复位是自动发生的&#xff1f;说明可能起效了&#xff0c;但是分…

STM32---通用定时器(二)相关实验

写在前面&#xff1a;前面我们学习了基本定时器、通用定时器的相关理论部分&#xff0c;了解到通用定时器的结构框图&#xff0c;总共包含六大模块&#xff1a;时钟源、控制器、时基单元、输入捕获、公共部分以及输出捕获。对相关模块的使用也做详细的讲解。本节我们主要是对上…

【NR 定位】3GPP NR Positioning 5G定位标准解读(八)- OTDOA定位

前言 3GPP NR Positioning 5G定位标准&#xff1a;3GPP TS 38.305 V18 3GPP 标准网址&#xff1a;Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;一&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;…

少儿编程 蓝桥杯青少组科技素养题 信息素养真题及解析第25套

少儿编程 科技素养 信息素养真题第25套 1、旅行结束之后&#xff0c;回到家的小蓝决定将照片备份在云端的网盘上。备份照片主要占用的是小蓝家的( )带宽 A、下行 B、上行 C、文件 D、数据 答案&#xff1a;B 考点分析&#xff1a;主要考查网络相关知识&#xff0c;要将照…

多种方法求解数组排序

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary_walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…

基于GAN对抗网进行图像修复

一、简介 使用PyTorch实现的生成对抗网络&#xff08;GAN&#xff09;模型&#xff0c;包括编码器&#xff08;Encoder&#xff09;、解码器&#xff08;Decoder&#xff09;、生成器&#xff08;ResnetGenerator&#xff09;和判别器&#xff08;Discriminator&#xff09;。…

CSS中有哪些方式可以隐藏页面元素(区别详解)

文章目录 一、前言二、实现方式display:nonevisibility:hiddenopacity:0设置height、width属性为0position:absoluteclip-path小结 三、区别参考文献 一、前言 在平常的样式排版中&#xff0c;我们经常遇到将某个模块隐藏的场景 通过css隐藏元素的方法有很多种&#xff0c;它…