Java+MySQL基于SSM的高校科研仪器共享平台

news2024/11/14 14:01:27

随着在校学生人数的不断增加,学生的数量也在不断的增加,同时面临的就是如何更加方便快捷和高效的管理高校科研仪器的问题,传统模式的科研仪器管理明显已经不能够满足当下的需求,于是我们提出了高校科研仪器共享平台的设计与开发。
本课题是一个基于SSM的管理系统,本高校科研仪器共享平台是在Windows7系统的环境下,利用Eclipse和Mysql工具开发的。在高校科研仪器共享平台中分为管理员和仪器申请用户2个模块。其中高校科研仪器共享平台中的管理人员在登陆之后可以管理本系统内的仪器类型,实验室管理,仪器信息,用户信息,仪器的维修记录信息以及用户的申请使用等信息进行管理。科研仪器的申请用户在登录之后可以查看一些信息,并对仪器进行申请。

请添加图片描述
用户登录界面

在添加完用户信息后可以点击科研仪器管理,对已经添加过的科研仪器信息进行编辑和删除,该模块中使用bootstrap来对页面进行美化,绑定的主要信息包括仪器编号,仪器名称,仪器类型,购买时间,负责人,价格,用途,图片等信息如图

请添加图片描述
仪器维修信息管理列表

管理人员登录之后可以查看用户对仪器的申请信息。管理人员申请审核界面中,可以看到用户所申请的仪器编号,仪器名称,用户名,姓名,时间和状态的内容,对于一些没有审核过的状态,可以通过点击审核按钮来审核用户对仪器的申请情况。当用户对仪器进行归还之后,管理员可以对仪器进行归还处理,点击归还按钮之后,系统会自动的改变当前的申请记录状态,并自动的获取归还时间,管理人员科研仪器审核列表界面如图

请添加图片描述

科研仪器信息管理列表
在添加完用户信息后可以点击科研仪器维修管理,对已经添加过的科研仪器维修信息进行编辑和删除,该模块中使用bootstrap来对页面进行美化,绑定的主要信息包括仪器编号,仪器名称,维修时间,故障描述,维修人等信息如图请添加图片描述

管理人员科研仪器审核列表界面
高校科研仪器共享平台主要学校内部提供服务,系统分为管理员和仪器的使用用户2部分。

在高校科研仪器共享平台中分为管理员,和仪器申请用户2个模块。其中高校科研仪器共享平台中的管理人员在登陆之后可以管理本系统内的仪器类型,实验室管理,仪器信息,用户信息,仪器的维修记录信息以及用户的申请使用等信息进行管理。科研仪器的申请用户在登录之后可以查看一些信息,并对仪器进行申请。这几个模块相互独立又存在着一定的联系,缺一不可。
请添加图片描述

package com.controller;

import java.io.File;
import java.io.IOException;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.io.PrintWriter;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import com.entity.Allusers;
//import com.chengxusheji.po.News;
import com.server.AllusersServer;
import com.util.PageBean;
import net.sf.json.JSONObject;

@Controller
public class AllusersController {
	@Resource
	private AllusersServer allusersService;


//	
   @RequestMapping("showAllusers.do")
   public String showAllusers(int id,ModelMap map,HttpSession session){
	 /*  Map<String,Object> bmap=new HashMap<String,Object>();
	   bmap.put("uid", id);*/
	  // map.put("blist", allusersService.getAll(bmap));
	   map.put("allusers", allusersService.getById(id));
	   return "read";
   }
   
