图书管理系统毕业设计

更新时间:2024-07-06 00:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

安徽工业大学 课题名称学 院专业班级姓 名学 号指导老师毕业论文

图书管理系统

计算机学院 计算机科学与技术111班 蔡忠旭 119074001 边琼芳

安徽工业大学

毕业设计(论文)任务书

课题名称 学 院

图书管理系统

计算机科学与技术学院

专业班级 计算机科学与技术111班 姓 名

蔡忠旭

学 号 119074001

毕业设计(论文)的主要内容及要求:

1)学习并掌握Java MyEclipse 开发工具,MySQL数据库技术等相关知识。 2)针对实际的图书馆现状,设计与开发图书管理系统,能够实现图书管理功能、借阅书籍功能、读者登记功能、信息发布功能和读者查询等功能。

3)设计要求:结合社会实际需求,设计并实现本系统。通过设计和实现本系统,对大学所学知识有一个整体的了解和汇总,为马上步入社会奠定基础、搭建理论与实践之桥梁。

4)学习毕业论文的写作方法,论文篇幅为1.2-2万字。 5)查阅文献资料不少于8篇,其中英文资料不少于2篇。并完成相关英文资料大于等于5000 字的翻译。

6)提交主要源程序清单。

7)软件结构良好,具备一定的可维护性和可靠性。 8)能力要求:具备勤奋认真的学习态度和较强的上进心,具备一定的中英文文献检索和阅读能力,并掌握软件开发的基本方法和面向对象程序设计的基本思想。

指导教师签字:

摘 要

图书管理系统软件的设计与实现不管对个人还是对社会都有重大的意义。在个人方面,通过软件的开发和设计,可以节省大量的时间,同时提高工作效率和准确性;在企业方面,管理软件的开发可以极大的提高企业管理工作的效率,数据长久的有效性。

图书管理系统基于Web应用程序广泛采用的B/S结构设计和开发,使用Java编程语言结合MySql数据库管理系统,通过Tomcat-7.0.34服务器实现了图书管理系统的部署,具体的功能有读者用户查看界面,管理员操作以及对书籍的管理等功能。

本问论述了图书管理系统的开发过程:从对需求的分析到对系统功能的实现,还有相关数据库的设计和前后台的页面的布局等。 关键词:图书馆;Springmvc;B/S;Java

Abstract

Books management system management system software design and implementation of whether for personal or has significant meaning to the society. On a personal level, through the development and design software, can save a lot of time, at the same time, improve the work efficiency and accuracy; In the aspect of enterprise, the development of management software can greatly improve the efficiency of enterprise management, the effectiveness of the data for a long time.

Books management system management system based on Web application widely adopted B/S structure design and development, using the Java programming language combined with MySQL database management system, realized the books management system management system through the Tomcat - 7.0.34 server deployment, specific features reader users to view interface, administrators, operation and management of the books, and other functions.

Ask this books management system management system is discussed, and the development process: from the analysis of the demand to the realization of the system function, and the design of the relational database and Taiwan before and after the page layout, etc.

Key Words:Library; Springmvc; B/S; Java

安徽工业大学毕业设计(论文)

目录

摘 要 ................................................... 3 Abstract ................................................. 4 1.课题简介 .............................................. 7

1.1 背景及意义 .................................................. 7

1.2 系统开发的目的 .............................................. 7

1.2.1 提高管理质量与效率..................................... 7 1.2.2 实现网上的动态管理..................................... 8

2 可行性研究 ............................................. 9

2.1技术可行性................................................... 9 2.2 经济可行性 .................................................. 9 2.3 操作可行性 ................................................. 10 2.4 法律可行性 ................................................. 10

3 需求分析 .............................................. 11

3.1 系统需求分析 ............................................... 11 3.2 系统结构图 ................................................. 11

3.2.1用户结构图 ............................................ 12 3.2.2管理员结构图 .......................................... 13

4 系统相关知识和关键技术介绍 ............................ 14

4.1系统通用结构................................................ 14 4.2 Java编程语言 ........................................... 14 4.2.1 SpringMvc 框架 .......................................... 15

4.2.2 Spring 框架.......................................... 16 4.2.3 Hibernate框架 ....................................... 17 4.3开发平台及环境.............................................. 19

