网站地图985论文网
主要服务:硕士论文、论文发表、论文修改服务

计算机论文:JavaEE技术下图书管理系统的开发设计

来源:985论文网 添加时间:2020-08-21 09:41

  摘    要: 在计算机新技术的冲击下,传统的图书管理方式会被逐渐淘汰,新型的图书管理应该结合“互联网+”的思想使管理趋向简单、安全、高效。该文主要以图书管理系统为研究对象,通过需求分析、概要设计和数据库设计等,详细描述了基于JavaEE的图书管理系统的实现过程,并在此实现过程中对容易出现的问题提供了解决方案。

  关键词: JavaEE; 图书管理系统; 互联网+; 数据库设计; 系统设计; 图书馆;

  0 、引 言

  在近几年,随着教育事业的发展和网络技术的广泛普及,传统的图书管理方式已经不再适用[1]。新型的图书管理方式应该趋向简单、安全、高效。传统的图书管理的工作重点是对读者借阅信息的登记,其一般会采用人工线下管理的方式,这种方式带来的工作负担会随着借阅信息的增多而逐渐加重。这种情形下,不仅会加大资源的开销,还会导致读者借阅的困难。为了提高传统的图书管理效率,减少不必要的开销,同时让图书管理更加科学化、智能化、效率化[2],开发设计了基于JavaEE的图书管理系统。本系统界面友好、简单易操作、功能强大,能够智能地对借阅时间到期限的用户提醒,避免资源浪费。

  1、 需求分析

  根据需求的不同将此设计划分成了两部分,分别为图书馆工作人员和读者(学生和老师)。然后从不同的用户角度出发,进行需求分析,大致概括如下:

  读者(学生和老师)可查阅借阅信息和自己的基本信息[3]。当借阅时间到期限时,可以有提示信息来进行警示,避免读者忘记还书。读者还可以进行在线提交延迟借阅时间的申请。

  图书馆工作人员可以增加图书到系统中,从而减小统计图书的工作负担;同时,要保证图书馆工作人员对图书具备修改和删除的权限。增加图书时能够动态设置图书类型,这样符合实际的图书分类情景。图书馆工作人员还需进行借阅图书的管理工作,对借阅书籍,归还书籍要有很好的管理方式,避免手工劳作。图书馆工作人员能够对读者信息进行管理,添加读者时可以为老师和学生增添不同借阅书籍的权限[4]。

  2 、相关技术介绍

  本系统设计主要是基于SSM架构[5],即Spring,SpringMVC和MyBatis,系统前端界面使用了HTML+CSS+ Bootstrap实现,数据库使用MySQL,开发工具使用Eclipse。

  Spring是一个轻量级的开源Java框架,用来装配项目中Bean的大工厂,在配置文件中可通过指定使用特定的参数来调用实体类的构造方法,从而实例化对象。

  SpringMVC框架是基于MVC设计模式请求驱动类型的轻量级框架,为JavaEE提供了各层的解决方案,包括视图层、业务层和服务层,增强项目的扩展性。

  MyBatis是一个对象关系映射框架,对JDBC进行轻量级的封装,将POJO对象与数据表建立映射关系。MyBatis和Spring结合的要点是项目实体类中具有无参和有参的构造方法。MyBatis负责Java后端和数据库之间的数据交换。

  Bootstrap是基于HTML,CSS,JavaScript开发的简洁、直观、强悍的前端开发框架,使得Web开发更加快捷。Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速地搭建一个漂亮、功能完备的前端界面。
 

JavaEE技术下图书管理系统的开发设计
 

  3、 系统概要设计

  按照需求将此系统的使用者分为用户端(教师和学生)和管理员端(图书馆工作人员)两类,根据用户的不同来对应不同的功能权限,从而将此系统划分为用户子系统和管理员子系统两部分[6]。

  在用户子系统中,使用者通过图书管理员提供的账号密码(读者)登录系统主页,然后用户通过主页链接进入基本信息、借阅信息查询、系统功能三个功能模块[7],在模块内完成查看基本信息、修改基本信息、查询借阅信息、延长借阅时间、修改密码、注销登录等功能。

  在图书管理员子系统中,使用者通过账号密码(管理员)登入系统主页,然后管理员通过主页链接进入图书管理、图书类型、读者管理、用户管理、借阅信息、系统功能六个功能模块。在图书管理模块中,可以对图书进行增加、修改、删除;在图书类型中,可以对图书的类型进行增加、修改、删除操作,动态地把图书类型增加到下拉列表中;读者管理模块中,可以增加读者的信息;在用户管理模块中,可以增加读者所属的类型,不同的用户类型将有不同的权限;在借阅模块中,可以对借阅的信息进行管理;在系统功能模块中可以进行修改密码和退出系统[8]等操作。

  4 、数据库设计

  根据图书管理员和读者的需求,设计管理员信息表、读者信息表、借阅信息表等[9],管理员信息见表1所列,读者信息见表2所列,借阅信息见表3所列。

  表1 管理员信息表