	@RequestMapping("addAllusers.do")
	public String addAllusers(HttpServletRequest request,Allusers allusers,HttpSession session){
		Timestamp time=new Timestamp(System.currentTimeMillis());
		//Users u=(Users)session.getAttribute("user");
		/*if(u==null||u.equals("")){
			return "redirect:showIndex.do";
		}else{*/
			//bbs.setUid(u.getId());
			/*bbs.setPubtime(time.toString());
			bbs.setIsdel("1");*/
		    allusers.setAddtime(time.toString().substring(0, 19));
			allusersService.add(allusers);
			return "redirect:allusersList.do";
		/*}*/
		
		
	}
 
//	处理编辑
	@RequestMapping("doUpdateAllusers.do")
	public String doUpdateAllusers(int id,ModelMap map,Allusers allusers){
		allusers=allusersService.getById(id);
		map.put("allusers", allusers);
		return "allusers_updt";
	}
//	
	@RequestMapping("updateAllusers.do")
	public String updateAllusers(int id,ModelMap map,Allusers allusers){
		allusersService.update(allusers);
		return "redirect:allusersList.do";
	}
//	所有List
//	@RequestMapping("allusersList.do")
//	public String allusersList(ModelMap map,HttpSession session){
//		map.put("list", allusersService.getAll(null));
//		map.put("clist", allusersService.getAll(null));
//		return "allusers";
//	}
//	分页查询
	@RequestMapping("allusersList.do")
	public String goodList(@RequestParam(value="page",required=false)String page,
			ModelMap map,HttpSession session,Allusers allusers, String username, String pwd, String cx){
		/*if(session.getAttribute("user")==null){
			return "login";
		}*/
		if(page==null||page.equals("")){
			page="1";
		}
		PageBean pageBean=new PageBean(Integer.parseInt(page), 15);
		Map<String, Object> pmap=new HashMap<String,Object>();
		pmap.put("pageno", pageBean.getStart());
		pmap.put("pageSize", 15);
		Map<String, Object> bmap=new HashMap<String, Object>();
		Map<String,Object> cmap=new HashMap<String,Object>();
		/*pmap.put("uid",  ((Users)session.getAttribute("user")).getId());
		bmap.put("uid", ((Users)session.getAttribute("user")).getId());*/
		if(username==null||username.equals("")){pmap.put("username", null);cmap.put("username", null);}else{pmap.put("username", username);cmap.put("username", username);}
		if(pwd==null||pwd.equals("")){pmap.put("pwd", null);cmap.put("pwd", null);}else{pmap.put("pwd", pwd);cmap.put("pwd", pwd);}
		if(cx==null||cx.equals("")){pmap.put("cx", null);cmap.put("cx", null);}else{pmap.put("cx", cx);cmap.put("cx", cx);}
		
		int total=allusersService.getCount(bmap);
		pageBean.setTotal(total);
		List<Allusers> list=allusersService.getByPage(pmap);
		map.put("page", pageBean);
		map.put("list", list);
		session.setAttribute("p", 1);
		return "allusers_list";
	}
//   分页模糊查询
	@RequestMapping("vagueAllusersList.do")
	public String vagueAllusersList(@RequestParam(value="page",required=false)String page,
			ModelMap map,HttpSession session){
		if(page==null||page.equals("")){
			page="1";
		}
		PageBean pageBean=new PageBean(Integer.parseInt(page),PageBean.PAGESIZE);
		Map<String, Object> pmap=new HashMap<String,Object>();
		pmap.put("pageno", pageBean.getStart());
		pmap.put("pageSize", pageBean.getPageSize());
		Map<String, Object> bmap=new HashMap<String, Object>();
		/*pmap.put("uid",  ((Users)session.getAttribute("user")).getId());
		bmap.put("uid",  ((Users)session.getAttribute("user")).getId());*/
		int total=allusersService.getCount(bmap);
		pageBean.setTotal(total);
		List<Allusers> list=allusersService.getByPage(pmap);
		map.put("page", pageBean);
		map.put("list", list);
		session.setAttribute("p", 2);
		return "queryallusers";
	}
	@RequestMapping("deleteAllusers.do")
	public String deleteAllusers(int id){
		allusersService.delete(id);
		return "redirect:allusersList.do";
	}
	
	@RequestMapping("quchongAllusers.do")
	public void quchongAllusers(Allusers allusers,HttpServletResponse response){
		   Map<String,Object> map=new HashMap<String,Object>();
		   map.put("username", allusers.getUsername());
		   System.out.println("username==="+allusers.getUsername());
		   System.out.println("username222==="+allusersService.quchongAllusers(map));
		   JSONObject obj=new JSONObject();
		   if(allusersService.quchongAllusers(map)!=null){
				 obj.put("info", "ng");
			   }else{
				   obj.put("info", "username可以用!");
				  
			   }
		   response.setContentType("text/html;charset=utf-8");
		   PrintWriter out=null;
		   try {
			out=response.getWriter();
			out.print(obj);
			out.flush();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			out.close();
		}
	}
	
	@RequestMapping("Alluserslogin.do")
	public String checkAllusersLogin(Allusers allusers, HttpSession session) {
		Map<String,Object> u=new HashMap<String,Object>();
		System.out.println("name===" + allusers.getUsername());
		u.put("username",allusers.getUsername());
		//u.put("utype", "用户");
		//Md5.MD5HexEncode(user.getPassword())
		u.put("pwd",allusers.getPwd());
		allusers = allusersService.allusersLogin(u);
		if (allusers != null) {
			session.setAttribute("username", allusers);
			System.out.println("username=" + allusers);
			session.removeAttribute("suc");
			return "redirect:index.do";
		} else {
			System.out.println("usernafwfwwme=");
			session.setAttribute("suc", "登录失败!用户名或密码错误!");
			return "login";
		}

	}
}