4.3.1 Tomcat服务器 ........................................ 19 4.3.2 IDE MyEclipse........................................ 19 4.3.3 数据库 Mysql......................................... 19

5 系统的总体设计 ........................................ 20

5.1系统框架搭建................................................ 20 5.2数据库关系表................................................ 21

5.2.1 数据库ER图........................................... 21 5.2.2 数据库表.............................................. 22 5.3系统时序图.................................................. 24 5.4 系统相关代码说明 ........................................... 26

5.4.1 相关配置文件说明...................................... 26

安徽工业大学毕业设计(论文)

5.4.2 spring注解及其先关代码介绍 ........................... 28 5.4.2.1 Entity类及相关代码 ............................ 28 5.4.2.2 Controller类及相关代码 ........................ 29 5.4.2.3 Service层 ..................................... 31 5.4.2.4 前台代码........................................ 32

6 系统的实现效果 ........................................ 35

6.1 读者页面展示 ............................................... 35 6.2 管理员页面 ................................................. 37

6.2.2 图书分类.............................................. 39 6.2.3 书籍信息.............................................. 39 6.2.4 借书信息.............................................. 41 6.2.5 读者分类.............................................. 44 6.2.6 管理信息.............................................. 45 6.2.6 信息发布.............................................. 45 6.3小结........................................................ 46

7 总结 .................................................. 47

7.1 本论文主要贡献 ............................................ 47 7.2 进一步工作计划 ............................................ 47

参考文献 ................................................ 48 致谢 .................................................... 49 附录 .................................................... 50

安徽工业大学毕业设计(论文)

1.课题简介

1.1 背景及意义

随着时代的进步与发张,各行各业的都融入到了信息化之中。使用计算机信息化管理是现代企业和机构的标志,这一做法不仅提高 了工作效率,同时,对数据的存储、保存、分析和操作都起到了至关重要的作用。信息管理是所有与之相关系统的基础信息配置,是一切系统中不可缺少的重要组成成分。本系统就是为现代化图书管理信息系统而设计的。

本系统是面向任何人的,包括学生、老师和在职人员等等,主要解决了手工记录容易出错等与书籍多等有关的问题,例如:如效率低、易出错、手续繁琐,还耗费大量的人力和物力,旨在实现现代化的信息管理。本系统有着与手工相比较无法代替的有点,例如:可以存储大量的数据,可靠性高,查找迅速等等的有点,提高了管理员与用户的效率,充分的体现了本系统的特点。这些优点能够极大地提高工作效率,也是图书馆等部门管理科学化、正规化的重要标志之一。而且计算机管理的成本不断降低。因此,开发一套这样的中小型图书管理软件已经很有必要,利用组织的无形资产创造价值的艺术[1]。

1.2 系统开发的目的

结合现代社会信息技术的发展,通过了解不同人对图书的管理的现状,为本系统的设计与实现规定了以下目的: 1.2.1 提高管理质量与效率

图书馆最大的特点就是有大量的书籍,同时要对每一本书还要记录在案,这就使得给管理员造成了很大的压力。这样大量繁杂的图书需要耗用的人力和物力是不可预计的,同时很容易造成信息的错误,所以提高人的工作效率和工作质量是本系统设计与实现的主要功能之一。本系统就是以少量的人力来做大量的事,提高管理的效率。同时通过数据库的来保存数据,对数据做到准确性,大量性,

7

安徽工业大学毕业设计(论文)

持久性和高效的检索。 1.2.2 实现网上的动态管理

信息社会的发展,越来越多的人都会使用互联网,并且有一部分人是迷恋的。设想:如果你到一个图书馆去借书, 但是你去了之后他说没有你需要的书籍了或者是发现今天没有开门,这个时候你是不是感到很气愤,也许你正在抱怨!!!。本系统的再一个开发与实现的目的就是实现网络的查看和对广大人民通知,减少群众出现上述的情况。节约群众的时间,保证群众对时间的合理性,减少不必要的错过。

8

安徽工业大学毕业设计(论文)

2 可行性研究

可行性的研究是为了解决开发过程中所与到的问题,如:技术问题,业务问题,实用可行性,法律可行性等。

