毕业设计 基于SSM的实验室管理系统(源码+论文)


0 项目说明

基于SSM的实验室管理系统

提示:适合用于课程设计或毕业设计,工作量达标,源码开放


1 研究目的

基于B/S模式的实验室管理系统,它所覆盖的功能范围包括有实验室设备管理功能,实验室预约管理功能,实验设备购置与报废、审批购置申请报废申请、基本的设备查询统计等。它是一个由计算机软件、数据库管理、以及管理人员,学生,教师有机组成的实验室管理系统。

2 研究方法

Spring
Spring是一个开源框架,同时也是一个轻量级的框架,。并且Spring也是模块化的,这意味着我们可以使用其中的部分功能而不考虑其他不需要的功能。例如我们可以使用Spring中的AOP,IoC,DI并且舍弃其中的Dao使用Mybatis代替。

SpringMVC
Spring 框架提供了我们日常开发中需要的web应用的MVC模块。因此可以说是spirngMVC是spirng的后来产品。SpringMVC所有的设计都是基于一个servlet,其类名为DispatcherServlet。所有的请求都将被它拦截,并且在初始化该servlet的时候就将映射初始化进来,因此DispatchServlet可以返回映射之后的视图。

MyBatis
MyBatis 是一个不错的持久层框架,减少了代码的硬编码,也支持用户自己编写SQL语句,可以在xml中可以完成一对一或一对多的映射。使用起来非常轻便,易于上手。并且MyBatis支持多种数据库。

MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于。Oracle。旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

Tomcat
Tomcat是Apache下的一个开源的服务器项目,由于其开源以及代码效率执行非常好,深受广大开发人员的热爱。并且Tomcat服务器实现了jsp的解析,而且提供了一些不错的web功能。

3 项目使用

修改配置文件
如果本地的数据库版本是8以上, 需要修改配置文件中关于dbcp的配置部分, 以及pom.xml的jdbc-connection版本。

  • 关于连接数据库的参数
    applicationContext.xml
    mysql.properties

运行sql脚本

  • 创建数据库 lab
  • 运行doc目录下的lab.sql
    在项目目录下(src\ilab_pro)运行
install
mvn install

将war包部署到tomcat
将target目录下的war包放到tomcat即可看到效果,对应的网址 localhost:8080/ilab/index.jsp

4 研究结论

在这里插入图片描述

5 论文目录

1 绪 论 1
1.1 概述 1
1.2 国外研究现状 1
1.3 国内研究现状 2
1.4 研究意义 2
2 系统概述与技术介绍 3
2.1 系统概述 3
2.2 相关技术 3
2.2.1 Spring 3
2.2.2 SpringMVC 3
2.2.3 MyBatis 3
2.2.4 MySQL 3
2.2.5 Tomcat 4
3 需求分析说明书 5
3.1 概述 5
3.2 可行性分析 5
3.3 用例分析 6
3.4 数据描述 9
3.5 功能需求分析 10
3.5.1 功能划分 10
3.5.2 功能描述 10
3.6 非功能性需求分析 17
3.6.1 操作便捷 17
3.6.2 安全 17
3.6.3 响应快 17
4 系统总体设计 18
4.1 软件总体功能结构 18
4.2 用户界面设计 19
4.2.1 注册登录界面 19
4.2.2 主界面 19
4.2.3 通用的列表界面 19
4.2.4 申请购置设备界面 19
4.3 数据库设计 19
4.3.1 数据库概念模型设计 19
4.3.2 数据表结构 19
5 系统详细设计 25
5.1 数据结构 25
5.1.1 相关类名 25
5.1.2 分页的数据结构 25
5.1.3 一些常量 25
5.1.4 命名规范 25
5.2 核心功能设计 25
5.2.1 登录 25
5.2.2 购置设备 25
5.2.3 删除设备 25
5.2.4 用户管理 25
5.2.5 实验室管理 25
6 系统实现 26
6.1 环境搭建 26
6.2 功能模块 26
6.2.1 注册 26
6.2.2 个人信息管理 28
6.2.3 实验室设备管理 30
6.2.4 购置设备 32
6.2.5 审批购置设备申请表 33
6.2.6 盘点统计实验室数据 35
6.2.7 通知管理 36
6 系统测试 37
6.1 软件测试目标 37
6.2 软件测试方法 37
6.3 主要模块测试 37
6.3.1 登录模块测试 37
6.3.2 申请购置设备模块测试 39
6.3.3 修改个人信息模块测试 40
6.3.4 查询实验室设备模块测试 41
6.3.5 盘点统计模块测试 43
6.4 测试总结 44
总 结 46
参考文献 47
致 谢 48
外文原文 49
外文翻译 55