目录
1 绪论 1
1.1课题背景 1
1.2课题研究现状 1
1.3初步设计方法与实施方案 2
1.4本文研究内容 2
2 系统开发环境 4
2.1 使用工具简介 4
2.2 环境配置 4
2.3 B/S结构简介 4
2.4 MySQL数据库 5
2.5 框架介绍 5
3 系统分析 6
3.1系统可行性分析 6
3.1.1经济可行性 6
3.1.2技术可行性 6
3.1.3运行可行性 6
3.2系统现状分析 6
3.3功能需求分析 7
3.4系统设计规则与运行环境 8
3.5系统流程分析 8
3.5.1操作流程 8
3.5.2添加信息流程 9
3.5.3删除信息流程 10
4 系统设计 11
4.1系统设计主要功能 11
4.2数据库设计 11
4.2.1数据库设计规范 11
4.2.2 E/R图 11
4.2.3数据表 12
5 系统实现 25
5.1系统功能模块 25
5.2后台模块 27
5.2.1管理员功能模块 27
5.2.2用户功能模块 30
6 系统测试 33
6.1功能测试 33
6.2可用性测试 33
6.3性能测试 34
6.4测试结果分析 34
7结 论 35
参考文献 36
致 谢 37

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

架构设计(六):引入消息队列

架构设计&#xff08;六&#xff09;&#xff1a;引入消息队列 作者&#xff1a;Grey 原文地址&#xff1a; 博客园&#xff1a;架构设计&#xff08;六&#xff09;&#xff1a;引入消息队列 CSDN&#xff1a;架构设计&#xff08;六&#xff09;&#xff1a;引入消息队列…

【LeetCode】1703. 得到连续 K 个 1 的最少相邻交换次数

题目描述 给你一个整数数组 nums 和一个整数 k 。 nums 仅包含 0 和 1 。每一次移动&#xff0c;你可以选择 相邻 两个数字并将它们交换。 请你返回使 nums 中包含 k 个 连续 1 的 最少 交换次数。 示例 1&#xff1a; 输入&#xff1a;nums [1,0,0,1,0,1], k 2 输出&#xf…

入门:镜像结构介绍

前面我们了解了Docker的相关基本操作&#xff0c;实际上容器的基石就是镜像&#xff0c;有了镜像才能创建对应的容器实例&#xff0c;那么我们就先从镜像的基本结构开始说起&#xff0c;我们来看看镜像到底是个什么样的存在。 我们在打包项目时&#xff0c;实际上往往需要一个基…

C++PrimerPlus 第八章 函数探幽-8.1 C++内联函数

目录 8.1 C内联函数 8.1 C内联函数 内联函数是C为提高程序运行速度所做的一项改进。常规函数和内联函数之间的主要区别不在于编写方式&#xff0c;而在于C编译器如何将它们组合到程序中。要了解内联函数与常规函数之间的区别&#xff0c;必须深入到程序内部。 编译过程的最终…

微机原理与接口技术笔记

文章目录前言储存系统与技术材料高速储存器缓冲储存器&#xff08;Cache&#xff09;材料&#xff0c;局部性&#xff0c;访问方式Cache全相联映射Cache交换与一致性单核CPU一致性处理多核CPU的MESI协议主储存器&#xff08;内存&#xff09;主要技术指标容量带宽内存模组与内存…

牛客题霸sql入门篇之条件查询(四)之高级查询

牛客题霸sql入门篇之条件查询(四)之高级查询 4 计算函数 4.1 查询GPA最高值 4.1.1 题目内容 4.1.2 示例代码 SELECT gpa FROM user_profile WHERE university复旦大学 ORDER BY gpa desc limit 1; -- LIMIT 初始位置&#xff0c;记录数 一个参数就是记录数4.1.3 运行结果 4…

Python Flask构建微信小程序订餐系统 (四)

🔥 创建微信小程序 🔥 微信开发者工具下载 并完成安装 在PyCharm 工具里面 order目录下面 创建mina 文件夹 通过微信小程序开发工具创建微信小程序工程 获取微信小程序ID

数据挖掘Java——PageRank算法的实现

一、PageRank算法的前置知识 PageRank算法&#xff1a;计算每一个网页的PageRank值&#xff0c;然后根据这个值的大小对网页的重要性进行排序。 从用户角度来看&#xff0c;一个网站就是若干页面组成的集合。然而&#xff0c;对于网站的设计者来说&#xff0c;这些页面是经过…

嵌入式系统开发笔记109:多个LED的闪烁控制

文章目录前言一、一般思路1、LED0 100ms闪烁&#xff0c;LED1 200ms闪烁2、LED0 100ms闪烁&#xff0c;LED1 300ms闪烁3、LED0 200ms闪烁&#xff0c;LED1 600ms闪烁二、通过循环变量实现1、LED0 500ms闪烁&#xff0c;LED1 700ms闪烁2、LED0 15ms闪烁&#xff0c;LED1 7ms闪烁…