2.1技术可行性

图书管理系统是B/S开发和设计实现的,所以具体用到的技术有页面技术jsp、JQuery、artDialog弹框、datePicker日期插件、HighCharts图标插件等,后台主要是java编写,框架是有Spring+Springmvc+hibernate搭建。运行环境为Windows7(64bit),服务器为Tomcat7,数据库为MySQL。

2.2 经济可行性

本系统有明确的业务逻辑。满足了开发需求,以少量专业的业务人员来代替大量的人力,不仅使得系统的操作更加完美,同时也节省了大量的时间。本图书管理系统总的面向有两个方面,第一个面向对象为管理员,具体的业务为借书信息登记、读者信息登记、书籍信息登记、图书分类、书架信息、读者分类、管理信息、信息发布等的操作,主要是是对数据的增删改查,同时还有一些对管理员的提示等等。通过管理员就可以轻松的完成以上的所有操作,不需要手工那样麻烦。

另一个面向对象为社会人士,可以使得他们了解图书馆的动态,同时本系统不是卖书的,而是借书的,只需要一定的押金就可以一直的借书,这样就等于更多的人有了自己的图书馆,想看什么书就看什么书,实实在在的解决了用户买书开销大的问题,还有就是本图书管理系统有利于大数据的存储,有不同书籍的分类和整理,这样就是满足了用户不同需求的书籍。同时本管理系统还有很强的扩张性,来增加用户和管理员的需求,做到更切合实际的需求,满足和有利于更多的人的生活。

9

安徽工业大学毕业设计(论文)

2.3 操作可行性

操作可行性主要是对管理员和用户的使用情况的难度的评估。越来越多行业 的信息都可以在网上找到,同时存在了这样一个问题:大多数的软件系统需要专业的技术人或者是有经验的工作人员了操作的。本系统是不需要的,对管理的操作,管理员只需要了解和熟悉整个的业务流程和会简单的数据查询、删除、修改等操作即可,不需要组织专业的培训和学习。对于用户,前台可以明确、清晰的了解到用户想要书籍的信息和图书馆的通知信息,不会让用户存在质疑的问题和现象。总的来说:本系统直观易懂,使用非常方便,只要了解基本的业务,操作本系统

没有太大的问题。

2.4 法律可行性

本系统属于自动开发,不会侵犯他人、集体或国家利益,不存在侵权等问题,不违反国家法律,因此具有法律可行性。

10

安徽工业大学毕业设计(论文)

图4-2 SpringMVC请求处理整体流程图

4.2.2 Spring 框架

Spring是一个开源框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来[4]。Spring用于整合,好处是解耦。所谓解耦就是,可以减低组件与组件之间的关联关系,改变程序的结构,便于维护和增加系统的扩张性。为解决企业项目开发的复杂性提供了良好的方案。 Spring住要优势是分层架构,允许使用者选择不同的组件,同时还为 J2EE 应用程序开发提供了集成的框架。基于 JavaBeans 的采用控制翻转原则的配置管理,使得应用程序的组建更加快捷简易。从spring的灵活角度而言,任何Java项目都可以从Spring中受益。

Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说, 我们会使用IoC整合组件(各种Bean),使用AOP来管理事务。 和Hibernate相同,Spring的使用也没有限制,到底是用于Web工程还是普通Java程序。具体来说,Spring框架由很多模块的功能组成,如图3-4所示:

16

安徽工业大学毕业设计(论文)

图4-3 Spring框架模块组成[15]

在程序编写方面,Spring不重新开发已有的东西,它会将大量需要重复书写的代码提取出来进行切面编程。 配置文件的灵活性也使项目的灵活性得到了加强,可以实现在不改变代码的情况下只改变其中的配置文件实现整个系统的改变。这使程序的整体编写量精简了很多。

本软件系统的构架由Spring完成组织,使整体结构轻便灵活。 4.2.3 Hibernate框架

Hibernate是开源的、用于封装数据访问层的组件,我们称之为数据访问层框架(戒持久层框架)。

