毕业设计(论文)-基于struts的图书预订管理系统的设计与实现.doc_第1页
毕业设计(论文)-基于struts的图书预订管理系统的设计与实现.doc_第2页
毕业设计(论文)-基于struts的图书预订管理系统的设计与实现.doc_第3页
毕业设计(论文)-基于struts的图书预订管理系统的设计与实现.doc_第4页
毕业设计(论文)-基于struts的图书预订管理系统的设计与实现.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着科学技术的进步,计算机行业的迅速发展,大大提高人们的工作效率。计算机信息处理系统的引进已彻底改变了许多公司的经营管理 。甚至附近的一个小店主也可能正在用计算机来控制销售、记账以及其他活动。在一些大公司里,电子信息处理系统监测全部工作设备的操作与运行。图书管理系统是学校管理机制中的重要组成部分,通过对图书管理系统的运行管理机制进行调查研究,开发了此图书系统。本系统中解决了学校图书管理事务中的常用基本问题以及相关统计工作。本系统中包含6个功能模块:系统设置,读者管理,图书管理,图书借还,系统查询和更改口令。本系统使有jsp进行网页界面的设计,使用MVC设计模式,采用了开源框架Struts,它采用了当今软件设计的最新技术,具有开发效率高、设计灵活、生成的软件界面友好美观等特点。本系统中通过jdbc驱动和数据库进行无缝连接,后端的数据库是mysql,也是一个开源的数据库系统,该数据库具有较高的完整性,一致性和安全性。关键词 图书管理;信息管理;JSP;strutsAbstract With the progress of science and technology,the rapid development of the computer industry, improve peoples working efficiency greatly.The introduction of computerized information systems has sharply changed management control in many companies. Even a neighborhood shopkeeper may now use computers to control sales, billing, and other activitise . In large companies, electronic data processing systems monitro entire projects and sets of operations.The management of books is the important part of the administration of school organization. Investigations through the mechanism of management the books system. This system contains six modules, namely system set, reader informantion management, book information management,books borrowing and returning,system information query and password set.This system use Java Server Pages Techonolege carry on front develop, the software design mode of MVC with open source framework techonolege namely Struts, which adopts new technologies most who software design nowadays and has to be high to develop efficency, designflexible, beautiful friendship interface software that produce, etc.characteristic. This system use jdbc driver to connect the mysql database server,which is also an open source database system in the world.It has high integrity security, and consistency.Key words books management; information management; JSP; struts目 录前 言61 JAVA的网络功能与编程81.1JAVA语言简介81.2 JAVA语言在网络上的运用81.3 sevlet技术简介81.4 Struts概述91.4.1 Struts的由来和发展91.4.2 MVC简介91.4.3 jsp发展模型对比111.5 Struts的优缺点121.5.1 Struts的优点121.5.2 Struts的缺点121.5.3 Struts的工作流程122 系统需求分析142.1 需求分析142.1.1 问题定义142.1.2 可行性研究142.1.3 图书管理系统具体任务要求和运行过程152.2 技术方面可行性分析152.2.1 软件分析152.2.2 人员分析162.3 经济方面可行性分析162.4 结论163 系统总体设计173.2 系统总体软件结构193.3 数据库设计203.3.1 数据项和数据结构203.3.2 数据库概念设计213.3.3 数据库物理表设计244 主要功能详细设计274.1封装了数据操作层的类(com.core.ConnDB)实现274.2系统登陆模块的实现304.3图书信息管理模块的实现324.3.1 图书类别信息添加功能实现334.3.2 图书类别信息维护功能实现344.3.3 图书信息添加功能实现364.4读者信息管理模块的实现394.4.1 读者类别信息添加功能实现394.4.2 读者信息添加功能实现414.4.3 读者信息管理功能实现444.5 图书借阅管理模块的实现454.5.1 图书借阅功能实现454.5.3 图书归还功能实现494.6 系统管理模块的实现514.6.2 个人口令修改功能实现51总结53参考文献5450前 言 研究背景和意义图书馆是高等院校的重要组成部门, 是教师和学生获取知识的重要场所。长期以来,人们使用传统的人工方式管理图书馆的业务,其操作流程比较繁琐。通过卡片记录信息,既浪费信息,又浪费人工,纸张,而且书籍和读者的信息查询都比较麻烦,不能提供领导管理上需要的各种信息如馆内各种资料的分布及借阅等情况,工作人员在读者借书或还书的过程都是需要很大的工作量的。前天在图书馆还看到一本后边粘着卡片的书,上边标着每次的借书者姓名及还书日期。这些都已是传统的手工流程,可见这种流程的效率及处理能力都是比较低的。随着电子信息技术的飞速发展,图书馆的工作也发生了实质性的进展和变化。现代化的服务手段逐渐替代传统的手工操作,计算机编目、光盘数据库和网络检索技术等新型的项目开始在图书馆领域普及。在计算机技术、网络技术的进一步冲击下,图书馆随着教育教学改革的深入和素质教育的全面推动,逐渐演变形成数字化图书管理,其作用也越来越重要了。为了使图书馆的管理更科学、更规范,减少重复劳动,节省图书馆建设和管理中的人力、财力,方便读者查询和借阅书籍,所以有必要建立一个图书馆管理系统。因此,开发这样一套管理软件成为很有必要的事情。图书管理信息系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于后台数据库的建立要求建立起数据一致性和完整性强.数据安全性好的库。而对于前端应用程序则要求应用程序功能完备,易使用等特点。 与国内研究对比我国的图书馆自动化起步于 70 年代末、80 年代初,经过 20 年的努力, 已经取得了很大的成绩。 全国已有几千家图书馆在不同程度上把计算机应用于管理和业务工作,建立了相应的数据库。但统观我国的高校图书馆事业,大部分的 图书馆与计算机无缘,已建成的数据库多偏于地方性、专业性,规模较小。这些都表明,我国的图书馆信息化程度与发达国家相比尚存在较大的差距。本系统主要实现对图书馆的信息进行管理,以及对预订功能进行更多细化与完善。图书馆的正常运营中总是面对大量的读者信息,图书信息以及两者相互作用产生的借书信息,因此要对读者资源,图书资源,借书信息进行管理。本系统的开发就是在于提高图书管理的工作效率,加强图书馆的管理,以及使图书预订管理变得更加人性化。图书馆管理系统是图书馆管理工作中不可缺少的部分,它的内容对于图书馆的管理者和使用者来说都至关重要,所以图书管理系统应该能够为管理者或读者提供充足的信息和快捷的数据处理手段。但一直以来人们使用传统人工的方式进行图书管理和借阅管理,这种管理方式存在着许多缺点,如:效率低、易忘记、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对图书信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。这些优点能够极大地提高图书管理的效率,也是图书馆的科学化、正规化管理,与世界接轨的重要条件。第1章 JAVA的网络功能与编程1.1 JAVA语言简介Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。自从1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化。在早期,Java比较多的用在浏览器上,插入到网页中(即是Java Applet程序),成为最灵活、最强大的网页多媒体的载体,但由于Java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet逐渐的被后起之秀Flash所替代,但随着Java Servlet的推出,Java在电子商务方面开始崭露头角,最新的JSP(Java Server Page)技术的推出,更是让Java成为基于Web的应用程序的首选开发工具,目前的Java技术已成为所有大型电子商务项目的必然选择。1.2 JAVA语言在网络上的运用Java程序可以获取网络上结点的图象、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。例如Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。在编程处理上,一般先生成一个URL类型的对象,然后用 Java中相应的方法(method)获取该对象所代表的资源。1.3 sevlet技术简介 Java Servlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用Java Servlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合Java Servlet规范,Servlet是完全平台无关且是Web服务器无关的。由于Java Servlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此Java Servlet效率非常高。但Java Servlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,Java Servlet是利用输出HTML语句来实现动态网页的,如果用Java Servlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么SUN还要推出Java Server Pages的原因。1.4 Struts概述1.4.1 Struts的由来和发展Struts 框架工具是 Apache 基金会 Jakarta 项目中推出的一个子项目。 Struts 在英文中是支架、支撑的意思,这也体现出 Struts 在开发 Web 应用程序过程所起到的重要作用, Struts 为 Web 应用提供了通用的框架,让开发人员可以把主要精力集中在如何解决实际业务问题上,与此同时 Struts 框架也允许开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。采用 Struts 可以简化遵循 MVC 设计模式的 Web 应用的开发工作,很好地实现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发挥 JSP/Servlet 优点、并具有强可扩展性的 Web 应用。总之, Struts 的出现使得 Web 应用的开发过程大大简化,从而能够缩短开发周期、提高开发效率。 Struts 架构一经推出,即受到 Java 开发群体的广泛重视,从 2004 年开始逐渐升温,并日渐成为 Java 创建 Web 应用开发的最流行的框架工具,在目前 Java Web 程序员的招聘要求中,几乎都提出了对 Struts 的要求,精通 Struts 架构已经成为 Java Web 程序员必备的技能。 1.4.2 MVC简介模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用,其模型如图1-1所示: 1、模型(Model):模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.2、视图(View):视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。 3、控制器(controller): 控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。图1-1 MVC组件类型的关系和功能MVC 式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。早期的程序中,如果不注意对数功能和显示的解耦合,常常会导致程序的复杂及难以维护。很多VB,Delphi等RAD程序都有这种问题。甚至现在的C#,Java有时候也会出现把业务逻辑写在显示模块中的现象 尽管MVC设计模式很早就提出,但在Web项目的开发中引入MVC却是步履维艰。主要原因:一是在早期的Web项目的开发中,程序语言和HTML的分离一直难以实现。CGI程序以字符串输出的形式动态地生成HTML内容。后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在HTML内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。二是脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础。直到基于J2EE的JSP Model 2问世时才得以改观。它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能 。1.4.3 JSP Model 1 与 JSP Model 2SUN在JSP出现早期制定了两种规范,称为Model1和Model2。虽然Model2在一定程度上实现了MVC,但是它的应用用并不尽如人意 model2 容易使系统出现多个Controller,并且对页面导航的处理比较复杂有些人觉得model2仍不够好,于是Craig R. McClanahan 2000年5月 提交了一个WEB framework给Java Community.这就是后来的Struts.2001年7月,Struts1.0,正式发布。该项目也成为了Apache Jakarta的子项目之一 。Struts 质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑。图1-2 JSP Model 1 图1-3 JSP Model 21.5 Struts的优缺点1.5.1 Struts的优点Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。1.5.2 Struts的缺点Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是,当你习惯了它时,你会觉得它真的很棒。Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度。Struts从产生到现在已逐步越来越多运用于商业软件。虽然它现在还有不少缺点,但它是一种非常优秀的J2EEMVC实现方式。1.5.3 Struts的工作流程ActionServlet是一个FrontController,它是一个标准的Servlet,它将request转发给RequestProcessor来处理, ActionMapping是ActionConfig的子类,实质上是对struts-config.xml的一个映射,从中可以取得所有的配置信息 ,RequestProcessor根据提交过来的url,如*.do,从ActionMapping 中得到相应的ActionForn和Action。然后将request的参数对应到ActionForm中,进行form验证。如果验证通过则调用Action的execute()方法来执行Action,最终返回ActionFoward,ActionFoward是对mapping中一个foward的包装,对应于一个url。ActionForm使用了ViewHelper模式,是对HTML中form的一个封装。其中包含有validate方法,用于验证form数据的有效性。ActionForm是一个符合JavaBean规范的类,所有的属性都应满足get和set对应。对于一些复杂的系统,还可以采用DynaActionForm来构造动态的Form,即通过预制参数来生成Form。这样可以更灵活的扩展程序。 ActionErrors是对错误信息的包装,一旦在执行action或者form.validate中出现异常,即可产生一个ActionError并最终加入到ActionErrors。在Form验证的过程中,如果有Error发生,则会将页面重新导向至输入页,并提示错误。 Action是用于执行业务逻辑的RequsestHandler。每个Action都只建立一个instance。Action不是线程安全的,所以不应该在Action中访问特定资源。一般来说,应改使用 Business Delegate 模式来对Business tier进行访问以解除耦合。 Struts提供了多种Action供选择使用。普通的Action只能通过调用execute执行一项任务,而DispatchAction可以根据配置参数执行,而不是仅进入execute()函数,这样可以执行多种任务。如insert,update等。LookupDispatchAction可以根据提交表单按钮的名称来执行函数。图1-4 Struts的工作流程第二章 系统需求分析2.1 需求分析2.1.1 问题定义问题定义阶段必须回答的关键问题是“要解决的问题是什么?”。显然,这个问题解决整个软件开发周期中起着指导性作用。软件开发应该有这样一条鲜明的线索贯穿始终,否则我们的所有工作都是盲目的。现在我们应该明确问题定义阶段的主要任务:我们要建立一个图书信息管理系统,以解决学校图书馆事务的基本情况,来摆脱传统的手工记账,实现管理自动化,从而提高工作效率。同时该系统应不可避免的涉及到图书信息,读者信息,读者借阅信息的维护和处理及信息统计和查询处理。2.1.2 可行性研究系统的可行性分析包括两个详细的部分:分析开发新的系统的必要性和可能性。必要性在前面系统初步调查中已经作了详细的分析,在这里就不再赘述;可能性主要包括经济可行性、技术可行性和运行可行性三个方面。经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。由于图书信息系统是作为毕业设计由我们学生自己开发的,在经济上的投入甚微,系统建成之后将为今后实现学校图书管理提供很大的方便,因此在经济上是可行的。技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。图书管理系统用的是MyEclipse开发工具,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前B/S模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。运行可行性是对组织结构的影响,现有人员和机构、设施设施和环境对系统的适应性及人员培训补充计划的可行性。当前我们学校信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。2.1.3 系统功能系统的功能要求即用户对目标系统数据处理功能所提出的要求,主要考虑以下销售管理需求:系统设置:管理员登陆系统后可以对图书馆信息进行设置。图书信息管理:管理员登陆系统后可以添加图书类别,对图书类别信息进行管理,添加图书信息,对图书信息进行管理。读者信息管理:管理员登陆系统后可以添加读者类别,对读者类别信息进行管理,添加读者信息,对读者信息进行管理。图书借还管理:管理员登陆系统后可以实现读者借书的登记,读者还书的登记,每个读者属于不同的读者类型,不同的读者类型可以借阅图书的数目也是不一样的,管理员可以办理图书续借,系统查询:可以按条件查询图书档案信息,图书借阅信息,图书借阅超期信息列表。口令更改:管理员或一般的操作员登陆系统后可以更改自己的登陆密码。2.2 技术方面可行性分析2.2.1 软件分析1、由于Windows XP操作系统是有人机变互的友好界面,很容易掌握及操作,程序界面相对较容易实现等特点,加之目前基于Windows XP操作系统的软件开发工具也很多,易于学习、开发及应用。2、同时由于图书管理业务事务种类繁多,结合实际情况,及管理人员的素质等因素,Windows XP操作系统易学易用,而且可以满足需求,故决定采用Windows XP平台开发。3、采用mysql 型数据库系统作为图书管理系统的后台数据库,mysql是世界上公认的很好的开源型数据库,采用面向对象的方式对数据库进行管理与操作,大大简化了用户的开发与维护工作,另外小型数据库的灵活性、安全性、易用性为数据库编程提供了良好的条件。4、本系统采用Tomcat6.0作为jsp的容器,使用的是jdk1.6版本,采用的开发工具是MyEclipse 9.0,它具有功能强大的特点,选择它可以加速系统的完成进度。2.2.2 人员分析此系统操作简单,使用人员无需具有专业的计算机操作基础,因此对图书馆现有工作人员来说应用此系统是不成问题的。2.3 经济方面可行性分析本系统开发经费并不是很多。对于规模不很大,经费有限的单位在经济上是可以接受的,并且本系统实施后可以显著提高效率,很快就可以体现经济效益。投入:除软件开发成本,一台中等电脑,现价4000元左右,完全可以良好的运行系统,完成硬件平台的要求,而且经济实用。2.4 结论综上所述,无论是从技术方面还是经济方面看开发此系统均是可行的。第三章 系统总体设计通过需求分析,我们大概了解到了系统需要实现的主要功能模块以及各个模块实现所涉及的数据对象,下面我们就对整个系统的做个整体的设计和构架。u 3.1数据流程分析现有的数据流程分析多是通过分层的数据流程图来实现。数据流图(Data Flow Diagram,简称DFD图)是用一些规定的图标和符号来描述数据在系统中的流动和处理情况。数据流图一般要采用自上而下逐步求精的结构化表示方法。软件系统归根结底是一个信息处理系统,其最基本的功能是感受输入信息,对输入的信息按照规定的方法归类、处理以及存储,转变为所需要的信息,最后通过输出系统向用户输出所需求的信息。其中最核心的部分就是信息(数据)处理,因此不同的数据也就决定了所需要的不同的处理方法和算法。数据流图也就是以图形的方式将系统中数据的传递、转化过程以直观的方式表述出来。数据流图由四种基本的元素组成:数据流(Data Flow)、处理(Process)、数据存储和数据源(数据终点)。(1)数据流(Data Flow):为具有名称且有流向的数据,用标有名称的箭头表示。一个数据流可以是记录、组合项或基本项。(2)处理(Process):表示对数据多进行的加工和变换,在图中用圆形表示。指向处理的数据流为该处理的输入数据,离开处理的数据流为该处理的输出数据.(3)数据存储:表示用文件方式或数据库形式所存储的数据,对其进行的存取分别以指向或离开数据存储的箭头表示。 (4)数据源及数据终点:表示数据的来源或数据的去向,可以是一个组织或人员,它处于系统范围之外,所以又称它为外部实体,它是与系统有关的外部事物或外部环境。其图形符号用平行四边形表示。符号如图2-1所示:图3-1 数据流图的基本图形符号 图3-2 系统顶层数据流图第1层数据流图是在顶层上的细分,从整体考虑通讯录信息管理系统出现的数据流动及流向,如图2-3:图3-3 系统数据处理流程图3.2 系统总体软件结构通过在需求阶段对系统的总体功能的要求,我们得到了这个信息管理软件的总体功能结构,其主要功能结构图如图3-4所示,它应包括6大基本功能:(1)图书类别信息管理:作为一个学校的图书馆,涉及到的图书是很多的,这就有必要对图书进行分门别类,这样有利于对图书的查询和管理。不同的图书类别可以借阅的天数也是不一样的,管理员登陆系统后可以对图书类别进行添加,更新和删除操作。(2)图书信息管理:当管理员对图书类别信息添加完成后,就可以开始进行图书信息的录入了,只有将图书馆拥有的图书录入系统中,读者朋友在登陆系统后才可以查询到自己喜欢的该图书。(3)读者类别管理:为了方便图书馆的管理,系统对读者的类别进行了分别,不同的读者类别可以借阅图书的数目是不一样的。管理员在登陆系统后可以这个读者类别信息进行管理,包括添加读者类别信息,修改读者类别,删除读者类别,特别是执行删除操作时需要保持数据库表数据之间的一致性。(4)读者信息管理:当管理员把读者类别信息编辑好完成后,就可以办理读者信息了,管理员可以添加新的读者信息,修改已经存在的读者信息,删除读者信息。(5)图书预订/借阅管理:读者可以登陆系统查询自己喜欢的图书,再进行预订,如果在一定期限内亲自到图书馆进行图书借书的登记操作,当读者看完了书或需要归还时,需要拿着自己的图书到图书馆进行归还,此时有管理员办理图书归还业务。当然,如果读者借阅了图书因某种原因忘记了归还,管理员还可以对这些信息进行统计,同时,管理员还可以对已经出借的图书进行续借的办理。(6)系统设置: 管理员登陆系统后可以修改图书馆的信息,可以修改管理其他操作员的信息,可以管理书架信息。(7)口令更改:无论是管理员或读者身份登陆系统后,都可以对自己的登陆密码进行修改操作,这样保证了系统的安全性。图3-4 软件总体功能结构3.3 数据库设计3.3.1 数据项和数据结构针对一般图书管理信息系统的要求,通过对销售管理工作过程的内容和数据流程分析,设计如下面的主要数据项和数据结构:(1)图书类别信息:包括图书类别编号,名称,该图书类别可以外借的天数。(2)图书信息:包括条形玛,图书名称,图书类型,作者,译者,出版社,价格,页码,书架,添加时间,操作员,是否删除,系统记录编号。(3)读者类别信息:包括读者类别编号,读者类别名称,可借图书数。(4)读者信息:包括读者姓名,读者性别,读者条形码,读者类型,职业,出生日期,有效证件,证件号码,电话,Email,备注,读者加入时间,操作员。(5)图书借阅信息:包括记录编号,图书编号,读者编号,借阅时间,归还时间,是否已经归还,操作员。(6)图书归还信息:包括记录编号,图书编号,读者编号,归还时间,操作员。(7)图书馆信息:包括图书馆名称,馆长,联系电话,联系地址,图书馆网址,建馆时间,图书馆简介。(8)管理员信息:包括管理员id编号,管理员帐号和管理员密码。(9)管理员权限信息:包括管理员id编号,系统设置权限,读者管理权限,图书馆管理权限,图书借还权限,系统查询权限。3.3.2 数据库概念设计根据上面的做的数据项和数据结构和它们之间的关系,设计规划出来的实体有:图书类别信息实体,图书信息实体,读者类别信息实体,读者信息实体,各个实体的属性通过实体属性图表示如下面这些图所示,其中矩形代表该实体对象,它对应数据库中的一张数据表,而椭圆形里的信息代表该数据对象的属性,它对应数据表中的字段信息。系统实体联系分析:由于图书的库藏大,所以系统对图书进行了分门别类,这样可以方便对图书信息的查询操作,一个图书类别下拥有很多的图书,某个图书编号的图书只属于某类图书,同样道理,不同的读者身份用不同的读者类别表示,一个读者类别下可以有很多的读者对象,而某个读者则只属于某个读者类别。读者和图书之间是通过借阅操作相联系的,一个读者根据他所属的读者类别可以借阅相关数目的图书,同样某个图书编号的图书可以被多个读者同时借出,系统的实体间联系图如下所示。图3-14 系统实体联系图3.3.3 数据库物理表设计在前面,通过系统分析员和用户的了解,归纳出了系统的各个关键的实体,分析了它们的属性以及各个实体的联系,下面就是需要在一个关系数据库系统中使用二维关系表将各个实体及实体的联系物理实现。通过前面的分析,得到了本系统的最重要的9个数据实体,它们分别可以在mysql数据库中通过9张数据信息表来实现,关于各种数据表的字段对应每个实体的对应属性信息,关于9个数据表物理设计的建表sql语句如下。表1-1 表描述表序号表名表描述表1-2t_book_type图书类别信息表表1-3t_book图书信息表表1-4t_readertype读者类别信息表表1-5t_reader读者信息表表1-6t_loaninfo图书借阅信息表表1-7admin管理员信息表1-2 图书类别信息表字段类型描述允许为空扩展book_type_idint(11)图书类别ID否主键(自增)book_type_namevarchar(20)图书类别名是Daysint(11)可借天数是 表1-3 图书信息表字段类型描述允许为空扩展barcodevarchar(20)图书类别ID否主键(自增)book_namevarchar(20)图书类别名是authorvarchar(20)作者是publish_addressvarchar(20)出版社是pricefloat价格是stock_countint(11)库存量是book_type_idint(11)可借天数是表1-4 读者类别信息表字段类型描述允许为空扩展readerTypeIdint(11)读者类别ID否主键(自增)readerTypeNamevarchar(20)读者类别名是bookNumberint(11)可借图书数是表1-5 读者信息表字段类型描述允许为空扩展readerNovarchar(20)读者ID否主键(自增)namevarchar(20)读者名是readerTypeIdint(11)读者类别是readerSexvarchar(2)读者性别是birthdayvarchar(20)读者生日是telephonevarchar(20)读者电话是addressvarchar(20)读者地址是qqvarchar(20)读者QQ号是emailvarchar(20)读者e-mail是表1-6 图书借阅信息表字段类型描述允许为空扩展loanIdint(11)图书借阅ID否主键(自增)barcodevarchar(20)图书类别是readerNovarchar(20)读者号是borrowDatevarchar(20)借阅日期是shouldReturnDatevarchar(20)应还日期是realReturnDatevarchar(20)实还日期是returnFlagint(11)是否归还是表1-7管理员信息:字段类型描述允许为空扩展usernamevarchar(20)管理员名否主键(自增)passwordvarchar(20)管理员密码是第4章 主要功能详细设计4.1封装了数据操作层的类(com.core.ConnDB)实现本系统采用struts框架实现了MVC设计模式,实现了软件开发的分层功能。在本系统中,对于数据库的访问是使用的mysql的驱动连接的,对数据库的访问操作如数据添加,修改,删除查询都在本类中实现,各个业务层的实现都需要调用本数据层代码的。package com.core;import java.io.InputStream;import java.sql.*;import java.util.Properties;/*数据库连接类*/public class ConnDB public Connection conn = null; public Statement stmt = null; public ResultSet rs = null; private static String propFileName = /com/connDB.properties;/指定资源文件保存的位置 private static Properties prop = new Properties(); private static String dbClassName =com.mysql.jdbc.Driver; private static String dbUrl = jdbc:mysql:/:3306/db_librarySys?user=root&password=123&useUnicode=true; public ConnDB() try InputStream in=getClass().getResourceAsStream(propFileName); prop.load(in);/通过输入流对象加载Properties文件 dbClassName = prop.getProperty(DB_CLASS_NAME);/获取数据库驱动 dbUrl = prop.getProperty(DB_URL, jdbc:mysql:/:3306/db_librarySys?user=root&password=123&useUnicode=true); catch (Exception e) e.printStackTrace();/输出异常信息 public static Connection getConnection() Connection conn = null; try Class.forName(dbClassName).newInstance(); conn = DriverManager.getConnection(dbUrl); catch (Exception ee) ee.printStackTrace(); if (conn = null) System.err.println( 警告: DbConnectionManager.getConnection() 获得数据库链接失败.rnrn链接类型: + dbClassName + rn链接位置: + dbUrl); return conn; /* * 功能:执行查询语句 */public ResultSet executeQuery(String sql) try conn = getConnection();stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs = stmt.executeQuery(sql); catch (SQLException ex) System.err.println(ex.getMessage();return rs;/* * 功能:执行更新操作 */public int executeUpdate(String sql) int result = 0;try conn = getConnection();/调用getConnection()方法构造Connection对象的一个实例connstmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);result = stmt.executeUpdate(sql);/执行更新操作 catch (SQLException ex) result = 0;return result;/* * 功能:关闭数据库的连接 */public void close() try if (rs != null) rs.close();if (stmt != null) stmt.close();if (conn != null) conn.close(); catch (Exception e) e.printStackTrace(System.err);4.2系统登陆模块的实现在此系统中,需要登陆系统后才可以执行图书管理系统各个功能,关于登陆的界面设计如下,视图层(View)在login.jsp中实现,其中主要放置一个用户输入管理员帐号和一个输入管理员密码的密码框,管理员输入信息完毕后选择确定按扭,首先使用客户端js代码对输入的信息进行完整性验证,验证通过后该表单会将这些信息传递给manager.do?action=login

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论