基于JavaEE的图书管理系统设计与实现
2020-08-31赵越超胡杰
赵越超 胡杰
摘 要:在计算机新技术的冲击下,传统的图书管理方式会被逐渐淘汰,新型的图书管理应该结合“互联网+”的思想使管理趋向简单、安全、高效。该文主要以图书管理系统为研究对象,通过需求分析、概要设计和数据库设计等,详细描述了基于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组件,根据这些组件,可以快速地搭建一个漂亮、功能完备的前端界面。
3 系统概要设计
按照需求将此系统的使用者分为用户端(教师和学生)和管理员端(图书馆工作人员)两类,根据用户的不同来对应不同的功能权限,从而将此系统划分为用户子系统和管理员子系统两部分[6]。
在用户子系统中,使用者通过图书管理员提供的账号密码(读者)登录系统主页,然后用户通过主页链接进入基本信息、借阅信息查询、系统功能三个功能模块[7],在模块内完成查看基本信息、修改基本信息、查询借阅信息、延长借阅时间、修改密码、注销登录等功能。
在图书管理员子系统中,使用者通过账号密码(管理员)登入系统主页,然后管理员通过主页链接进入图书管理、图书类型、读者管理、用户管理、借阅信息、系统功能六个功能模块。在图书管理模块中,可以对图书进行增加、修改、删除;在图书类型中,可以对图书的类型进行增加、修改、删除操作,动态地把图书类型增加到下拉列表中;读者管理模块中,可以增加读者的信息;在用户管理模块中,可以增加读者所属的类型,不同的用户类型将有不同的权限;在借阅模块中,可以对借阅的信息进行管理;在系统功能模块中可以进行修改密码和退出系统[8]等操作。
4 数据库设计
根据图书管理员和读者的需求,设计管理员信息表、读者信息表、借阅信息表等[9],管理员信息见表1所列,读者信息见表2所列,借阅信息见表3所列。
5 系统设计与实现
5.1 读者(教师和学生)
5.1.1 登录/注销模块
读者在浏览器中输入地址,可看到系统登录界面,选择用户登录、输入用户名和密码,当用户名或者密码没有填写时,会提示“这是必填字段”的信息,并且读者不能登录系统。这里提示信息是在JSP页面引入Bootstrap插件,在必填项的中加入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],在