项目介绍
本安徽新华学院实验中心管理系统的设计目标是实现安徽新华学院实验中心的信息化管理,提高管理效率,使得安徽新华学院实验中心管理工作规范化、科学化、高效化。
本文重点阐述了安徽新华学院实验中心管理系统的开发过程,以实际运用为开发背景,基于SSM框架,运用了JSP技术和MYSQL数据库进行开发,充分保证系统的安全性和稳定性。本系统界面良好,操作简单方便,通过系统概述、系统分析、系统设计、数据库设计、系统测试这几个部分,详细的说明了系统的开发过程,最后并对整个开发过程进行了总结,实现了实验中心相关信息管理的重要功能。
本安徽新华学院实验中心管理系统运行效果稳定,操作方便、快捷,界面友好,是一个功能全面、实用性好、安全性高,并具有良好的可扩展性、可维护性的实验中心管理平台。
开发环境
开发语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
前端框架:Vue
开发工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序ue/爬虫/c#/asp.net
系统截图
部分代码
package com.controller;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.KechengEntity;
import com.service.KechengService;
import com.utils.PageUtils;
import com.utils.R;
/**
* 课程
* 后端接口
*/
@RestController
@Controller
@RequestMapping("/kecheng")
public class KechengController {
private static final Logger logger = LoggerFactory.getLogger(KechengController.class);
@Autowired
private KechengService kechengService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("Controller:"+this.getClass().getName()+",page方法");
Object role = request.getSession().getAttribute("role");
PageUtils page = null;
if(role.equals("老师")){
params.put("yh",request.getSession().getAttribute("userId"));
page = kechengService.queryPage(params);
}else{
page = kechengService.queryPage(params);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
logger.debug("Controller:"+this.getClass().getName()+",info方法");
KechengEntity kecheng = kechengService.selectById(id);
if(kecheng!=null){
return R.ok().put("data", kecheng);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("ve")
public R save(@RequestBody KechengEntity kecheng, HttpServletRequest request){
logger.debug("Controller:"+this.getClass().getName()+",save");
Wrapper<KechengEntity> queryWrapper = new EntityWrapper<KechengEntity>()
.eq("name", kecheng.getName())
.eq("course", kecheng.getCourse())
.eq("ls_types", kecheng.getLsTypes())
.eq("finish_time", kecheng.getFinishTime())
.eq("attend_time", kecheng.getAttendTime())
.eq("zy_types", kecheng.getZyTypes())
.eq("notice_content", kecheng.getNoticeContent())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
KechengEntity kechengEntity = kechengService.selectOne(queryWrapper);
//获取上课时间分钟数
int minutes = kecheng.getAttendTime().getMinutes();
//获取上课时间小时数
int hours = kecheng.getAttendTime().getHours();
//获取下课时间分钟数
int minutes1 = kecheng.getFinishTime().getMinutes();
//获取下课时间小时数
int hours1 = kecheng.getFinishTime().getHours();
if(hours == hours1 && minutes1==minutes){
return R.error("下课时间、上课时间不能相等");
}
if(kechengEntity==null){
if(hours1 == hours){
kecheng.setCourse(minutes1-minutes+"分钟");
kechengService.insert(kecheng);
return R.ok();
}
if(hours1 > hours){
kecheng.setCourse(((hours1*60)+minutes1) - ((hours*60)+minutes)+"分钟");
kechengService.insert(kecheng);
return R.ok();
}
return R.error();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody KechengEntity kecheng, HttpServletRequest request){
logger.debug("Controller:"+this.getClass().getName()+",update");
//根据字段查询是否有相同数据
Wrapper<KechengEntity> queryWrapper = new EntityWrapper<KechengEntity>()
.notIn("id",kecheng.getId())
.eq("name", kecheng.getName())
.eq("course", kecheng.getCourse())
.eq("ls_types", kecheng.getLsTypes())
.eq("zy_types", kecheng.getZyTypes())
.eq("notice_content", kecheng.getNoticeContent())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
KechengEntity kechengEntity = kechengService.selectOne(queryWrapper);
//获取上课时间分钟数
int minutes = kecheng.getAttendTime().getMinutes();
//获取上课时间小时数
int hours = kecheng.getAttendTime().getHours();
//获取下课时间分钟数
int minutes1 = kecheng.getFinishTime().getMinutes();
//获取下课时间小时数
int hours1 = kecheng.getFinishTime().getHours();
if(hours == hours1 && minutes1==minutes){
return R.error("下课时间、上课时间不能相等");
}
if(kechengEntity==null){
if(hours1 == hours){
kecheng.setCourse(minutes1-minutes+"分钟");
kechengService.updateById(kecheng);
return R.ok();
}
if(hours1 > hours){
kecheng.setCourse(((hours1*60)+minutes1) - ((hours*60)+minutes)+"分钟");
kechengService.updateById(kecheng);
return R.ok();
}
return R.error();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
logger.debug("Controller:"+this.getClass().getName()+",delete");
kechengService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
目 录
摘 要 I
Abstract II
1 绪论 1
1.1研究背景 1
1.2设计原则 1
1.3研究内容 2
2 相关技术简介 3
2.1 JSP技术 3
2.2 B/S结构 3
2.3 MYSQL数据库 4
2.4 JAVA技术 4
2.5 Tomcat简介 4
3 系统分析 6
3.1 可行性分析 6
3.1.1 技术可行性 6
3.1.2 经济可行性 6
3.1.3 操作可行性 6
3.1.4 时间可行性 6
3.2 系统性能分析 7
3.3 系统功能分析 7
3.4 系统流程分析 9
3.4.1操作流程 9
3.4.2添加信息流程 10
3.4.3 删除信息流程 11
4 系统设计 12
4.1 系统架构设计 12
4.2 系统结构设计 12
4.3 数据库设计 13
4.3.1数据库E-R图设计 13
4.3.2数据库表设计 15
5 系统实现 17
5.1 登录模块的实现 17
5.2 学生管理模块的实现 17
5.3 老师管理模块的实现 18
5.4 课程管理模块的实现 19
5.5 仪器管理模块的实现 20
5.6 专业管理模块的实现 21
5.7 留言管理模块的实现 21
6 系统测试 22
6.1 测试定义 22
6.2 性能测试 22
6.3 测试原理 22
6.4 测试分析 23
总结 24
参考文献 25
致谢 26