之前我们通过JDBC/SQL语句从数据库中访问/操作数据,而Hibernate就是封装了这些操作,专门用于数据访问层的组件技术。Hibernate作为java最流行的对象-关系型数据艰苦映射工具,它不仅仅是管理java到数据库表的映射,同时也提供了相应的数据查询、插入等方法,可以大幅度的减少开发人员对SQL的编写,减少开发者使用SQL和JDBC对数据库访问所耗费的时间。Hibernate是对SQL语句有了特定的封装,同时把开发人员的重心从数据交互上转移,同意了面向对象开发的编程思想。

17

安徽工业大学毕业设计(论文)

图4-4 hibernate简单工作原理

图4-4显示了Hibernate的核心接口的工作原理,它利用数据库和配置文件或者annotation来为应用程序提供数据交换服务,它的coreApi简介如下:

SessionFactory(net.sf.hibernate.SessionFactory),tomcat启动后,它不仅仅包含已经编译好的映射和维护数据库的连接池,也是session的工厂类,用来返回session实例。

Session(net.sf.hibernate.Session),代表了会话的过程。底层是把一个JDBC连接进行了打包,维护了connection,它可以包含一些持久化对象的缓存。

Persistent Objects and Collections,持久化对象,即把数据保存到可永久保存的存储设备中。持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。

与其它ORM工具相比,Hibernate拥有自身的优势和特点。Hibernate是JDBC

的轻量级的对象封装,它是一个独立的对象持久层框架。它的底层由JDBC实现,因此Hibernate的兼容性与JDBC驱动和数据库都有一定的关系,而与Java程序或者App Server没有任何关系,不存在兼容问题。

本系统的持久层计划将由Hibernate技术实现。

18

安徽工业大学毕业设计(论文)

4.3开发平台及环境

4.3.1 Tomcat服务器

Tomcat是一个带有JSP环境的Servlet容器[5]。同时,Tomcat服务器是一个免费的开放源代码的Web应用服务器。Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成,因此其越来越多的受到软件公司和开发人员的喜爱。servlet和jsp的最新规范都可以在tomcat的新版本中得到实现。 4.3.2 IDE MyEclipse

MyEclipse企业级工作平台,作为Eclipse的升级版本,相比较于Eclipse增加了很多的功能,它不仅集成了自己的服务器,同时,完美的支持了HTML、JSP、css、JavaScript等等。利用它我们不单单是编写代码,同时也可以用它来发布项目,在各个方面都大大的提高了开发者的工作效率。 4.3.3 数据库 Mysql

数据的管理和利用是通过计算机的数据管理软件--数据库管理系统来完成的[6]。MySQL是目前主流的一个数据库,有瑞典MySQLAB公司开发,后来被Oracle公司收购,MySQL是一个关系型数据库管理系统。目前在WEB应用方面比较流行数据库应用软件之一。同时MySQL也是一种关联数据库管理系统,它不是将数据放在一个大的仓库内,而是将数据保存在不同的表中,这样不仅提高了速度,同时也提高了对数据的操作的灵活性。由于MySQL语言是标准化语言,使得MySQL的可视化界面兴起,这就更加的提高了MySQL的使用率。还有就是MySQL较小的体积和总体成本低,这就导致了MySQL在一般的中小型企业中占的比例异常可观。

19

安徽工业大学毕业设计(论文)

5 系统的总体设计

5.1系统框架搭建

首先,图书管理系统是基于J2EE架构进行开发的,使用J2EE搭建B/S系统具有典型的三层架构模式,本系统的开发、也采用了这样的架构,整个系统的结构如下图所示:

图5-1 项目计划管理用例

首先,在MyEclipse中建立相应的工程,导入框架的Jar包,再进行Spring框架配置文件bean.xml、spring-mvc.mxl、spring-common.xml等框架配置文件的书写,最后完成web工程中web.xml的配置,这样,管理系统的后台就配置起来了。之后,再加入自己需要的插件等,在完成了这些工作之后,整个系统的框架就在MyEclipse环境中完成了搭建。具体的结构如下图:

20

安徽工业大学毕业设计(论文)

图5-2 项目框架结构

5.2数据库关系表

5.2.1 数据库ER图