表1 管理员信息表

  表2 读者信息表
表2 读者信息表

  表3 借阅信息表
表3 借阅信息表

  5、系统设计与实现

  5.1、 读者(教师和学生)

  5.1.1 、登录/注销模块

  读者在浏览器中输入地址,可看到系统登录界面,选择用户登录、输入用户名和密码,当用户名或者密码没有填写时,会提示“这是必填字段”的信息,并且读者不能登录系统。这里提示信息是在JSP页面引入Bootstrap插件,在必填项的<input>中加入required属性来进行实现。在读者正确输入用户名和密码,点击“登录系统”后,登录页面会向Java后端发送一个携带用户信息的请求。这个请求被Spring中的DispatcherServlet拦截并提交给UserController函数进行处理[10]。UserController使用MyBatis连接数据库进行核对,当用户名和密码完全匹配数据库保存的数据后,页面会跳转到读者首页,同时在Java后端增加对读者起到会话控制作用的Session键值对;否则会出现“用户名或密码不正确”的提示信息框[11],让读者再次输入账号和密码。信息框的实现是在Java后端重新生成一个提示页面,读者在点击信息框上的确定后,页面从定向跳转到读者登录界面中。当读者需要退出系统时,点击界面右上角的“注销登录”,然后Java后端会把增加的Session键值对移除,实现注销功能[12]。

  5.1.2、 基本信息模块

  读者在功能栏中点击“基本信息”,Java后端通过Session中的id定位到数据库中读者的信息,读取出来,封装到Reader实体类中,然后通过EL表达式在user-readers-list.jsp页面中显示出当前读者的基本信息[13]。读者在“基本信息”模块拥有修改的权限,以保证读者信息的正确性。读者虽然具有修改权限,但是不会对读者类型进行修改。这一点的实现是把user-readers-edit.jsp页面中的“读者类型”设置为隐藏表单域,这样读者就无法进行修改,同时也保证了“读者类型”属性中保存的数据不会遗失。读者在修改基本信息时,其中只有E-mail和QQ是选填项,其他为必填项。如果读者必填项没有填写,表单则无法提交,这一功能的实现是运用Bootstrap插件的data-toggle属性[14],在<form>中设置data-toggle="validator"可实现。密码的修改有两种方式:第一种是在更改读者的基本信息时,进行修改密码;另一种是通过点击右上角读者账号出现下拉列表选择“修改密码”进行修改。这两种方式都可以修改密码,区别在于第一种方式还可以修改其他信息,功能丰富;而第二种方式仅仅能修改密码,界面简单。这两种方式各有特点,读者按照所需进行选择。

  5.1.3 、借阅信息模块

  这一模块是读者最关注的模块,也是系统最重要的基本模块。读者在点击此模块后,数据库会通过读者的借阅编号查找借阅信息。不使用读者姓名查找的原因是避免读者姓名重复的情况。借阅时间的实现是在读者实体类中加入String类型的borrowDate属性,并且在数据库URL后面加入&zeroDateTimeBehavior=convertToNull,来保证日期类型存储到数据库中不会出错[15]。

  5.2、 管理员(图书馆工作人员)

  5.2.1、 图书类型模块

  在这个模块中主要实现图书类型的动态添加,因此用监听器来解决图书馆工作人员的这个需求[16]。监听器的实现需要使用web.xml 3.0以上版本,并且导入javax.servlet-api-3.0.1架包。如果使用的是3.0以下版本,则需在web.xml中加入<listener-class> org.springframework.web.context.ContextLoaderListener </listener-class>来配置监听器。监听器配置完成后,还需要在TypeListener类的前面加入@WebListener注解。当图书管理系统开始运行时会最先对监听器进行初始化,并且Java后端把数据库中图书类型的数据加载保存到servletContextEvent全局作用域中,这样就保证了图书类型可以在第一时间获取到最新的类型。

  5.2.2 、图书管理模块

  在这个模块中能够实现对图书数量的统计,减少图书馆工作人员的负担。管理员点击“图书管理”模块后,Java后端查询数据库中的图书信息,并显示在books-list.jsp页面中。图书信息的获取过程是,先在Java后端设置Model键值对,然后books-list.jsp页面调用EL表达式来完成。其中,图书类别的显示是通过保存在全局作用域servletContextEvent的键值名来进行获取,books-list.jsp页面先用forEach来遍历所有的图书类型,然后通过判断图书类型id和图书中的图书类型id是否相等来寻找当前图书的图书类型。图书图片的显示是Java后端到数据库中获取图片的路径数据,然后到相应的位置进行加载实现的。在增加图书时,需要填写序号、图书条形码、图书名称、图书类别、图书价格、出版日期、出版社和图书图片相关信息。图书图片用Bootstrap-fileinput图片上传插件来辅助完成。图书价格和库存输入的信息要保证为数字,不能为其他类型,具体是通过在<input>中加入Bootstrap的pattern属性[17],设置为pattern="^[0-9]+(\.[0-9]{0,2})?$"来完成这个要求的。最后在<form>中设置data-toggle="validator"来完成图书表单信息的检验。

  5.2.3 、借阅信息模块

  在这个模块中可以帮助图书馆工作人员进行图书的借阅和归还管理,把传统的手工操作转化为线上操作。因为线上操作可以极大地简化图书馆工作人员借书和还书的工作负担。图书馆工作人员通过点击“借阅信息”来获取读者所有的借阅信息。当图书馆工作人员需要了解近期的借阅情况,可以点击“借阅时间”属性列,使借阅信息按照时间来进行排序,其他属性列同样也可以通过点击来进行排序,这样的设计是用来满足图书馆工作人员多维度的搜索情况。属性列的排序是通过在<table>标签中引入Bootstrap-datatable插件的class="datatable responsive"进行实现的。读者在进行还书时,图书馆工作人员只需在搜索框中输入读者编号就可找到读者的全部借阅信息,如果读者借阅信息过多,还可以在搜索框中加入其他限制条件来完成搜索。图书馆工作人员找到读者对应的借阅信息后,点击“编辑”按钮后,在出现的借阅表单中把借阅状态选为“已归还”,点击保存就完成了读者的还书工作。读者在借书时,图书馆工作人员点击“添加记录”按钮,然后填写读者的相关信息就可完成借书工作。

  相较于传统的借书和还书工作,基于JavaEE的图书管理系统的借阅管理更加方便、简洁。当图书馆工作人员进行删除借阅信息时,界面会出现删除警告框,只有在点击了“确定”按钮后才会真正删除,这样增加了系统的容错性。删除警告框的实现是运用了模态框的方法,在<button>删除按钮中设置data-toggle="modal",data-target="#myModal",然后在页面调用删除模态框,这样就完成了删除警告框的实现[18]。

  6 、软件测试

  在此系统设计的过程中,运行增、删、查、改的方法来检查系统是否符合预期效果。比如,在图书管理模块中,通过图书查询来检查图书图片能否正常显示;增加新图书信息能否在数据库中保存正确的日期格式;进行修改时是否让数据库的数据得到正确的修改;删除操作是否正确完成。通过测试,将会发现系统存在的问题。通过最终测试得到,本系统能够完成设计的各大功能,并且能很好地适应各种严格条件下的使用,符合用户的需求。

  7、 出现的问题及解决方案

  7.1、 图书上传成功后无法显示图片

  Bootstrap fileinput图片上传控件[19],需要在jsp页面加入下列架包才可以生效:

  <link href="css/fileinput.min.css" rel="stylesheet">

  <script src="js/fileinput.min.js"></script>

  <script src="js/zh.js"></script>

  Bootstrap fileinput图片上传控件要求Java后端返回json格式的数据。如果返回的格式不正确,则页面会出现错误信息,比如无效字符、语法错误等。因此Java后端首先通过 Map<String,Object> map=new HashMap<String,Object>();map.put("saveFileName",saveFileName)等语句来创建json格式,然后再完成给前端页面返回json格式数据的要求。因为请求是Spring的DispatcherServlet进行拦截控制的,所以首先在springmvc-servlet.xml里面添加<mvc:annotation-driven></mvc:annotation-driven>注解驱动,这样拥有@ResponseBody注解的控制器不会通过Controller处理,会直接返回数据到相应的图片上传页面;其次,需要在处理图片的函数上面加入@ResponseB ody注解;最后,把json的架包都导进来就可以解决图书上传成功后无法显示的问题[20]。

  7.2、 图书信息加载时不显示图书图片

  这个问题是出现在Bootstrap-fileinput 插件的初始化上。Bootstrap-fileinput可以用来更新数据使页面出现图书图片。实现图书图片的加载必须设置三个属性:initialPreview:url;initialPreviewConfig:urlSet;initialPreviewAsData:true。第一个属性的作用是配置初始化时要显示图片的路径;第二个属性的作用是设置要显示图片的信息;第三个属性的作用是设置url是html标签还是数据。

  有两种方式可以实现图片的加载,第一种是设置initialPreviewAsData属性为true,表示url是数据,而不是需要执行的html语言。因此配置initialPreview:"upload/1.jpg",就可以成功加载出图片,而且还会默认使用Bootstrap的图片控件。第二种是设置initialPreviewAsData属性为false,表示url是html标签语言,加载图片需要用html标签来表示,比如url中使用<img>标签来加载图片。虽然这种方式也可以成功加载出图片,但是会出现一些问题,比如页面中图片显示的大小不固定、图片不使用Bootstrap中的图片控件等。而要想解决这些问题,还需要在html标签中加入其他限制条件。两种方式相比较而言,第二种方式会显得繁琐。因此,本文系统采用第一种方式,首先,设置url="<%=basePath %>upload/${books.bookPhoto}";其次,设置initialPreviewAsData属性为true;最后,设置initialPreviewConfig属性为默认,成功解决了图书信息加载时不显示图书图片的问题。

  8 、结 语

  图书管理系统以读者与图书馆工作人员的实际需求为目标,结合“互联网+”的思想开发一套新型的管理方式,可以在很大程度上帮助图书馆工作人员减轻工作负担,提高效率,同时也帮助读者避免不必要的时间浪费。最后总结出此系统的三大特点:便捷的借阅管理,图书馆工作人员不需要手工统计借阅人数,只需把借阅信息登记到借阅管理模块中,系统便完成其他操作;智能化的服务,当用户借阅时间到了,系统会自动提醒用户进行还书,并且用户还可以在线提交延迟借阅时间的申请;丰富的提示信息,图书管理系统为了降低系统的操作性,提供了丰富的提示信息,用户在操作不当时,提示信息会引导用户完成正确的操作,从而保证数据的准确性。

  参考文献

  [1] 王英曌.对图书管理中信息化及创新服务的思考[J].办公室业务,2019(3):69.
  [2] 肖茜熔.高校图书资料信息化管理的趋势、困境与对策分析[J].传播力研究,2019,3(18):296.
  [3] 王毛毛.基于Java的图书管理系统研究[J].信息记录材料,2020,21(1):134-135.
  [4] 石琰茹.基于SSH的图书馆管理系统的设计与实现[J].科技资讯,2020,18(3):188-190.
  [5] 魏书寒.基于SSM框架的图书管理系统的设计与实现[J].工业控制计算机,2017,30(7):133-134.
  [6] 陈彩红.基于C/S结构的图书管理信息系统研究与开发[J].图书馆学研究,2009(5):50-51.
  [7] 杨清兰.基于J2EE的图书管理系统分析与功能模块划分[J].内蒙古科技与经济,2014(7):74-76.
  [8] 苏宁馨,章华,张帆,等.基于MVC架构的在线图书借阅及管理系统的设计[J].绥化学院学报,2019,39(5):135-138.
  [9] 李欣,史宝坤,甄珍.高校图书管理系统数据库的设计与实现[J].计算机产品与流通,2020(5):196.
  [10] 徐雯,高建华.基于Spring MVC及MyBatis的Web应用框架研究[J].微型电脑应用,2012,28(7):1-4.
  [11] 杨凤,陈福丹,钟志强.基于Ajax技术的图书管理系统框架设计与实现[J].软件工程师,2014,17(11):35-36.
  [12] 周波.关于Web图书管理的系统的实现[J].计算机产品与流通,2017(8):16.
  [13] 黄嘉玮.基于JSP技术的中小学图书管理系统的设计与实现[D].天津:天津大学,2017.
  [14] 卢爱芬.基于H5中的Bootstrap框架技术的应用与研究[J].电脑知识与技术,2020,16(7):54-56.
  [15] 刘翠霞.Java数据库连接池的原理与应用[J].无线互联科技,2020,17(4):167-168.
  [16] 崔天鑫.Servlet监听器在基于移动Web在线考试系统中的应用[J].电脑编程技巧与维护,2019(10):51-53.
  [17] 戴维.基于Bootstrap的响应式网页设计[J].电脑编程技巧与维护,2018(11):132-133.
  [18] 叶惠仙,沈文杰.基于Bootstrap+spring boot框架的在线考试系统开发[J].网络安全技术与应用,2019(12):54-57.
  [19] 潘惠苹.Bootstrap技术在Web移动开发中的应用研究[J].计算机时代,2019(5):27-29.
  [20] 王晓薇,张勇,李金振.基于SpringMVC的图片处理系统的研究与设计[J].电子设计工程,2017,25(24):189-193.

重要提示:转载本站信息须注明来源:985论文网,具体权责及声明请参阅网站声明。
阅读提示:请自行判断信息的真实性及观点的正误,本站概不负责。
jQuery右侧可隐藏在线QQ客服
在线客服