基于springboot的图书馆选座管理的设计与实现
摘 要
随着计算机技术的高速发展,现代计算机系统已经从以计算为中心向以信息化处理为中心的方向发展。而图书馆选座管理,不仅需要在硬件上为现代社会的座位们提供一个学习知识,获取知识的环境,更要在软件上为愿意上课的人提供必要的便利。于是图书馆选座管理系统便应运而生。
目前在本课题范围内,分析了图书馆选座管理人员对座位的管理现状和现有的用户对图书馆选座管理人员的服务的要求。针对两者的要求,设计了一套基于SpringMVC的图书馆选座管理系统。本系统的集成开发环境是Eclipse,使用MySQL作为数据库管理系统,Web服务器采用Tomcat,运用SpringMVC及Spring3.0框架技术实现。为了充分利用网络信息化的优势,本系统采用B/S结构。系统具有专门的供用户使用的前台和专门供图书馆选座管理人员使用的后台。
在图书馆选座管理系统的实现下,图书馆选座管理人员能够充分发挥信息化处理的优势,提高日常管理的处理速率。用户一方可以更好的享受信息化处理带来的便利。系统运行能够稳定且高效。并且人机友好程度能够显著提升。
关键词:图书馆选座管理;SpringMVC;B/S
Design and implementation of library seat selection management based on springboot
Abstract
With the rapid development of computer technology, the modern computer system has been developed from computing to information processing. And the library seat selection management, not only needs to provide a modern society for students to learn knowledge in the hardware, access to knowledge environment, but also in the software for willing to take classes to provide the necessary convenience. So the library seat selection management system came into being.
At present, within the scope of this subject, this paper analyzes the management status of the library seat selection manager to the students and the service requirements of the existing users to the library seat selection manager. Aiming at the two requirements, a library seat selection management system based on SpringMVC is designed. The integrated development environment of this system is Eclipse, MySQL is used as the database management system, Tomcat is used as the Web server, SpringMVC and Spring3.0 framework technology is used to achieve. In order to make full use of the advantages of network information, the system adopts B/S structure. The system has a special front desk for users and a special backstage for the library seat selection management personnel to use.
Under the realization of the library seat selection management system, the library seat selection management personnel can give full play to the advantages of information processing and improve the processing speed of daily management. Users can better enjoy the convenience of information processing. The system can run stably and efficiently. And the human-machine friendliness can be significantly improved…With the increasing demand for parts and products, vertical double axis machine tools are more and more widely used.
Keywords: Vertical double axis machine tool; Gear transmission; Lifting platform; 3D modeling
(文中的英文一律采用“Times New Roman”字体)
目录
摘 要 III
Abstract IV
1 前言 1
1.1 研究工作的背景与意义 1
1.2 国内外钻床的发展及研究现状 1
1.3 本文主要研究内容 1
2 升降台部件的结构设计 2
2.1 升降机构的设计 2
2.2 手柄传动系统设计 2
2.3 导轨的选用及安装 2
3 主要零件的设计和选型 2
3.1 升降丝杆计算 3
3.2 锥齿轮传动计算 3
4 工作台工艺设计 3
4.1 零件工艺分析 4
4.2 选择定位基准 4
4.2.1 粗基准的选择 4
4.2.2 精基准的选择 4
4.3 工艺路线确定 4
5 总结(可根据需要增加章节) 5
参考文献 6
附录A:立式双轴复合机工作台的机械加工工序卡片 7
附录B:立式双轴复合机模型图 8
附录C:工作台零件图 9
致谢 10
1 项目概述
1.1 问题描述
目前现有的图书馆选座管理系统对于用户而言其选座管理流程仍然过于繁琐,对于图书馆选座管理而言其系统安全性并不能保障。同时整套系统所使用的技术相对较为落后,界面不能动态化展示。相比较于其它同类型网站而言不能体现技术先进性。
1.2 项目目标
图书馆选座管理系统的后台开发目标是以信息管理系统的管理和开发方法,用目前现有的新技术进行系统开发,提供后台管理员高度友好的界面操作以及迅捷的信息处理。而前台的开发目标是以用户的需求作为主导,提供对用户而言非常友好的界面操作环境以及完善系统功能。
本系统主要针对现在培训管理系统中存在的问题,对需要改进的地方进行系统分析,对系统所要实现的功能进行完善,使得其更具有高度界面友好的特性。提出对于系统而言具备可行性的方案,做好系统分析。编译出界面友好,功能齐全的图书馆选座管理系统。
1.3 项目适用范围
该项目的前台适用于普通用户用户,后台适用于图书馆选座管理人员。
1.4 项目应遵守的规范与标准
为了信息传输的安全性,与数据库进行交互的情况下,重要的信息比如“用户密码”,一律用密文传输。
1.5 涉众
在本系统中,涉及到的人员有图书馆选座管理人员和用户。
对于图书馆选座管理人员,其使用习惯是偏向于实用性和安全性。希望该系统能够高度安全,并且能够正常实现图书馆选座管理业务的各项功能。
对于用户而言,其更倾向于界面友好性和便捷性。不仅希望系统能动态展示,还希望系统能够做到“一步到位”,其希望能实现的功能除了正常的图书馆选座管理业务以外还希望能够网上教室座位的管理。
2 需求分析
2.1 业务需求
2.1.1 业务流程
在发布求座流程中,座位登录系统后,可以添加预订座位信息,数据库受理业务并将座位的信息存入到数据库中,其发布求座流程总体业务如图2.1所示。
图2.1 发布求座流程总体业务
在添加座位流程中,管理员登录后台可以对座位信息进行添加,图书馆选座管理人员将办理业务并将数据添加到数据库,其添加座位流程总体业务如图2.2所示。
图2.2 添加座位流程总体业务
在用户注册总体业务中,用户到图书馆选座管理注册,图书馆选座管理人员将根据用户情况进行注册,其用户注册流程总体业务如图2.3所示。
图2.3 用户注册流程总体业务
2.2 功能性需求
2.2.1 用例概述
在图2.5高层用例图中抽取了满足图书馆选座管理和用户的基本业务需求的基本用例。由这些用例所显示的从用户使用的前台和图书馆选座管理人员使用的后台来完成图书馆选座管理的正常运作。
图2.5 高层用例图
图2.5之间的用例标识、用例名称和摘要描述如表2.1所示。
表2.1 用例摘要描述
用例标识(UC) 用例名称 摘要描述
0 登录 使用系统前的身份验证。
1.1 更改密码 用户可以在系统上更改密码。
1.2 查看座位信息 用户可以查找教室信息,并可以获得包括座位名、内容、座位编号等信息。
1.3 在线留言 用户可以在线在线留言。
1.4 查看新闻公告 用户可以在线查看公告。
2.1 管理用户信息 图书馆选座管理人员可以管理用户的信息。
2.2 管理教室信息 图书馆选座管理人员可以管理教室的信息。
2.3 管理留言信息 图书馆选座管理人员可以管理家长的信息。
2.4 管理座位信息 图书馆选座管理人员可以管理留言的信息。
2.5 管理座位信息 图书馆选座管理人员可以管理座位的信息。
2.6 管理人员密码更改 图书馆选座管理人员可以更改图书馆选座管理人员密码。
2.2.2 用例细化描述
(1)管理用户信息用例
图书馆选座管理人员可以通过管理用户信息用例对用户信息进行维护,包括对用户信息的增删改查。管理用户信息用例图如图2.6所示。
图2.6 管理用户信息用例图
添加用户信息用例中描述如表2.2所示。
表2.2 添加用户信息用例表
用例标识 2.1.1
用例名称 添加用户信息
参与者 图书馆选座管理人员
前置条件 已经以图书馆选座管理人员身份登录。
后置条件 在用户表中添加一条用户信息。
用例概述 图书馆选座管理人员可以对用户信息进行添加。
基本事件流 1. 图书馆选座管理人员在管理用户主界面选取添加用户信息项。
2. 系统显示添加用户界面。
3. 图书馆选座管理人员按照用户提供的信息输入用户姓名、用户密码、用户性别、用户电话后,提交添加请求。
4. 系统检查输入信息的有效性。
5. 系统查询结果确认没有重复姓名,将录入用户信息到用户信息表中。
6. 系统显示添加用户成功。
备选事件流 5a 系统查出有重复姓名,将显示添加用户失败,管理员重新输入另一名称,系统查出没有重复姓名,显示添加用户成功。
备注 用户编号生成
更改用户信息用例描述如表2.3所示。
表2.3更改用户信息用例表
用例标识 2.1.2
用例名称 更改用户信息
参与者 图书馆选座管理人员
前置条件 已经以图书馆选座管理人员身份登录。
后置条件 在用户表中更改一条用户信息。
用例概述 图书馆选座管理人员可以对用户信息进行更改。
基本事件流 1. 图书馆选座管理人员在管理用户主界面选取更改用户信息项。
2. 系统显示更改用户界面,并将用户信息显示齐全。
3. 图书馆选座管理人员按照用户提供信息更改用户信息,提交更改请求。
4. 系统检查输入信息的有效性。
5. 系统根据查询结果确认没有重复姓名,将更改用户信息表中的记录。
6. 系统显示更改用户成功。
备选事件流 5a 系统查出有重复姓名,将显示更改用户失败,管理员重新输入另一名称,系统查出没有重复姓名,显示更改用户成功。
备注 无
删除用户信息用例描述如表2.4所示。
表2.4删除用户信息用例表
用例标识 2.1.3
用例名称 删除用户信息
参与者 图书馆选座管理人员
前置条件 已经以图书馆选座管理人员身份登录。
后置条件 在用户表中删除用户信息。
用例概述 图书馆选座管理人员可以对用户信息进行删除。
基本事件流 1. 图书馆选座管理人员在管理用户主界面选取删除用户信息项。
2. 系统显示是否删除用户,图书馆选座管理人员选择删除。
3. 系统删除用户信息表中相对应的用户信息。
4. 系统显示删除用户成功。
备选事件流 2a 系统显示是否删除用户,管理人员选择不删除。系统不改变
备注 无
搜索用户信息用例描述如表2.5所示。
表2.5搜索用户信息用例表
用例标识 2.1.4
用例名称 搜索用户信息
参与者 图书馆选座管理人员
前置条件 已经以图书馆选座管理人员身份登录。
后置条件 在用户表中搜索用户信息。
用例概述 图书馆选座管理人员可以搜索用户信息。
基本事件流 1. 图书馆选座管理人员在管理用户主界面选取搜索用户信息项。
2. 系统显示搜索用户页面。
3. 图书馆选座管理人员输入用户个别信息,并进行搜索。
4. 系统根据输入的信息,返回搜索结果。
备选事件流 4a 系统根据输入结果搜索不到结果,在主页面显示搜索不到结果。
备注 无
(2)管理座位信息用例
图书馆选座管理人员可以通过管理座位信息用例对座位信息进行维护,包括对座位信息的增删改查。管理座位信息用例图如图2.7所示。
图2.7 管理座位信息用例图
其添加座位信息用例的描述如表2.6所示。
表2.6 添加座位信息用例表
用例标识 2.4.1
用例名称 添加座位信息
参与者 图书馆选座管理人员
前置条件 已经以图书馆选座管理人员身份登录。
后置条件 在座位表中添加一条座位信息。
用例概述 图书馆选座管理人员可以对座位信息进行添加。
基本事件流 1. 图书馆选座管理人员在管理座位主界面选取添加座位信息项。
2. 系统显示添加座位界面。
3. 图书馆选座管理人员输入座位名称、座位简介后,提交添加请求。
4. 系统检查输入信息的有效性。
5. 系统根据查询结果确认没有重复座位名,将座位信息录入到座位信息表中。
6. 系统显示添加座位成功。
备选事件流 5a 系统查出有重复书记类别名称,将显示添加座位失败,管理员重新输入另一名称,系统查出没有重复座位,显示添加座位成功。
备注 座位编号生成
更改座位信息用例描述如表2.7所示。
表2.7 更改座位信息用例表
用例标识 2.4.2
用例名称 更改座位信息
参与者 图书馆选座管理人员
前置条件 已经以图书馆选座管理人员身份登录。
后置条件 在座位表中更改一条座位信息。
用例概述 图书馆选座管理人员可以对座位信息进行更改。
基本事件流 1. 图书馆选座管理人员在管理用户主界面选取更改座位信息项。
2. 系统显示更改座位界面,并将座位信息显示齐全。
3. 图书馆选座管理人员更改座位信息,提交更改请求。
4. 系统检查输入信息的有效性。
5. 系统根据查询结果确认没有重复座位名称,将更改座位信息表中信息。
6. 系统显示更改座位成功。
备选事件流 5a 系统查出有重复座位名称,将显示更改座位失败,管理员重新输入另一名称,系统查出没有重复座位名称,显示更改座位成功。
备注 无
删除座位信息用例描述如表2.8所示。
表2.8删除座位信息用例表
用例标识 2.4.3
用例名称 删除座位信息
参与者 图书馆选座管理人员
前置条件 已经以图书馆选座管理人员身份登录。
后置条件 在座位表中删除座位信息。
用例概述 图书馆选座管理人员可以对座位信息进行删除。
基本事件流 1. 图书馆选座管理人员在管理座位主界面选取类别后删除座位信息项。
2. 系统显示是否删除座位,图书馆选座管理人员选择删除。
续表2.8删除座位信息用例表
基本事件流 3. 系统检查座位下是否有座位
4. 系统确认座位下无座位,将删除座位信息表中指定信息。
5. 系统显示删除座位成功。
备选事件流 1a 选取不同座位,选择批量删除
2a 系统显示是否删除座位,图书馆选座管理人员选择不删除。系统不改变
4a 系统确认座位下有座位,显示因有座位,删除失败。
备注 无
(3)管理教室信息用例
图书馆选座管理人员可以通过管理教室信息用例对座位信息进行维护,包括对教室信息的增删改查。管理教室信息用例图如图2.8所示。
图2.8 管理教室信息用例图
新增教室信息用例描述如表2.9所示。
表2.9 新增教室信息用例表
用例标识 2.5.1
用例名称 新增教室信息
参与者 图书馆选座管理人员
前置条件 已经以图书馆选座管理人员身份登录。
后置条件 在教室表中添加一条教室信息。
用例概述 图书馆选座管理人员可以对教室信息进行添加。
基本事件流 1. 图书馆选座管理人员在管理教室主界面选取添加教室信息项。
2. 系统显示新增教室界面。
3. 图书馆选座管理人员输入教室名称、教室时间、授课人、教室内容后,提交添加请求。
4. 系统检查输入信息的有效性。
5. 系统根据查询结果确认没有重复教室名称,将信息录入到教室信息表中。
6. 系统显示添加教室成功。
备选事件流 5a 系统查出有重复教室名称,将显示添加教室失败,管理员重新输入另一名称,系统查出没有重复教室名称,显示添加教室成功。
备注 教室编号生成
更改教室信息用例描述如表2.10所示。
表2.10更改教室信息用例表
用例标识 2.5.2
用例名称 更改教室信息
参与者 图书馆选座管理人员
前置条件 已经以图书馆选座管理人员身份登录。
后置条件 在教室表中更改一条教室信息。
用例概述 图书馆选座管理人员可以对教室信息进行更改。
基本事件流 1. 图书馆选座管理人员在管理教室主界面选取更改教室信息项。
2. 系统显示更改教室界面,并将教室信息显示齐全。
3. 图书馆选座管理人员更改教室信息,提交更改请求。
4. 系统检查输入信息的有效性。
5. 系统根据查询结果确认没有重复教室名称,将更改教室信息表中的记录。
6. 系统显示更改教室成功。
备选事件流 5a 系统查出有重复教室名称,将显示更改教室失败,管理员重新输入另一名称,系统查出没有重复教室名称,显示更改教室成功。
备注 无
删除教室信息用例描述如表2.11所示。
表2.11 删除教室信息用例表
用例标识 2.5.3
用例名称 删除教室信息
参与者 图书馆选座管理人员
前置条件 已经以图书馆选座管理人员身份登录。
后置条件 在教室表中删除教室信息。
用例概述 图书馆选座管理人员可以对教室信息进行删除。
基本事件流 1. 图书馆选座管理人员在管理教室主界面选取教室后选择删除教室信息。
2. 系统显示是否删除教室,图书馆选座管理人员选择删除教室。
3. 系统删除教室信息表中的相对应的教室信息。
4. 系统显示删除教室成功。
备选事件流 1a 选取不同教室后,选择批量删除
2a 系统显示是否删除教室,管理人员选择不删除。系统不改变
备注 无
2.3 非功能性需求
安全性:用户信息具有保密性,用户信息只能由图书馆选座管理人员控制更改使用,用户注册也只能在图书馆选座管理人员处进行注册登记。
正确性:不允许出现业务错误。
兼容性:可在各种支持HTML5的浏览器中使用。
性能:系统处理业务时页面响应时间不能超过2秒,在繁忙时间最多不能超过6秒。
并发性:允许多个用户用户登录操作。
2.4 运行环境
图书馆选座管理系统运行需要的硬件环境如下
(1)主机类型
系统主机服务器:DELL PowerEdge R630,四核CPU,8G RAM
数据库服务器:HP DL388 Gen9,四核CPU,8G RAM
用户用PC机:任意可联网设备
(2)网络类型
以太网
(3)存贮器容量
系统主机服务器:200G以上
数据库服务器:1000G以上
(4)设备分布图
设备分布图如图2.9所示。
图2.9 设备分布图
图书馆选座管理系统运行所需的软件环境如下。
(1)操作系统:
应用服务器:Windows NT Server 2008以上版本
用户用PC机:windows XP和以上
(2)数据库管理系统:
MySQL 5.0.27
(3)网页浏览器:
应用服务器:Google Chrome
用户用PC机:Google Chrome或者Firefox
(4)开发环境:
IDE采用Eclipse Java EE IDE Luna(4.4.1)
(5)数据库管理工具:
Navicat Premium 10.0.9
(6)运行环境:
Tomcat 7.0 + Apache
3 系统设计
3.1 技术路线
在图书馆选座管理系统中,用到的技术路线如下:
B/S(Browser /Service )结构,中文译为浏览器和服务器结构。是目前国内最为常见,而且对于用户而言是最方便的一个常用结构,对以往的客户机/服务器结构(Client/Service)进行更深一层的优化。在这种结构下,用户只需要使用任意浏览器即可进行主要事物的实现和使用。其主要的逻辑在服务器端(Service)完成,而在浏览器部分只处理非常少的事物逻辑处理。可以看作从传统的二层模式结构发展而来的在C/S(Client/Service)结构在Web上的应用的三层结构。该结构适用面非常广,其对系统维护所产生的升级成本和人力时间更低,用户使用成本低,以目前的技术发展情况看,其技术相对来讲易于把握。
Spring Boot是Pivotal团队的一个新框架,旨在简化新Spring应用程序的初始设置和开发。该框架使用特定的配置方法,无需开发人员定义样板配置。通过这种方式,Spring Boot旨在成为蓬勃发展的快速应用程序开发领域的领导者。
Spring Boot特点:
1、创建一个单独的Spring应用程序;
2、嵌入式Tomcat,无需部署WAR文件;
3、简化Maven配置;
4、自动配置Spring;
5、提供生产就绪功能,如指标,健康检查和外部配置;
6、绝对没有代码生成和XML的配置要求;
安装步骤:
最基本的是,Spring Boot是一个可以被任何项目的构建系统使用的库集合。 为简单起见,该框架还提供了一个命令行界面,可用于运行和测试Boot应用程序。 可以从Spring存储库手动下载和安装框架的已发布版本,包括集成的CLI(命令行界面)。 更简单的方法是使用Groovy enVironment Manager(GVM),它负责处理Boot版本的安装和管理。 可以从GVM命令行GVM install springboot安装Boot及其CLI。 在OS X上安装Boot时可以使用Homebrew包管理器。要完成安装,首先使用brew tap pivotal / tap切换到pivotal存储库,然后执行brew install springboot命令。
3.2 软件体系结构设计
3.2.1 功能结构
根据需求调研结果确定本系统主要包括以下功能模块,如图3.1所示。
图3.1系统功能结构图
3.2.2 系统架构
系统架构图如图3.2所示。
图3.2 系统架构图
系统架构选用Spring3.0架构。作为在Java领域最为成功的开源软件之一,Spring在Java EE 开发中使用者众多。Spring抽象了我们在目前许多应用开发中所遇到的最共性的问题,同时作为一个轻量级的应用开发框架,Spring和传统的J2EE开发相比,有其自身特有的特点。Spring通过这些自身特有的特点充分体现了它的设计理念:在Java EE的应用开发中,支持POJO(JavaBean)的开发方式,使应用能够面向接口开发,充分支持OO(面向对象)的设计方法。在IOC容器和AOP面向切面编程的核心模块的支持下,使得程序员能够高度简化了Java EE的开发过程。为应用开发提供了极其丰富的系统组件,通过这些组件,为企业应用服务的实现提供驱动支持。
3.3 数据库设计
3.3.1 概念结构设计
针对图书馆选座管理系统的功能性需求方面的了解,系统概念模型(ER图)如图3.3所示。
图3.3 系统概念模型ER图
3.3.2 表的详细设计
通过对图书馆选座管理系统在需求分析中的领域对象、业务对象及对象之间的分析,进行了对图书馆选座管理系统的数据库建表设计。图书馆选座管理系统数据库管理部分采用MySQL。
allusers表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 username VarChar 50 是 255
3 pwd VarChar 50 是 255
4 cx VarChar 50 是 255
5 addtime DateTime 8 是 23
jiaoshixinxi表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 jiaoshimingcheng VarChar 50 是 255
3 zongzuoweishu VarChar 50 是 255
4 kongzuoweishu VarChar 50 是 255
5 jiaoshizhaopian DateTime 8 是 23
6 jianjie VarChar 50 是 255
7 addtime VarChar 50 是 255
likaishijian表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 jiaoshimingchen VarChar 50 是 255
3 zuoweihao VarChar 50 是 255
4 likaikaishishijian VarChar 50 是 255
liuyanban表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 cheng VarChar 50 是 255
3 xingbie VarChar 50 是 255
4 QQ VarChar 50 是 255
5 youxiang VarChar 50 是 255
6 shouji VarChar 50 是 255
7 neirong VarChar 50 是 255
8 huifuneirong VarChar 50 是 255
9 addtime VarChar 300 是 255
pinglun表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 xinwenID VarChar 50 是 255
3 pinglunneirong VarChar 50 是 255
4 pinglunren VarChar 50 是 255
5 pingfen VarChar 50 是 255
6 biao VarChar 50 是 255
7 addtime VarChar 50 是 255
shoucangjilu表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 xuehao VarChar 50 是 255
3 jiaoshimingcheng VarChar 50 是 255
4 zuoweihao DateTime 8 是 23
5 addtime VarChar 50 是 255
xueshengxinxi表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 xuehao VarChar 50 是 255
3 mima VarChar 50 是 255
4 xingming DateTime 8 是 23
5 xingbie VarChar 50 是 255
6 xinyongfen VarChar 50 是 255
7 nianling VarChar 50 是 255
8 shouji VarChar 50 是 255
9 shenfenzheng VarChar 50 是 255
10 beizhu VarChar 50 是 255
11 addtime VarChar 50 是 255
shoucangjilu表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 yonghuzhuce VarChar 50 是 255
3 mima VarChar 50 是 255
4 xingming DateTime 8 是 23
5 xingbie VarChar 50 是 255
6 chushengnianyue VarChar 50 是 255
7 QQ VarChar 50 是 255
8 youxiang VarChar 50 是 255
9 shouji VarChar 50 是 255
10 shenfenzheng VarChar 50 是 255
11 touxiang VarChar 50 是 255
12 dizhi VarChar 50 是 255
13 beizhu VarChar 50 是 255
14 issh VarChar 50 是 255
15 addtime VarChar 50 是 255
yudingzuowei表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 jiaoshimingcheng VarChar 50 是 255
3 zuoweihao VarChar 50 是 255
4 yudingren DateTime 8 是 23
5 issh VarChar 50 是 255
6 addtime VarChar 50 是 255
zuoweixinxi表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 jiaoshimingcheng VarChar 50 是 255
3 zuoweihao VarChar 50 是 255
4 zuoweizhuangtai DateTime 8 是 23
5 addtime VarChar 50 是 255
zuoweizhuangtaixinxi表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 jiaoshimingcheng VarChar 50 是 255
3 zuoweihao VarChar 50 是 255
4 zuoweizhuangtai DateTime 8 是 23
5 yudingren VarChar 50 是 255
6 addtime VarChar 50 是 255
4 系统实现
4.1 核心功能实现
4.1.1 用户图书馆选座功能实现
用户登录系统点击座位信息,选座座位操作,采用 form表单发送请求将座位信息发送到控制层,控制层发送数据到业务逻辑层,业务逻辑层通过调用 DAO层来访问数据库从而执行修改并返回结果,实现效果如图4.1所示。
图4.1 用户图书馆选座功能实现效果图
主要代码:
// 前台详细
@RequestMapping(“ydzwDetail.do”)
public String ydzwDetail(int id,ModelMap map,Yudingzuowei yudingzuowei){
yudingzuowei=yudingzuoweiService.getById(id);
map.put(“yudingzuowei”, yudingzuowei);
return “yudingzuoweidetail”;
}
//
@RequestMapping(“updateYudingzuowei.do”)
public String updateYudingzuowei(int id,ModelMap map,Yudingzuowei yudingzuowei,HttpServletRequest request,HttpSession session){
yudingzuoweiService.update(yudingzuowei);
session.setAttribute(“backxx”, “修改成功”);
session.setAttribute(“backurl”, request.getHeader(“Referer”));
return “redirect:postback.jsp”;
//String url = request.getHeader(“Referer”);
//return “redirect:”+url;
//return “redirect:yudingzuoweiList.do”;
} }
4.1.2 管理员发布座位信息功能实现
管理员可以发布具体的座位信息的操作,采用 form表单发送请求将座位信息发送到控制层,控制层发送数据到业务逻辑层,业务逻辑层通过调用 DAO层来访问数据库从而执行修改并返回结果,实现效果如图4.1所示。
图4-7 管理员发布座位信息功能页面
主要代码:
@RequestMapping(“addZuoweixinxi.do”)
public String addZuoweixinxi(HttpServletRequest request,Zuoweixinxi zuoweixinxi,HttpSession session) throws SQLException{
Timestamp time=new Timestamp(System.currentTimeMillis());
zuoweixinxi.setAddtime(time.toString().substring(0, 19));
List li = new db().select("select zuoweihao from zuoweixinxi where zuoweihao='" + zuoweixinxi.getZuoweihao() + "' and jiaoshimingcheng='" + zuoweixinxi.getJiaoshimingcheng() + "'");
if(li.size() != 0) {
System.err.println(li);
session.setAttribute("backxx", "座位号已存在");
session.setAttribute("backurl", request.getHeader("Referer"));
return "redirect:postback.jsp";
}
zuoweixinxiService.add(zuoweixinxi);
session.setAttribute("backxx", "添加成功");
session.setAttribute("backurl", request.getHeader("Referer"));
return "redirect:postback.jsp";
//return "redirect:zuoweixinxiList.do";
}
// 处理编辑
@RequestMapping(“doUpdateZuoweixinxi.do”)
public String doUpdateZuoweixinxi(int id,ModelMap map,Zuoweixinxi zuoweixinxi){
zuoweixinxi=zuoweixinxiService.getById(id);
map.put(“zuoweixinxi”, zuoweixinxi);
return “zuoweixinxi_updt”;
}
4.1.3 管理员审核座位预订功能
管理员可以审核座位预订信息的操作,采用 form表单发送请求将座位审核信息发送到控制层,控制层发送数据到业务逻辑层,业务逻辑层通过调用 DAO层来访问数据库从而执行修改并返回结果,实现效果如图4.1所示。
图4-7 管理员审核座位预订功能页面
主要代码:
@RequestMapping(“addYudingzuowei.do”)
public String addYudingzuowei(HttpServletRequest request,Yudingzuowei yudingzuowei,HttpSession session) throws SQLException{
Timestamp time=new Timestamp(System.currentTimeMillis());
yudingzuowei.setAddtime(time.toString().substring(0, 19));
yudingzuoweiService.add(yudingzuowei);
session.setAttribute("backxx", "添加成功");
session.setAttribute("backurl", request.getHeader("Referer"));
//session.setAttribute("backurl", "yudingzuoweiList.do");
return "redirect:postback.jsp";
//return "redirect:yudingzuoweiList.do";
} }
4.2 关键技术难点与解决方案
管理通过添加教室信息,通过上传的图片信息来添加教室,然后进行教室的增加,可以点击图片看大图更加仔细一些,然后点击详细信息进行教室品的查看,难点就在于上传图片大小格式上,和保存图片路径是采用绝对路径还是相对路径上,产生的分歧。下面以添加教室信息上传图片为例进行分析,如图4.7所示。
图4.7选择教室图片上传图
通过上网查询各种资料,最终用相对路径进行图片的保存,这样既方便上传而且又方便管理,后台部分代码如下。
@RequestMapping(value = “/exAdd”)
public String exAdd(Item item, @RequestParam(“file”) CommonsMultipartFile[] files, HttpServletRequest request, Model model) throws IllegalStateException, IOException {
if (files.length > 0){
// 0 1 2 3 4
for (int s = 0;s < files.length;s++){
System.out.println("开始");
long startTime=System.currentTimeMillis();
System.out.println("fileName:"+files[s].getOriginalFilename());
String n = UUIDUtils.create();
String path="D:/my/upload/"+n+files[s].getOriginalFilename();
System.out.println("===================================================");
System.out.println(path);
File newFile=new File(path);
//通过CommonsMultipartFile的方法直接写文件(注意这个时候)
files[s].transferTo(newFile);
long endTime=System.currentTimeMillis();
System.out.println("方法二的运行时间:"+String.valueOf(endTime-startTime)+"ms");
System.out.println("*********************************************************");
System.out.println("*********************************************************");
if (s == 0){
item.setUrl1("\\upload\\"+n+files[s].getOriginalFilename());
}
if (s == 1){
item.setUrl2("\\upload\\"+n+files[s].getOriginalFilename());
}
if (s == 2){
item.setUrl3("\\upload\\"+n+files[s].getOriginalFilename());
}
if (s == 3){
item.setUrl4("\\upload\\"+n+files[s].getOriginalFilename());
}
if (s == 4){
item.setUrl5("\\upload\\"+n+files[s].getOriginalFilename());
}
}
}
item.setGmNum(0);
item.setIsDelete(0);
item.setScNum(0);
ItemCategory byId = itemCategoryService.getById(item.getCategoryIdTwo());
item.setCategoryIdOne(byId.getPid());
itemService.insert(item);
return "redirect:/item/findBySql.action";
}
}
5 系统测试
图书馆选座管理系统的测试是和系统开发同步进行的,因此在需求阶段测试人员就已经对需求阶段的各个指标进行了相对应的验证测试,在系统开发过程中进行单元测试,在系统开发完成后针对性能、功能性和可用性进行系统测试。限于篇幅所限,下面主要围绕功能测试用例和测试总结两个方面进行说明。
5.1 测试方法
1.功能测试:功能测试,顾名思义就是为了测试功能是否存在缺陷,有没有出现链接没有实现,是否出现表单没有提交成功,以及数据库是否能够连上等等,这些都是常规的功能测试内容。
2.性能测试:性能测试首先要测试性能是否正常,比如反应速度是否正常,如果客户访问非常慢的话,用户体验将会非常糟糕,这个工作也很重要。
3.兼容性测试:我们都知道,在系统开发完成以后,要进行多平台的兼容性测试,比如火狐浏览器,谷歌浏览器,微软浏览器,浏览器有多个不同的版本,就需要进行多方面的测试,因为不同的版本可能会出现不同的结果,为了使它们能够在这个系统上面都可以正常使用,就需要进行兼容性测试。
4.安全测试:系统测试的最后一步是进行安全性测试,系统开发以后,为了确保运行正常,以及后台的正常使用,确保数据的安全,防止黑客攻击,防止数据库的注入,以及是否存在漏洞,这些都要进行安全性测试,不然一旦数据被黑客攻击,就将对整个系统造成影响,甚至造成数据的泄漏。
5.2 测试总结
在开发期间采用的是边开发边测试的方式,使得开发周期和测试周期同步。经检测,在最后的系统测试期间,全部bug数为320个,在开发阶段的bug就有280个。在最后测试阶段的bug则只有40个。通过开发和测试共同进行的方式,最终保证系统能够具有较高的稳定性。同时通过不断的版本控制,使得系统具备较好的可用性。
系统在功能性上由于新技术所造成的不稳定性,导致了新技术所带来的功能性bug较多。但性能bug则很少,另外经过多次改进,新技术造成的错误数大幅度减少。
6 结论与展望
在这近几个月的不断的努力中,图书馆选座管理系统终于圆满完成。这套系统具有很多优点,不仅能完成日常教育管理的,还可以对图书馆选座管理的业务进行扩展。不过在本项目完成的同时,由于时间短,项目紧促,造成了该系统也有很多不足的地方。整个项目仍有改进的空间。具体的改进如下:
(1)优点
本项目的优点在于项目前后台分离,各自负责不同的部分。同时还应用了较为新颖的技术。项目运用了bootstrap,使项目能有较高的易用性,其强大的UI库保证了界面的美观程度。
(2)缺点
本项目的缺点在于由于只有一个人完成整个项目,以此来计算的情况下完成整套系统的时间显得非常仓促。在需求调研阶段就调研结果而言并不能高度满足于现有系统真正所需要的要求。另外在项目中,并没能很好的完全分离前后台,这一点还有待加强学习。同时,项目中由于bootstrap的UI库信息量非常多,其显示的并不一定是最符合其位置的UI样例。
对于图书馆选座管理系统的缺点的相对应改善计划是,理清前后台的业务逻辑,使之能够做到前后台分离。而bootstrap中我们可以通过加强对JQuery的使用对其进行补充。使得项目能够有更好的易用性。针对bootstrap库过多的问题,可以对其进行库设计,从而达到快速引用的设计。
通过这几个月的不断努力和学习,最终独立的完成了整个项目。对此有很多的感触。项目中应用到了不少的新技术。有很多都不在学校的课堂中学习到而是通过不断的实践获得的。有很多的知识通过在公司的实习和在对技术的应用中获得,而这些知识将全部应用在图书馆选座管理系统这个项目上来。随着技术的进步,我们还需要不断的学习与探索,会有更好的天地等着我们去实现。
参考文献
[1]王智勇.基于Struts的J2EE构架的图书馆信息网站设计与实现[J].中国管理信化,2013,14(13):37-39.
[2]赵建华,李楠,王国双. 图书馆信息网站实用性[J].中小企业管理与技术,2013,21(15):259-260.
[3]韩友君.关于图书馆信息网站的应用方案分析[J].科技创新与应用,2013,28(25):79-79.
[4]李建东.图书馆信息网站可靠性设计[J].计算机安全,2013,7(4):79-82.
[5]许平格.数据库管理系统中查询优化的设计与实现[D].浙江:浙江大学,2005.
[6]刘姗.一种改进的MySQL数据库访问控制的设计与实现[D].武汉:华中科技大学,2011.
[7]王晓东.J2ee架构的研究与应用[J].科技信息,2013,23(23):439-439.
[8]廖胜军.基于SSH整合架构的应用研究[D].武汉:武汉理工大学,2008.
[9]胡元发.基于J2EE架构的SSH组合框架的设计与应用[D].苏州:苏州大学,2006.
[10]Ou Feng,ZOU Min and LI Xiao-Zhen.Survey on Java Technology Framework[J].Computer Systems& Applications,2012,21(8):236-239.
[11]Farias G, Cervin A, Dormido S, Esquembre F. Java Simulations of Embedded Control Systems[J]. Sensors, 2010, 10(9):8585-8603.
[12]陈明志.基于SSH的图书馆信息网站的设计[J].电子技术与软件工程,2013,14(6):22-24.
[13] 王晓东.J2EE架构的研究与应用[J].科技信息,2013,23(23):439-439.
[14] Ou Feng,ZOU Min and LI Xiao-Zhen.Survey on Java Technology Framework[J].Computer Systems& Applications,2012,21(8):236-239.
[15] Farias G, Cervin A, Dormido S, Esquembre F. Java Simulations of Embedded Control Systems[J]. Sensors, 2010, 10(9):8585-8603
附录C:工作台零件图
致 谢
在系统全部完成之际,我非常感谢在毕业设计时给予我帮助的人。没有他们的帮助,就没有我能够顺利的完成毕业设计。
首先,我要感谢我的指导教师老师,这几个月来,老师为我们付出了很多的努力,针对我们的系统和论文进行了非常细心的指导。根据毕业设计期间的要求和政策对我提出了不少的意见和建议。在她的建议下我能够圆满完成我的毕业设计任务。对此再次表示衷心的感谢。
其次我需要感谢的是我的父母,在整个毕业设计期间,是我的父母,作为在毕业设计期间最强有力的后盾,我可以全身心的去关注、去撰写我的毕业设计论文。在大座位活中我的每时每刻都离不开来自于我的父母的全力支持和关心。
之后,我要感谢的是全体软件工程系的大力协助,在大学的四年间,您们严谨的教学态度和科学的工作方法对我们的成长有很重要的影响。没有您们为我们无私的传授知识和获取知识的方法,就没有我们能够在软件行业立足的基础。
最后我要感谢的,是我们的学校。“精勤博学,学以致用。”这个校训一直陪伴了我在大学的时光。不仅教育我们知识,对我们的思想道德的培养更多。使我们不仅能够做一名合格的大座位,更能在走出校园时,能够成为一名合格的社会人。