Java——LRUCache

概念 简单来说&#xff0c;由于我们的空间是有限的&#xff0c;所以发明了这个数据结构&#xff0c;当我们的空间不够添加新的元素时&#xff0c;就会删除最近最少使用的元素。 其底层逻辑通过哈希表和链表共同实现。哈希表中存储链表的每一个元素&#xff0c;方便进行元素的…

Mysql分布式锁(三)悲观锁实现并发

在前面的方法中&#xff0c;一条sql语句中仍然存在着很多问题&#xff0c;于是我们可以用悲观锁来代替解决。 假设我们不用一条sql&#xff0c;仍然用先查询&#xff0c;判断&#xff0c;最后更新来实现业务。 文章目录悲观锁 select...for update1. 不加悲观锁1) 两个机器连接…

因果推断2--深度模型介绍(个人笔记)

目录 一、方法介绍 1.1TarNet 1.1.1TarNet 1.1.2网络结构 1.1.3counterfactual loss 1.1.4代码实现 1.2Dragonet 1.3DRNet 1.4VCNet VCNET AND FUNCTIONAL TARGETED REGULARIZATION FOR LEARNING CAUSAL EFFECTS OF CONTINUOUS TREATMENTS 二、待补充 一、方法介绍 …

AcWing 第82场周赛

AcWing 第82场周赛 竞赛 - AcWing B 4783. 多米诺骨牌 - AcWing题库 模拟题&#xff0c;考察代码描述问题的能力。 由题意所给的数学形式化定义中看出&#xff0c;所给的骨牌初始序列 L 和 R 的顺序一定是相互交错的&#xff0c;即 ...LRLRLRLR... 所以&#xff0c;一旦遇到…

KNN算法 搜索最优超参数:n_neighbors/weights/p

目录 一&#xff1a;遍历参数 超参调优测试 二&#xff1a;网格模型 超参调优测试 三&#xff1a;模型保存 四&#xff1a;模型使用 一&#xff1a;遍历参数 超参调优测试 1.1 超参调试&#xff0c;找到模型最优解[仅做测试&#xff0c;得出最优&#xff1a;n_neighbors, …

PowerDesigner导入SQL脚本生成带中文注释(comment)的ER图并保存为图片格式(含通用可执行vb脚本文件)

目录 1、安装数据库建模工具PowerDesigner 16.5 2、打开 PowerDesigner&#xff0c;选择反向工程 3、选择数据库类型 4、导入SQL脚本文件并生成数据库表模型 5、去掉Diagram画板黑色网格线&#xff08;选做&#xff09; 6、ER图常规显示&#xff08;包含是否为Null及表名…

D. Same Count One(模拟 + 思维转换(行不行,从列入手))

Problem - D - Codeforces ChthollyNotaSeniorious收到了AquaMoon的一份特殊礼物&#xff1a;n个长度为m的二进制数组。AquaMoon告诉他&#xff0c;在一次操作中&#xff0c;他可以选择任何两个数组和1到m中的任何位置&#xff0c;并交换这些数组中位置的元素。 他对这个游戏很…

RabbitMQ知识总结一

更多知识在我的语雀平台&#xff1a; https://www.yuque.com/ambition-bcpii/muziteng RabbitMQ 1. RabbitMQ引言 1.1 什么是MQ MQ&#xff08;Message Queue&#xff09;消息队列&#xff0c;是基础数据结构中“先进先出”的一种数据结构。一般用来解决应用解耦&#xff0…

带token的登陆页面爆破方法(burp宏+爬虫脚本分享)

文章目录前言一、token参数分析二、burp设置宏操作三、爬虫脚本四、小结前言 在工作中&#xff0c;会遇到很多登陆页面有token保护&#xff0c;如果用Burpsuite直接抓取数据包并使用爆破模块&#xff0c;则会因token过期导致无法爆破。此时至少可以采用三种办法&#xff1a; 第…

Java诊断工具——arthas,实时监控,了解一下

文章目录1、arthas 简介官方文档2、arthas 的使用场景3、安装&启动3.1 安装3.2 启动4、常用命令5、使用示例5.1 stack5.2 jad5.3 sc5.4 watch5.5 trace5.6 jobs5.7 logger5.8 dashboard5.9 redefine6、其它1、arthas 简介 arthas是由阿里巴巴中间件团队开源的Java诊断工具。…

kubernetes对外服务之Ingress

目录 ​​​​​​​一、Ingress 是什么 1.1Service的作用 1.2Ingress简介 二、Ingress 安装 三、Ingress 代理访问 3.1Ingress HTTP 代理访问 3.2 Ingress: HTTPS 代理访问 3.3Ingress Contronler怎么工作的&#xff1f; ​​​​​​​​​​​​​​一、Ingress 是什…