完成了系统框架的搭建,需要根据用例图提供的逻辑示意对系统进行具体设计和编码。在系统设计过程中,首先根据逻辑关系完成数据库的设计,数据库设计是程序设计的重要步骤,合理的设计可以节约大量的人力物力投入,达到系统架构的最优化,下图是图书管理系统的数据库结构图。

21

安徽工业大学毕业设计(论文)

图5-3 数据库关系表

5.2.2 数据库表

表5-1书籍信息(bookinfo)表 字段名称 id bookname typeid bookauthor bookprice totalbook caseid bookintime operatorid 类型 Varchar varchar varchar varchar int int varchar int varchar 长度 50 50 50 50 4 10 主键 说明 YES id 书名 书类型id 作者 书价格 书总量 书位置id 进书时间 管理者id 书备注 书出版社 允许空 NO YES YES YES YES YES YES YES YES YES YES 50 10 50 500 100 bookcomment varchar bookaddress varchar 22

安徽工业大学毕业设计(论文)

currbook bookcode int int 10 10 当前数量 书号 YES YES 表5-2书籍类型表(booktype)表 字段名称 id typename code comment

类型 Varchar varchar varchar varchar 长度 50 50 50 500 主键 说明 YES id 书类型名 类型编号 备注 允许空 NO YES YES YES 表5-3借书信息(borrow)表 字段名称 id readerid bookid borrowtime backtime isback managerid money 类型 varchar varchar varchar varchar varchar varchar varchar varchar 长度 50 50 50 50 50 50 50 50 主键 说明 YES id 读者id 书id 借书时间 还书时间 是否还回 管理员id 押金 允许空 NO YES YES YES YES YES YES YES

表5-4信息发布表(infopublish)表 字段名称 id title comment createtime 类型 Varchar varchar varchar varchar 长度 50 50 500 50 主键 说明 YES id 标题 内容 发布日期 允许空 NO YES YES YES 23

安徽工业大学毕业设计(论文)

表5-5管理员(manager)表

字段名称 id name pwd comment role 类型 Varchar varchar varchar varchar varchar 长度 50 50 500 50 50 主键 说明 YES id 用户名 密码 备注 角色 允许空 NO YES YES YES YES

表5-6读者表(reader)表

字段名称 id sex name readerno tel Email roleid 类型 Varchar varchar varchar varchar varchar varchar varchar 长度 50 50 50 50 50 50 50 主键 说明 YES id 性别 用户名 读者编号 电话 email 角色 允许空 NO YES YES YES YES YES YES

表5-7读者类型(readertype)表

字段名称 id typeName code comment 类型 Varchar varchar varchar varchar 长度 50 50 50 500 主键 说明 YES id 类型名称 类型编号 备注 允许空 NO YES YES YES

表5-8书架(tb_bookcase)表

字段名称 id name comment 类型 Varchar varchar varchar 长度 50 50 500 主键 说明 YES id 名称 备注 允许空 NO YES YES 5.3系统时序图

24

安徽工业大学毕业设计(论文)

完成了数据库表结构的设计,一个重要的后续步骤是根据需求分析及用例模型构建系统的静态模型和动态模型。动态模型可以由时序图进行表示,静态模型则提供相关程序类图。

系统的操作主要的时序图如下所示: 读者进入首页:

图5-4 读者时序图

管理员进行系统登陆之后可以对借书人和书籍进行操作,下面是借书流程的

时序图如下:

25

安徽工业大学毕业设计(论文)

图5-5 读者借书流程时序图

由此可见借书流程是一个流水式操作,借书的前提必须在书籍信息、读者信息已完成的前提下进行的。程序的时序图是表达程序动态处理流程的最佳方式,可以对程序的功能形成一个直观的认识。

5.4 系统相关代码说明

5.4.1 相关配置文件说明

客户端发出一个http请求给web服务器, web服务器对http请求进行解析,

26

安徽工业大学毕业设计(论文)

如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),那么,web容器将请求转交给DispatcherServlet。 DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(Handler)。那么我们先来看看DispatcherServlet配置文件,便于让他实现我们想要的效果。HttpServlet是在web.xml文件中声明的。

通过classpath*:config/spring/spring-mvc.xml加载SpringMVC的核心配