6 项目源码

package top.yjzloveyzh.controller;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import top.yjzloveyzh.common.Constants;
import top.yjzloveyzh.common.exception.EquipmentException;
import top.yjzloveyzh.common.exception.RecordException;
import top.yjzloveyzh.common.pojo.Pagination;
import top.yjzloveyzh.common.pojo.RequestBuyRecord;
import top.yjzloveyzh.common.pojo.User;
import top.yjzloveyzh.services.RecordService;

@Controller
@RequestMapping(value = "/approvement")
public class ApprovementController {

    @Qualifier(value = "recordServiceImpl")
    @Autowired
    RecordService recordService;

    @RequestMapping(value = "/m/buy-record")
    public String toApprovementManagement(String searchKeyWord, String page, String orderBy, HttpSession session, HttpServletRequest request) {

        User user = (User) session.getAttribute(Constants.User.SESSION_USER_KEY);

        try {
            Pagination<RequestBuyRecord> pagination = recordService.getNotReplyRequestBuyRecord(user, searchKeyWord, page, orderBy);
            request.setAttribute("pagination", pagination);
        } catch (RecordException recordException) {

            if (recordException.getErrorCode().equals(Constants.ErrorCode.ERROR_USER_NOT_EXIST)) {

                return "redirect:/user/toLogin";
            }
        }

        return "approvement/approve_buy_record";
    }

    @RequestMapping(value = "/m/buy-record/{id}")
    public String toApprovementBuyRecordDetail(@PathVariable("id") String id, HttpServletRequest request) {

        try {
            RequestBuyRecord requestBuyRecord = recordService.findRequestBuyRecordById(id);

            if (requestBuyRecord == null
                || requestBuyRecord.getEquipments() == null
                || requestBuyRecord.getEquipments().size() == 0) {

                return "redirect:/approvement/buy-record";
            }

            request.setAttribute("record", requestBuyRecord);

            return "approvement/approve_buy_record_detail";
        } catch (RecordException recordException) {

            return "redirect:/approvement/buy-record";
        }
    }

    @RequestMapping(value = "/r/buy-record/{id}")
    public String toRecordApprovementBuyRecordDetail(@PathVariable("id") String id, HttpServletRequest request) {

        try {
            RequestBuyRecord requestBuyRecord = recordService.findRepliedBuyRecordById(id);

            if (requestBuyRecord == null
                    || requestBuyRecord.getEquipments() == null
                    || requestBuyRecord.getEquipments().size() == 0) {

                return "redirect:/approvement/buy-record";
            }

            request.setAttribute("record", requestBuyRecord);

            return "approvement/applied_buy_record_detail";
        } catch (RecordException recordException) {

            return "redirect:/approvement/buy-record";
        }
    }

    @RequestMapping(value="/m/buy-record/approve", method={RequestMethod.POST})
    public @ResponseBody Map<String, String> toApproveBuyRecord(String id, String operation, HttpServletRequest request, HttpSession session) {

        Map<String, String> result = new HashMap<String, String>();
        User user = (User) session.getAttribute(Constants.User.SESSION_USER_KEY);

        try {
            recordService.approveRequestBuyRecord(id, operation, user);
            result.put("code", Constants.ErrorCode.SUCCESS);
        } catch (RecordException recordException) {
            result.put("code", recordException.getErrorCode());
        } catch (EquipmentException equipmentException) {
            result.put("code", equipmentException.getErrorCode());
        }

        return result;
    }

    @RequestMapping(value = "/r/buy-record")
    public String toApprovementRecordManagement(String searchKeyWord, String page, String orderBy, HttpSession session, HttpServletRequest request) {

        User user = (User) session.getAttribute(Constants.User.SESSION_USER_KEY);

        try {
            Pagination<RequestBuyRecord> pagination = recordService.getRepliedRequestBuyRecord(user, searchKeyWord, page, orderBy);
            request.setAttribute("pagination", pagination);
        } catch (RecordException recordException) {

            if (recordException.getErrorCode().equals(Constants.ErrorCode.ERROR_USER_NOT_EXIST)) {

                return "redirect:/user/toLogin";
            }
        }

        return "approvement/applied_buy_record";
    }
}

7 最后

**项目分享: ** https://gitee.com/asoonis/htw

  • 26
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值