版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要:伴随着计算机技术的发展,电子信息化的管理手段已开始慢慢代替了传统化管理方式,使用管理系统来管理,可以更好地提高管理的效率。图书馆作为当今社会上最主要的一种信息以及资源的汇集地使得用户与图书馆之间的借阅繁多,这也就意味着它会包含许多的数据以及信息的管理。如果图书馆的管理还采用传统的管理方式,劳动力的需求,资料的繁多,以及手工处理的繁琐都会使得工作变得乏味繁琐。所以为提高日常图书管理员对图书馆的管理效率,本次针对日常的图书管理员的工作设计了一个包含六个功能模块的:图书馆信息的维护,书本信息的维护,借书,还书,用户信息的维护以及管理者的信息的维护。关键词:SSMMySQL;HTML51.绪论1.1选题背景由于当时代的快速发展与科技的不断进步,国内的管理方式发生了巨大的变化,以前传统的管理模式带来了信息管理困难、接收消息较慢、用户使用繁琐,管理者管理效率低等问题。这些问题也应证了当今社会传统管理模式已渐渐淘汰,应该把重心放在信息化管理方式,来降低成本减少劳动力和提高工作效率。利用现代管理系统使管理者能够获得高效的管理方式提高工作效率。本系统采用了JAVA语言,然后基于SSM框架开发而来。SSM框架是一种在Java平台的基于Spring、MyBatis这两个开源框架所整合而来。SpringBoot的设计可以更加快速地使用Spring的应用程序并且可以减少配置文件[1]。简单来说就是SpringBoot默认了许多框架的使用方式,并且可以更少的去配置文件。使用户更好更方便快捷地使用[2]。1.2选题意义图书馆是一个能为人类提供社会文化娱乐的场所,它不散可以丰富人们的思想而且可以使得人们精神生活更加充实,在精神文明建设中,起到了不可磨灭的作用。说到计算机科学技术、计算机网络对于图书管理系统的挑战,已可谓是老生常谈了,但现在在科技日益发展的现在,这种挑战已经不单单是一个简单的学术理论意讨论了。大家更需要通过自己所学了解并简化图书馆的管理方式。原本的图书馆都是一种十分传统的管理方式,那种方式使得用户在一个非常简单的过程中耗费了大量的时间,管理员的工作也十分繁琐。但是我们可以用通过这种先进的管理方式来提高办事的效率,减少用户的操作难度,从而能使管理员更加快捷地去获取用户信息方便管理的同时更能了解到更多信息以及更加快速地响应用户。现在社会所要做的就是可以更加全面地做到面向和信息一体化的管理方式。1.3研究内容本系统是基于SSM的图书流通管理系统,使用java语言开发,主要功能有以下几点:基础数据的功能主要有:书本的状态统计、借阅等功能,管理员以及用户人员的登录与创建。1.4文档结构 本系统开发的实现过程用七大部分来进行分析与说明:第一部分:绪论,主要对选题背景、系统设计的意义、研究内容、论文的组织结构进行介绍;第二部分:对相关技术:Spring、MyBatis、SpringMVC等技术的间接;第三部分:绘制系统的流程图以及用例图,对图进行分析;第四部分:根据需求设计前端界面以及数据库;第五部分:用代码来实现管理系统的功能;第六部分:总结系统的功能以及对系统在开发中所遇到的问题进行阐述;第七部分:结束语与总结。2.相关技术简介2.1Spring控制反转便是Spring的主要思想[3],这使得Spring框架可以帮你来实现许多功能而不再需要大家去new对象Spring曾经在应用中[4],充满着限制,出错,繁杂已经都是常态了。Spring是一个开源框架,在那个时候,脱颖而出。以前的开发应用中EJB需要完成许多事情,在他的出现以后,JavaBean同样也可以完成。Java程序在它的出现以后便可以更加快捷地开发测试和使用[5]。2.2SpringMVCSpringMVC是负责在项目里去拦截请求的,它的核心Servlet事儿可以承担中介以及前台的工作的,MVC模式是一种软件构架模式[6],他可以把软件系统分为模型、视图和控制器三个部分,SpringMvc为controller和simulator提供了许多与MVC模型相关的能力[7]。相比与之前的Struts2,他并没有太多问题并且使用中更为简单,无需配置大量的文件且安全隐患小。开发过程中他可以接受浏览器所发出的请求,并处理,最后返回页面后显示。2.3MybatisMybatis支持定制化的SQL并且在它面前数据库的一切底层操作都会变得透明[8],这就是他的优势了,与此同时,它还可以对jdbc进行封装:它的所有操作都是围绕着sqlSessionFactory来展开的[9],可灵活地在SQL的语句中进行文件参数的配置,提高效率使得原来繁琐的配置更加简洁,大大提高了效率,为程序员降低了大量的工作量。它也可以通抽取配置加载,缓存处理,和各方面管理从而来为数据处理层提供最基础的支撑[10]。3.需求分析3.1学生用例图学生可以对书籍进行借阅、查询、查看修改个人信息。该部分用例图如图3-1所示:学生用例如下:图3-1学生用例图3.2管理员用例图管理员进入后台以后可以对学生和图书以及学院和班级等信息进行管理,具体如图3-2所示,管理员用例如下:图3-2管理员用例图3.3业务流程图经过开发实验最终得出来以下的流程。下面以学生借书与管理员为例进行说明。3.3.1图书借阅业务流程业务流程如下:图3-3书本借阅流程图3.3.2图书归还业务流程业务流程如下:图3-3书籍归还流程图4.系统设计4.1系统结构设计通过对本图书流通管理系统进行需求分析和对程序管理系统化设计从而得出该图书流通管理系统应具有以下主要功能。得到了系统的功能结构图,如图4-1所示。图4-1图书流通管理功能结构图4.2数据库设计4.2.1E-R图设计1976年的时候E-R图被提出,它在数据库设计的领域中得到了很大的认可,E-R图是用来连接实体与联系图的,含实体、实体的属性和他们之间的联系。根据需求,设计系统E-R图,本图书流通管理系统主要包含有学生表,类型表,管理员表,借阅表,学院表,书本类别表和借阅违规表等,如图4-2所示:图4-2系统E-R图4.2.2数据库表设计数据库对于一个系统来说是不可缺失的,它可以记录管理员以及用户对系统的交互,同样数据库要设计的合情合理这样才能使系统更为简单便捷。数据库的设计是一项十分谨密的工程,需要在设计系统前提前规划好数据库系统,修改表的结构,设置主键关键字等,只有设计好了数据库我们才能完成我们的系统,反之是不可取的。针对图书流通管理系统,本系统数据库中有13张表,ylrc_book(书籍信息)、ylrc_booktype(书本分类)、ylrc_borrow(租借表)、ylrc_school(学院表)、ylrc_class(班级表)、ylrc_home(藏书项目)、ylrc_user(用户信息)、ylrc_students(学生表)、ylrc_rule(违规)其具体结构如下所示:(1)ylrc_book(书籍信息表),该表用于存放书籍的基本信息。如表4-1所示。表4-1ylrc_book表字段名称数据类型是否为主键数据长度说明BookidintYes10书本idbook_namevarcharno50名称authorvarcharno50作者typevarcharno6种类kindvarcharno6二级类型storeintno5库存数量statuevarcharno2状态countintno5数量introducevarcharno100简介(2) ylrc_booktype(图书分类表),该表是用于存放入图书分类信息。如表4-2所示。表4-2ylrc_booktype表字段名称数据类型是否为主键数据长度说明typenamevarcharyes4类别creatdatadateno8添加日期kindvarcharno10二级类别(3) ylrc_borrow(借阅表),该表是用于存储借阅图书信息.如表4-3所示。表4-3ylrc_borrow表字段名称数据类型是否为主键数据长度说明idintyes10编号usernamevarcharno10用户名bookidvarcharno10书本编号statuevarcharno2书本状态countintno10借阅数量borrdatedateno20借出日期returndatedateno20预还日期backdatedateno20归还日期overtimecharno2是否逾期(4) ylrc_school(学院表),此表主要存储学院信息。如表4-4所示。表4-4ylrc_school表字段名称数据类型是否为主键数据长度说明schoolidintyes10学院idschoolmavarcharno50负责人schoolnamevarcharno50学院名称matelecharno12负责人电话schooladressvarcharno40学院位置schoolintrodvarcharno100学院介绍creatdatedatatimeno20添加时间(5) ylrc_class(班级表),此表主要用于存储班级信息。如表4-5所示。表4-5ylrc_class表字段名称数据类型是否为主键数据长度说明schoolidintno10学院idclassidintYes10所属班级idclassnamevarcharno50班级名称teachvarcharno50班主任teachtelcharno12班主任电话creatdatedatetimeno20创建时间(6) ylrc_home(藏书表),此表主要存放书屋的主要信息。如表4-6所示。表4-6ylrc_home表字段名称数据类型是否为主键数据长度说明schoolidvarcharyes10主键homenamevarcharno50藏书位置名称schoolnameintno10学院idhomestatuecharno2藏书状态homeadressvarcharno50藏书地址hometelcharno12藏书电话(7) ylrc_user(用户信息表),此表主要存放管理员和教师的信息。如表4-7所示。表4-7ylrc_user表字段名称数据类型是否为主键数据长度说明useridintyes10用户idheadpicvarcharno30头像userstatuecharno2用户状态usersexcharno2用户性别usertelcharno12用户电话useremailvarcharno20用户邮箱addtimedateno20添加日期(8) ylrc_students(学生表),此表主要用于存储学生信息。如表4-8所示。表4-8ylrc_students表字段名称数据类型是否为主键数据长度说明studentidintyes10学生idstunamevarcharno50学生姓名stuSexcharno2学生性别stuschintno50学院idstuclassintno50班级id(9) ylrc_rule(违规表),检测用户是否违规。如表4-9所示。表4-9ylrc_rule表字段名称数据类型是否为主键数据长度说明stuidintno10学生idbookidintyes10书本编号namevarcharno50图书名称bookcountintno8借阅数量returndatedatetimeno20预还时间ccausevarcharno100超期原因5.系统实现5.1系统开发环境本次系统开发所使用的工具是IDEA。首先可以到IDEA的官网下载该软件软件,进入官网后点击屏幕中间的DOWNLOAD按钮下载官方版IDEA,下载完成后可以根据自己所需以及网络上的教程安装软件。详细配置自己的开发环境和系统需求,如图5-1,5-2所示:图5-1IDEA软件图5-2IDEA的安装5.2系统首页系统首页主要是展示使用本系统的主要功能,以及学生信息如图5-2所示:图5-3系统首页该部分的具体的代码如下:5.3图书管理图书管理的目的可对图书进行维护,有利于管理员对图书进行分类,分类是更有效的规划书籍,使之快速查询到该图书,如图5-4,5-5所示:图5-4图书维护图5-5图书分类图5-5图书分类该部分的具体的代码如下:5.4借阅管理管理员对图书订阅信息管理,这个功能的目的对违规同学情况和借阅情况的查看,有利于管理员进行下一步操作,以及方便的以后的书籍管理。如图5-6、图5-7所示:图5-6违规表图5-6借阅情况图5-7借阅表该部分的具体的代码如下:publicStringborrowList(Modelmodel,Borrowborrow,PageBean<Borrow>pageBean){
model.addAttribute("title","借阅列表");
//model.addAttribute("name",borrow.getBook().getBookName());
model.addAttribute("pageBean",borrowService.findByName(borrow,pageBean));
return"/admin/borrow/list";
}publicResult<Boolean>returnBook(@RequestParam(name="id",required=true)Longid){
booleanflag=borrowService.returnBook(id);
if(flag){
operaterLogService.add("归还书籍,归还ID:"+id);
}else{
returnResult.error(CodeMsg.ADMIN_BOOK_RETURN_ERROR);
}
returnResult.success(true);
}5.5借阅统计管理员可以登录网站后端,点击借阅统计的功能,都有这些功能:从图书借阅统计、学生借阅统计、学生借阅数据统计功能。这些功能都是访问后端编写控制层的代码,接着会把数据库的数据返回给前端,如图5-8,5-9,5-10所示:图5-8图书借阅统计图5-9学生借书统计图5-10学生借阅数量统计该部分的具体的代码如下:、@RequestMapping(value="/book")
publicStringBook(Modelmodel){
model.addAttribute("title","图书借阅列表");
return"admin/quantity/book";
}//返回集合数据
@GetMapping("/borrowAmount")
@ResponseBody
publicResult<List<BorrowAmount>>findStudentBorrowNum(){
List<BorrowAmount>borrowAmountList=quantityService.findStudentBorrowNum();
returnResult.success(borrowAmountList);
}@RequestMapping(value="/borrow")
publicStringborrowNum(Modelmodel){
model.addAttribute("title","学生借阅数量列表");
return"admin/quantity/borrows";
}5.6藏书位置管理管理员登录到网站后端,进行对图书藏书位置进行管理,点击功能会访问后端功能,后端功能会访问数据库,显示当前书籍的位置等,接下来是编辑位置信息,如图5-11所示:图5-11藏书位置列表图5-11修改书屋信息该部分具体实现代码如下:5.7学院管理学院管理以及对班级的管理,首先管理员要登录操作页面,点击学院管理会向后端发送网络请求,数据的结果在数据库里面查询,查询的学院数据,以及查询班级数据都反馈给前端如图5-12、5-13所示:图5-12学院管理图5-13班级管理该部分具体实现代码如下:publicStringlist(Modelmodel,Facultiesfaculties,PageBean<Faculties>pageBean){
model.addAttribute("title","学院列表");
model.addAttribute("pageBean",facultiesService.findList(faculties,pageBean));
return"admin/faculties/list";
}publicResult<Boolean>edit(Facultiesfaculties){
//用统一验证实体方法验证是否合法
CodeMsgvalidate=ValidateEntityUtil.validate(faculties);
if(validate.getCode()!=CodeMsg.SUCCESS.getCode()){
returnResult.error(validate);
}
if(faculties.getId()==null||faculties.getId().longValue()<=0){
returnResult.error(CodeMsg.ADMIN_FACULTIES_NO_EXIST);
}
//判断学院名是否存在
if(facultiesService.isExistByName(faculties.getName(),faculties.getId())){
returnResult.error(CodeMsg.ADMIN_FACULTIESNAME_EXIST);
}
//到这说明一切符合条件,进行数据库保存
FacultiesfindById=facultiesService.find(faculties.getId());
//讲提交的用户信息指定字段复制到已存在的user对象中,该方法会覆盖新字段内容
BeanUtils.copyProperties(faculties,findById,"id","createTime","updateTime");
if(facultiesService.save(findById)==null){
returnResult.error(CodeMsg.ADMIN_FACULTIES_EDIT_ERROR);
}
operaterLogService.add("编辑学院,学院名:"+faculties.getName());
returnResult.success(true);
}5.8系统管理管理员正确登录网站后端,点击用户管理,可以向游览器发送网络请求,并返回可输入的表单进行返回给前端,该表单还具有注册功能。如图5-14、图5-15所示:图5-14添加用户图5-15维护用户该部分的具体的代码如下:@RequestMapping(value="/edit",method=RequestMethod.GET)
publicStringedit(Modelmodel,@RequestParam(name="id",required=true)Longid){
model.addAttribute("roles",roleService.findAll());
model.addAttribute("user",userService.find(id));
return"admin/user/edit";
}5.9信息展示管理员正确登录网站后端,点击用户个人借阅情况功能,会往后端发送请求,后端反应页面给前端显示,以及查询该用户的个人信息,如图5-16所示:图5-16个人借阅信息该部分具体实现代码如下:publicStringlist(Modelmodel,HttpSessionsession,PageBean<Borrow>pageBean,Borrowborrow){
Studentstudent=(Student)session.getAttribute("ylrc_student");
Longid=student.getId();
model.addAttribute("title","借阅信息");
//model.addAttribute("student",borrow.getStudent());
model.addAttribute("id",id);
model.addAttribute("pageBean",borrowService.findList(pageBean,borrow,id));
return"admin/show/borrow2";
}6.系统测试6.1软件测试对于开发人员而言他们都希望自己的的系统功能都是可行的,而广大用户则希望发现系统中是否存在漏洞或者bug从而知道系统的缺陷,到错误,这时便需要软件测试,它是一种方法,可用于测试系统开发者所开发的系统是否存在bug以及系统能否正常运行以及运行中是否存在问题,测试方法有黑盒测试、白盒测试等。这是在开发完一套完整的系统以后所必不可少的一道工序,一旦测试通过基本上也就不存在问题了,可放心使用。这同时也是检验一位程序员功底的时刻。6.2功能测试6.2.1登陆功能测试结果管理员与学生分别选择与身份对应的栏目输入正确的账号密码即可登陆进入系统后台,如图6-1、6-2所示:图6-1登录界面图6-2登录成功6.2.2学院管理功能测试结果管理员登录进后台页面后可以对学院的信息进行维护。如图6-3所示,并可以在学院下面细化到班级等如图6-4所示:图6-3对学院信息维护图6-4修改班级信息6.2.3藏书位置管理功能测试结果藏书管理与上述的学院信息管理相类似,以添加藏书位置为例,在添加藏书位置弹框中输入相应的信息,并选择它的状态,点击确定,即可录入藏书位置信息,同时也可以对藏书位置地点、名字、管理员名称、管理员联系方式等录入。如图6-5所示:图图6-5书屋信息管理6.2.4借阅管理测试员工登录账号后可以在借阅管理页面查看借阅列表和违规列表,如有学生归还图书则可以帮助归还,以及对违规表里违规信息的删除。如图6-6、6-7所示:图6-6归还功能图6-7违规信息删除功能6.2.5图书管理功能测试结果管理员登录账号后可以对图书进行维护,也可为图书增加类,如图6-8、6-9所示:图6-8图书维护图6-9分类的维护6.2.6信息展示功能测试结果用户登录账号后可以在个人借阅信息页面中,查看书本书否逾期,并且归还图书。如图6-10所示:图6-10用户归还书籍测试用例表如下:表6-1登录测试用例表序号具体步骤输入内容预期效果实际效果说明1全部不输入,直接点击登陆用户名,密码以及,验证码都为空弹出提示:请填写用户名弹出提示:请填写用户名准确无误2输入正确的用户名,其余的都不输入,按登陆用户名:111111,密码,验证码都为空弹出提示:请填写密码弹出提示:请填写密码准确无误3仅输入密码,其余的均不输入,按登陆用户名为空,密码:111111验证码为空弹出提示:请填写用户名弹出提示:请填写用户名准确无误4输入错误的验证码,其余均不输入,按登陆用户名、密码为空,验证码为错误弹出提示:请填写用户名弹出提示:请填写用户名准确无误5仅输入正确的验证码其余的均不输入,按登陆用户名、密码为空且验证码为正确弹出提示:请填写用户名弹出提示:请填写用户名准确无误6输入的用户名和密码为正确,验证码为错误,按登陆输入用户名11111密码11111验证码输入xkzz弹出提示:验证码错误弹出提示:验证码错误准确无误7输入正确的信息均为正确,按登陆输入用户名11111,密码11111,验证码xkzu进入管理员后台界面进入管理员后台界面准确无误表6-2核心功能测试用例表序号检测功能具体操作预期结论说明1登录输入的用户名或密码或验证码不正确请输入正确的用户名准确无误2登录输入的用户名或密码验证码正确进入系统准确无误3后台界面浏览点击系统各管理界面浏览查看能够浏览并点开各个管理界面准确无误5用户管理对用户账号信息和增删改查用户账号信息可以被维护准确无误6书本分类添加一级二级分类并将书本分类书本被添加入分类中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金融信贷担保服务协议二篇
- 企业沟通培训全攻略手册
- 环保技术研发创新能力绩效衡量表
- 2026年仓储物流优化规划建议函(5篇)
- 客服专员客户投诉率考核绩效衡量表
- 新能源产业研发部门团队协作绩效表
- 智能零售场景下的数据驱动营销方案
- 跨境电商平台物流分拣自动化操作指南
- (正式版)DB14∕T 726-2019 《农村生活污水处理设施水污染物排放标准》
- 客户服务代表提升客户沟通与问题解决指导书
- 2026国企招聘考试(法务)历年参考题库含答案详解
- T∕CECS 277-2021 建筑给水排水薄壁不锈钢管连接技术规程(团体标准)
- 2026年天然气分公司人员招聘笔试模拟试题及详细答案解析
- 混凝土搅拌站试验检验管理方案
- 电子护理文书书写规范及要求
- 雨课堂学堂在线学堂云《人工智能时代的创新思维(北京理工)》单元测试考核答案
- 2026老年人能力评估师三级理论易错题练习试卷含答案
- T∕CERDS 19-2025 企业供应链ESG管理要求
- 高中生急救知识
- (已压缩)广东省工程勘察设计服务成本取费导则(2024版)
- 《沙漠砂混凝土应用技术规程》
评论
0/150
提交评论