置文件。根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进行封装),再由具体的HandlerAdapter对Handler进行具体的调用。 Handler再对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。最后,Dispatcher通过model解析出ModelAndView()中的参数进行解析

27

安徽工业大学毕业设计(论文)

最终展现出完整的view并返回给客户端。

通过加载classpath*:config/spring/spring-*.xml,将连接数据库连接,同时集成了hibernate,做到对编写代码更加的方便快捷。

使用spring的HibernateDaoSupport.这样的话dao层使用spring提供的一系列模板方法,同时不用关心session, exception,事务管理也交给了spring。直接加载资源CommonService就可以调用CommonserviceImpl中的基本的方法。 5.4.2 spring注解及其先关代码介绍

在了解了图书管理系统的工作的流程之后,就可以对以上提供的流程进行编写,由于整个项目的框架是有MVC模式的,所以以下会提供相关程序类的一些代码片段,通过这些具有代表性的代码展现程序在代码实现上的成果。

5.4.2.1 Entity类及相关代码

Hibernate在处理实体类的时候提供了对象间的关联关系,在增删改查的时候可以使用Hibernate设置好的关联关系对实体类对象进行联级操作,这样的设置可以大大的减少编写程序时的工作量,从而提高编写代码的效率,然而,书写SQL语句时如果涉及到级联操作的话,需要用到多表联合查询,大大的增加了代码量,因此可以得出Hibernate对于SQL语句的封装在某些场合是合适的。Spring集成Hibernate使得SQL的联级操作变得更加简单、快捷。

如Borrow类,与数据库表的对应和对其他实体类之间的关联,通过@Entity和@Table(name = \直接建立了数据库表与实体类之间的关系,用数据操作过之后在进封装,同时使用 @ManyToOne、@JoinColumn(name = \nullable = true)、@NotFound(action = NotFoundAction.IGNORE), 使得Borrow和Reader类的对应关系多对一,所以在Borrow中封装了Reader累的对象没具体的代码如下:

@Entity

@Table( name = \public class Borrow {

28

安徽工业大学毕业设计(论文)

@Id

@GeneratedValue(generator=\

@GenericGenerator(name = \@Column( length=32 ) private String id ;

@ManyToOne

@JoinColumn( name = \@NotFound(action = NotFoundAction.IGNORE) private Reader reader;

这样编写不仅仅完成了多种关联关系的映射,同时,也在使用Hibernate

session的sava(),delete(), get()、update()等方法操作Borrow对象的时候,就会级联操作Reader对象,这样就简化了书写复杂的SQL---多表链接语句。当然,Hibernate的缺点也是相当的明显的,那就是查询效率的问题,他在操作的时候不仅仅执行的是一条语句,有可能执行多条,这样就导致了操作性能的问题。这样就需要应地适宜的来选取,要用什么语句来对数据库进行操作。当然,本系统数据库结构比较简单,所以就采用的的失眠所说的这种方式,Hibernate相比JDBC要占用更多的数据库资源,因此关联关系的设置要多多慎重。

5.4.2.2 Controller类及相关代码

Controller类主要的总用就是一点,那就是通过请求的url获取指定的Controller,同时获取指定的方法,再通过方法对页面传进来的参数获取得到,之后操作并绑定数据重新传到相应的页面。具体的,如:BorrowController通过 @Controller和@RequestMapping(\,通过@Controller声明这是一个Controller,通过@RequestMapping(\获取请求url的路径,确定请求到那个Controller进行操作。再通过方法上具体的@RequestMapping(\获取具体执行的方法。其中 @Resource(name=\是加载配置文件spring-beans.xml中dao的代理声明。@RequestParam(value=\

29

安徽工业大学毕业设计(论文)

defaultValue=\是url中所带的参数的获取。最后,通过return语句直接返回给springMVC配置文件,确定页面路劲。具体代码如下:

@Controller

@RequestMapping(\public class BorrowController {

@Resource(name=\private CommonService commonService;

\

@RequestMapping(\

public String getBorrowList(Model model, PageData pageData,

@RequestParam(value=\@RequestParam(value=\HttpSession httpSession){

//String readerId = (String)httpSession.getAttribute(\ StringBuilder hql = new StringBuilder(); if(!\

hql.append(\if(!\

hql.append(\

}

}else{ }

//System.out.println(readerId);

pageData = commonService.getPageDataHql(Borrow.class, pageData,

30

if(!\ }

hql.append(\

安徽工业大学毕业设计(论文)

hql.toString());

}

model.addAttribute(\model.addAttribute(\return \

这段代码是管理员对借书列表的查看和查找,说明了Controller处理前台请求的一般方式。Controller类中的方法addBorrowList()首先对前台传递来的数据content、select进行封装,然后调用Service层的getPageDataHql()方法完成借书信息的查询并通过异常捕获机制将后台处理信息数据反馈给在浏览器端,使得管理员了解到借书信息列表。

5.4.2.3 Service层

Service层的具体方法就是增删改查,现在提供一段Service层的方法说明业务是如何由DAO层内容构成一个整体的。主要的一个Service为CommonService,他是一个通用的Service,即适应于任何类型的类。它里面方法主要在Dao里面,包含的方法有 getPageDataHql()、getListHql()等等。主要Dao的代码如下:

public PageData getPageDataHql(Class clazz, PageData pageData,

String sql) {

String clas =

clazz.getName().substring(clazz.getName().lastIndexOf(\

StringBuilder hql = new StringBuilder();

hql.append(\ //hql = \if(!sql.contentEquals(\

hql.append(\

31

安徽工业大学毕业设计(论文)

}

Query query =

sessionFactory.getCurrentSession().createQuery(hql.toString());

query.setFirstResult(pageData.getPageSize()*(pageData.getCurrPage()));//就是

//用于分页

说你的从第几条开始

query.setMaxResults(pageData.getPageSize()-1);//页面默认显示的条数 List list = query.list(); pageData.setList(list);

Query query1 =

sessionFactory.getCurrentSession().createQuery(hql.toString());

List listtotal = query1.list();

int n =listtotal.size(); pageData.setTotal(n); int page =

n%pageData.getPageSize()==0?n/pageData.getPageSize():n/pageData.getPageSize()+1;

}

pageData.setPage(page);

return pageData;

以上代码的作用是通过指定的查询条件来查询数据,并把查询出来的数据放入PageData中,返回为一个PageData。这就是业务层作为一个业务整体对响应的处理方式。

5.4.2.4 前台代码

32

安徽工业大学毕业设计(论文)

前台的页面主要是HTML语言和JavaScript ,主要用到了一些插件和常用的js知识。下面就是主要的就是代码展示: 1. 分页 $(function(){ });

$(function(){

var page = $(\var currPage = $(\if(currPage==0){ }

$(\

if(currPage==(page-1)){ }

$(\

$(\ });

$(\ });

33

var currPage = $(\var pag= parseInt(currPage)+1; $(\$(\return false;

var currPage = $(\var pag= parseInt(currPage)-1; $(\$(\return false;

安徽工业大学毕业设计(论文)

});

这段代码主要是对分页的操作,包括上一页、下一页还有是否是影藏的等等。 2. 修改和新增是引用的弹窗代码,对页面的加载:

具体代码见附录。

这段代码包含了artDialog的引用和对新增、修改页面加载,以及数据的提交。

5.5 小结

本章内容提供了程序的具体设计方案和相关实现内容的展示,介于篇幅原因,每一段内容只能提供有代表性的示例代码,通过本章的说明,可以大体明白系统在设计和实现时可能遇到的问题以及解决方案,并为图书管理系统的开发做进一步的指引。

34

安徽工业大学毕业设计(论文)

6 系统的实现效果

以下展示的内容为图书管理系统实现的实际效果,包括读者首页和管理员操作页面。

6.1 读者页面展示

图6-1 用户界面

这个页面可以为读者展示最基本的信息,包括图书查询、新书、最近借阅、最新通知、书籍统计等。其中各类书籍统计为引入HighCharts所画,可以统计各类图书总的数量,具体的代码如下:

$(function () {

$('#container').highcharts({ chart: {

type: 'column' }, title: {

text: '各类书籍统计' }, xAxis: {

categories: ['<%= request.getAttribute(\

}, yAxis: {

title: {

35

本文来源:https://www.bwwdw.com/article/4f4.html

Top