毕业论文-基于Android平台的图书管理系统手机客户端开发_第1页
毕业论文-基于Android平台的图书管理系统手机客户端开发_第2页
毕业论文-基于Android平台的图书管理系统手机客户端开发_第3页
毕业论文-基于Android平台的图书管理系统手机客户端开发_第4页
毕业论文-基于Android平台的图书管理系统手机客户端开发_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、 毕业设计基于Android平台的图书馆管理系统手机客户端开发摘要传统的WEB应用只能在PC上使用,不能随时随地使用。为了解决这个问题,基于Android平台的图书管理系统客户端应运而生。本设计阐述了Android平台下图书馆管理系统的设计与实现过程,其目的是让人们能够在基于Google Android平台的移动设备上享受传统图书馆管理系统在WEB上的基本功能。该系统采用C/S结构,MVC软件开发模式,使用android布局技术完成UI设计,基于Java语言开发,并在不同类型的设备模拟器上进行测试。该系统实现了用户注册、登录、图书查询、学生用户管理和图书管理等功能。“操作简单,功能实用”是本软

2、件设计的核心理念,本系统力求打造最佳的用户体验。关键词:图书馆管理系统;安卓;客户;数据库设计;计算机网络服务器目录 TOC o 1-3 h z u HYPERLINK l _RefHeading_Toc327343955 摘要I HYPERLINK l _RefHeading_Toc327343956 AbstractII HYPERLINK l _RefHeading_Toc327343957 第1章前言1 HYPERLINK l _RefHeading_Toc327343958 1.1 课题研究的目的与意义1 HYPERLINK l _RefHeading_Toc327343959 1.

3、2 课题的现状1 HYPERLINK l _RefHeading_Toc327343960 1.3 课题的容1 HYPERLINK l _RefHeading_Toc327343961 第2章软件设计与开发工具介绍3 HYPERLINK l _RefHeading_Toc327343962 2.1 总体设计3 HYPERLINK l _RefHeading_Toc327343963 2.2 系统结构3 HYPERLINK l _RefHeading_Toc327343964 2.3 开发工具介绍和关键技术3 HYPERLINK l _RefHeading_Toc327343965 2.3.1

4、Eclipse的介绍3 HYPERLINK l _RefHeading_Toc327343966 2.3.2 MyEclipse与Tomcat介绍6 HYPERLINK l _RefHeading_Toc327343967 2.3.3 关键技术介绍7 HYPERLINK l _RefHeading_Toc327343968 第3章系统功能设计8 HYPERLINK l _RefHeading_Toc327343969 3.1 前台管理8 HYPERLINK l _RefHeading_Toc327343970 3.1.1 注册8 HYPERLINK l _RefHeading_Toc32734

5、3971 3.1.2 用户登录8 HYPERLINK l _RefHeading_Toc327343972 3.1.3 图书查询8 HYPERLINK l _RefHeading_Toc327343973 3.1.4 用户管理9 HYPERLINK l _RefHeading_Toc327343974 3.1.5 图书管理9 HYPERLINK l _RefHeading_Toc327343975 3.2 后台管理9 HYPERLINK l _RefHeading_Toc327343976 3.2.1 注册管理9 HYPERLINK l _RefHeading_Toc327343977 3.2

6、.2登录管理9 HYPERLINK l _RefHeading_Toc327343978 3.2.3 图书查询管理10 HYPERLINK l _RefHeading_Toc327343979 3.2.4 用户管理10 HYPERLINK l _RefHeading_Toc327343980 3.2.5 图书管理10 HYPERLINK l _RefHeading_Toc327343981 第4章数据库结构设计11 HYPERLINK l _RefHeading_Toc327343982 4.1 服务器端数据库设计11 HYPERLINK l _RefHeading_Toc327343983

7、4.1.1 数据库逻辑结构设计11 HYPERLINK l _RefHeading_Toc327343984 4.1.2数据库物理结构设计13 HYPERLINK l _RefHeading_Toc327343985 第5章模块开发与编码实现15 HYPERLINK l _RefHeading_Toc327343986 5.1 服务器端的设计-搭建java web服务器15 HYPERLINK l _RefHeading_Toc327343987 5.2 连接数据库模块15 HYPERLINK l _RefHeading_Toc327343988 5.3 服务器功能模块16 HYPERLINK

8、 l _RefHeading_Toc327343989 5.3.1 注册模块16 HYPERLINK l _RefHeading_Toc327343990 5.3.2 登录模块17 HYPERLINK l _RefHeading_Toc327343991 5.3.3 书籍查询模块18 HYPERLINK l _RefHeading_Toc327343992 5.3.4 特定用户查询模块19 HYPERLINK l _RefHeading_Toc327343993 5.3.5 查询所有用户模块20 HYPERLINK l _RefHeading_Toc327343994 5.3.6 添加书籍模块

9、21 HYPERLINK l _RefHeading_Toc327343995 5.4 客户端的设计-设计ANDROID UI界面22 HYPERLINK l _RefHeading_Toc327343996 5.5 具体功能模块23 HYPERLINK l _RefHeading_Toc327343997 5.5.1 注册界面23 HYPERLINK l _RefHeading_Toc327343998 5.5.2 登录界面26 HYPERLINK l _RefHeading_Toc327343999 5.5.3 学生用户书籍查询界面28 HYPERLINK l _RefHeading_To

10、c327344000 5.5.4 管理员界面29 HYPERLINK l _RefHeading_Toc327344001 5.5.5 管理学生用户界面30 HYPERLINK l _RefHeading_Toc327344002 5.5.6 管理图书界面31 HYPERLINK l _RefHeading_Toc327344003 5.5.7 图书增加界面32 HYPERLINK l _RefHeading_Toc327344004 第6章系统测试34 HYPERLINK l _RefHeading_Toc327344005 6.1 用户注册测试34 HYPERLINK l _RefHead

11、ing_Toc327344006 6.2 用户登录测试34 HYPERLINK l _RefHeading_Toc327344007 6.3 图书查询测试36 HYPERLINK l _RefHeading_Toc327344008 6.4用户管理测试36 HYPERLINK l _RefHeading_Toc327344009 6.5 书籍管理测试37 HYPERLINK l _RefHeading_Toc327344010 总 结39 HYPERLINK l _RefHeading_Toc327344011 参考文献41 HYPERLINK l _RefHeading_Toc3273440

12、12 附录一核心代码42 HYPERLINK l _RefHeading_Toc327344013 附录二外文文献(原文)43 HYPERLINK l _RefHeading_Toc327344014 附录三外文文献(译文)52 HYPERLINK l _RefHeading_Toc327344015 致60第一章引言1.1研究的目的和意义移动互联网时代的到来,预示着一个全新的时代开始了。所谓移动互联网,就是移动通信和互联网的融合,移动设备(包括手机和上网本)可以随时随地访问互联网资源和应用。智能手机是移动互联网时代标志性的客户端工具。它不同于传统的手机。它就像一台“小电脑”,拥有独立的操作系

13、统,可以自由安装和卸载软件,具有强大的计算和存储能力,并通过移动通信网络进行无线网络接入。随着移动终端的快速发展,传统的WEB应用出现在移动终端是一个大趋势。基于Android平台的图书馆管理系统手机客户端很好的体现了这一趋势。在Android平台下开发图书管理系统可以为用户提供方便,用户可以通过它随时随地了解系统的实时信息,从而实现信息的实时性。通过在Android平台下开发图书管理系统的客户端,补充了传统的WEB应用。同时,对于学校的图书管理系统来说,手机是学生必备的物品。手机客户端形式的图书馆管理系统可以更贴近学生的生活习惯,适合学生各年龄段的习惯,这将促进学生更多地获取图书馆信息。1.

14、2主体的地位目前国内基于Android平台的图书馆管理系统客户端不成熟,大部分图书馆管理系统出现在传统的WEB应用上。在这种环境下,基于Android平台的图书管理系统客户端属于一个全新的应用。作为一个不成熟的应用,图书馆管理系统大多出现在一个学习android开发的项目中,作为学习中的一个练习。目前大部分的网络应用都是传统的WEB应用,但是在Android手机飞速发展的今天,传统的WEB应用已经不能满足人们随时随地体验网络应用的想法,所以会有越来越多的应用出现在移动终端,其发展速度也会越来越快。作为传统的WEB应用,学校图书馆管理系统也将在手机客户端得到应用。1.3主体的能力于是,手机上出现

15、了大量的应用。基于Android平台的图书馆管理系统手机客户端就是根据这种形式开发的。它是一个开放的图书馆管理系统,具有传统的网络图书馆管理系统的大部分功能。整个系统分为前端界面管理和后端服务器管理两个部分,又分为用户管理、图书管理和信息管理三个部分。在前台管理中,用户注册、登录、查询特定书籍等功能;后台管理模块负责控制前端界面管理的所有功能;这个系统有两种类型:学生用户和管理员。两种类型的用户使用同一个平台,但是权限不同。学生只能注册、查询图书等功能;管理员拥有最高权限,可以删除已毕业的学生用户账号,查询学生用户信息,实时更新图书馆新书,发布图书馆最新信息。这个图书管理系统可以适用于各类图书

16、馆,具有很好的可操作性,可以随时查询你需要的图书信息。只要你的智能手机上安装了该系统的客户端,该系统极大地方便了学生的图书查询。本系统采用C/S结构,后台服务器使用Servlet编写服务器,Tomcat发布服务。前台客户端环境使用ANDROID控件。JDBC调用Oracle数据库实现手机客户端和服务器之间的数据传输。第2章软件设计和开发工具介绍为了使软件开发顺利进行,使开发人员对系统各模块的性能、系统接口、系统开发运行环境、计算机部门的逻辑和物理流程有更清晰的认识,更有利于源程序的开发,对系统的总体设计、系统结构设计和开发工具以及关键技术进行了详细的描述。2.1总体设计从设计者的角度来看,基于

17、ANDROID平台的图书管理系统的客户端分为两类:学生用户和管理员。功能包括注册、登录、密码检索、图书查询、图书实时更新和一般用户管理六个部分。其中,系统管理中的学生用户权限包括注册、登录、密码找回和图书查询四个模块。管理员的权限是除了学生用户的权限,还有实时更新图书信息,管理学生用户等模块。从用户的角度来说,分为前台和后台管理两部分。后台管理模块是该系统的关键部分之一,是系统维护和信息管理的平台。根据实际需要,本系统后台管理的用户分为两类:管理员和学生用户。这两类用户使用的系统管理平台都在同一个平台上,只是执行权限不同。2.2系统结构本系统的整体逻辑结构为C/S结构,结构图如图2-1所示:图

18、2.1C/S结构图2.3开发工具和关键技术介绍2 . 3 . 1 eclipse简介Eclipse是一个开源的、基于Java的可扩展开发平台。它本身只是一个框架,一套通过插件组件构建开发环境的服务。幸运的是,Eclipse附带了一组标准插件,包括Java开发工具包(JDK)。Eclipse的开发历史,版本代码平台版本主要版本发布日期SR1发布日期SR2发布日期如下:表2-1 Eclipse的版本号版本代码平台版本主要发布日期SR1的发行日期2 SR2的发布日期木卫四3.22006年6月26日不适用的不适用的欧罗巴3.32007年6月27日2007年9月28日2008年2月29日木卫三3.420

19、08年6月25日2006年9月24日2009年2月25日“伽利略”号3.52009年6月24日2006年9月25日2010年2月26日艾里奥斯3.62006年6月23日2006年9月24日2011年2月25日靛蓝3.72006年6月22日2006年9月23日2012年2月24日Juno(已安排)3.8和4.22006年6月27日2006年9月28日2013年2月22日开普勒4.32006年6月26日2006年9月27日2014年2月28日Eclipse是一个开源软件开发项目,致力于为高度集成的工具开发提供一个全功能和商业质量的工业平台。主要由三个项目组成:Eclipse项目、Eclipse工具

20、项目和Eclipse技术项目,包括四个部分Eclipse平台、JDT、CDT和PDE。JDT支持Java开发,CDT支持C开发,PDE支持插件开发,Eclipse平台是一个开放的可扩展的IDE,提供了一个通用的开发平台。它为构建模块以及构建和运行集成软件开发工具提供了基础。Eclipse平台允许工具构建者独立开发与其他人的工具无缝集成的工具,这样就不需要区分一个工具功能在哪里结束,另一个工具功能在哪里开始。Android项目是在Eclipse工具上写的。要写android项目,首先需要在Eclipse上安装ADT插件,然后指定SDK所在的路径,然后就可以创建Android虚拟机了。在Eclip

21、se下创建虚拟机的步骤如下:安装ADT插件在Eclipse中点击菜单栏上的Help,在Help中选择Install NewSoftware选项,会出现如下界面:图2.2ADT安装步骤界面指定ADT路径后,您可以安装ADT插件。导入AndroidSDK安装ADT插件后,点击Eclipse菜单栏,在Windows下找到preperence,点击Enter,出现如下界面:图2.3 AndroidSDK安装界面在左侧选项中选择Android,在SDK位置下导入AndroidSDK路径,点击应用即可导入所有版本的Android。创建虚拟机安装ADT并成功导入androidSDK后,可以在菜单栏中找到Wi

22、ndows下的AVD管理选项。点击进入,会有新的安卓虚拟机界面。在创建界面设置好虚拟机参数后,点击确定,创建一个Android虚拟机。创建虚拟机后,单击Start运行一个android虚拟机。虚拟机运行成功的界面如下:图2.4 Android虚拟机视图虚拟机模拟了android智能手机的界面,通过操作虚拟机可以体验android智能手机的一些应用。同时,虚拟机是开发的android应用运行的地方,它提供基本的人机交互功能。2 . 3 . 2 MyEclipse和Tomcat的介绍MyEclipse是一个优秀的Eclipse插件集合,用于开发Java和J2EE。MyEclipse Enterpr

23、ise Workbench(简称MyEclipse)是EclipseIDE的扩展。有了它,我们可以大大提高数据库和JavaEE的开发和发布,以及与应用服务器的集成的工作效率。它是一个JavaEE集成开发环境,功能丰富,包括完整的编码、调试、测试和发布功能。它支持HTML、Struts、JSP、JavaScript、Hibernate、MyEclipse、CSS、Spring和SQL,功能非常强大,支持面也很广,尤其是针对各种开源产品。在结构上,MyEclipse的特征可分为7类:1.javaee模型2.Web开发工具3.e开发工具4.应用服务器的连接器5.JavaEE项目部署服务6.数据库服务

24、7.MyEclipse集成帮助对于以上每一个功能类别,Eclipse中都有相应的功能组件,并且通过一系列插件来实现。MyEclipse结构的模块化允许我们在不影响其他模块的情况下独立扩展和升级任何模块。简单来说,MyEclipse是Eclipse的一个插件,也是一个强大的JavaEE集成开发环境,支持代码编写、配置、测试和调试。在MyEclipse6.0之前,需要先安装Eclipse。安装MyEclipse6.0版或更高版本时不需要安装Eclipse。这个系统是基于C/S架构的,需要在MyEclipse上创建一个服务器,使用Java EE中的servlet提供服务,部署在Tomcat下。解决方

25、案是创建不同的servlet来提供不同的服务。Tomcat是Apache软件基金会雅加达项目中的核心项目,由Apache、Sun等公司和个人共同开发。感谢Sun的参与和支持,最新的Servlet和JSP规范总能在Tomcat中得到体现。Tomcat 5支持最新的Servlet 2.4和JSP 2.0规范。Tomcat因其技术先进、性能稳定、免费而深受Java爱好者的喜爱,并得到一些软件开发者的认可。它已经成为一个流行的Web应用服务器。最新版本是7.0。Tomcat很受程序员的欢迎,因为它占用系统资源少,扩展性好,支持开发应用系统常用的功能,比如负载均衡、服务等。而且它还在不断的改进和完善,任

26、何感兴趣的程序员都可以对它进行修改或者添加新的功能。Tomcat是一个轻量级的应用服务器,广泛应用于中小型系统,并发用户不多的时候。它是开发和调试JSP程序的首选。对于初学者来说,可以认为在一台机器上配置了Apache server,就可以用它来响应对HTML页面的访问请求。实际上,tomcat是Apache server的扩展,但它是独立运行的,所以当Apache Tomcat运行Tomcat时,它实际上是作为一个独立于Apache的进程运行的。Tomcat实际上运行JSP页面和Servlet。此外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,同时也是S

27、ervlet和JSP容器。独立Servlet容器是Tomcat的默认模式。但是,Tomcat处理静态HTML的能力不如Apache server。目前Tomcat的最新版本是7.0.27发布。2.3.3关键技术介绍该软件采用java作为开发语言,布局和数据存储是开发该软件的关键技术。布局是用来设计用户界面的,用户界面的设计是否美观合理直接影响用户体验。所以,用好布局技术直接关系到用户,而数据存储技术记录了用户所有的操作数据,以及用户需要提取的数据。在android中,软件UI通常使用xml技术设计,而xml中控件的位置和状态与布局的使用密不可分。android中常用的布局有五种,分别是:Abs

28、oluteLayout、LinearLayout、RelativeLayout、FrameLayout和TableLayout。由于使用了布局,而且布局之间可以相互嵌套,这使得android软件UI的设计非常灵活。即使是一些非常复杂的界面设计,只要布局使用合理,也会很容易开发。Android数据存储技术主要包括:文件存储、preference、sqlite、ContentProvider和网络存储。文件存储是以流的形式读写文件,流可以是文本形式,也可以是二进制形式。要在java语言中使用stream,写入文件的对象必须序列化。sqlite是嵌入式移动设备中常用的轻量级数据库,可以看作是计算机上

29、使用的sql server和oracle数据库。在本系统中,Oracle数据库用于存储图书馆的基本信息。第三章系统功能设计本系统采用C/S模式开发,客户端和服务器独立分离,形成了前台管理和后台管理的分离。前台管理关注用户交互是否简单,后台管理关注功能逻辑和与数据库数据交互的功能。3.1前台管理前台所有功能的功能流程图如下:图3.1前台客户端流程图注册用户通过手机客户端主界面的注册按钮注册新的学生用户。注册用户的信息通过服务器连接到数据库,数据库中的用户表会生成你的注册信息,同时手机客户端会提示注册成功。用户登录登录用户分为两种:管理员和学生用户。可以通过登录界面中选择的身份登录,服务器根据选择

30、的信息选择数据库中的数据表进行匹配。如果用户名和密码正确,登录将会成功。图书查询在查询界面输入要查询的图书的书名和作者名,通过服务器端的查询数据库返回所查询图书的信息。图书信息包括:书名、作者、姓名、是否已收到、图书剩余数量等。在图书查询功能中,使用了一个ANDROID自动补全文本控件,可以通过你输入的查询信息,用你输入的文字列出图书的书名,方便你检索。通过这种控制,大大提高了用户检索图书的效率,满足了模糊查询的功能,使用户查询图书方便快捷。用户管理用户管理模块是管理员对学生用户账号的管理。由于一些特殊原因,比如学生毕业等原因,管理员有权删除此类账号。同时,学生用户的信息可以通过其用户名进行查

31、询。图书馆管理此功能只能由管理员拥有。通过该功能,管理员可以添加和删除图书。通过该模块,管理员可以实时添加新书和发布新书。对于删除功能,管理员可以删除一些已经下架不再外借的书,以免造成不必要的麻烦。3.2后台管理后台服务器的任务是根据客户端发送的请求和客户端的不同功能模块,将搜索结果返回给客户端并展示给用户。其基本流程图如下:图3.2后台服务器流程图3.2.1注册管理用户注册提交:向服务器提交用户注册信息,并更新到数据库。注册是后台的重要内容。注册只提供学生用户的注册,可以保证图书馆用户权限的稳定性和安全性。通过注册用户,用户可以享受移动客户端的所有功能。通过手机客户端注册用户,作为以后通过手

32、机客户端登录图书管理系统的唯一认证。3.2.2登录管理登录管理:根据你的登录信息向服务器发送请求,然后与数据库信息进行比对,确认用户登录成功。登录时,无论您是学生用户还是管理员,都必须首先选择您的登录身份。根据你选择的不同身份,服务器用不同的数据库表核对信息,从而通过核对用户信息来确定登录账号的密码是否正确。3.2.3图书查询管理图书查询管理主要是通过图书的几个关键信息进行查询,根据图书名称和图书作者将信息提交给数据库进行条件检索。通过对输入信息的检索,返回被检索图书的基本信息,如图书名称、图书作者、名称、是否借阅、剩余数量等基本信息。用户管理后台用户管理是管理员处理特殊情况的学生用户和查询特

33、定学生用户的服务,是数据更新和与数据库交互的服务。图书馆管理后台图书管理是管理员向图书数据库表添加新书的服务。通过将它们添加到数据库表中,学生可以在图书查询功能中查询最新更新的图书信息。同时从数据库中删除不再外借的图书,从而更新数据库中的图书名称。第4章数据库结构设计4.1服务器端数据库的设计采用Oracle数据库。本系统采用Oracle的简单版本,即数据库名为Oracle XE。首先要解决的是在数据库中某个用户下创建一个表。首先,配置Oracle数据库。步骤如下:(1)以Oracle管理员身份输入Oracle,在终端输入的命令为:sqlplus /as SYSDBA ;(2)启动Oracle

34、,在终端输入的命令是:startup;(3)创建新用户,终端的命令是:首先以管理员身份登录数据库,然后创建新用户的命令是:创建由刘玉娟标识的用户刘玉娟;授予资源,连接到柳玉娟;创建的用户账号和密码分别是:刘玉娟、刘玉娟;(4)然后使用命令sqlplus liuyujuan/liuyujuan作为liuyujuan用户登录。在liuyujuan帐户下创建数据表,满足图书馆管理的日常需要。这些表的名称是lib_admin、lib_user、lib_books和lib_ret,每个数据表中存储的信息是管理员信息、公共用户信息、图书信息和图书借阅信息表。4.1.1数据库逻辑结构设计在需求分析阶段,系统

35、的所有数据分析已经完成。根据这一阶段建立的概念模型,得到了几个满足系统设计要求的关系描述。这一阶段的主要工作是将前一阶段的成果转化为具体的数据库。管理员有两个属性:用户名和密码。管理员用户的身份可以通过这两个属性来确定,其中ID是主键,其E-R图如下:图4.1管理员的E-R图学生有用户名、密码、入学年份、性别、学院名称等属性。通过这些属性,他们可以确认学生信息表的信息,其中的主键是ID,其E-R图如下:图4.2学生用户的E-R图图书信息表用于存储图书的基本信息。其星级包括书名、作者姓名、图书位置、名称、所属学科、是否外借、最长借阅时间等。其中,自动分配的ID和书名作为联合主键,其E-R图如下:

36、图4.3图书信息的E-R图借阅图书信息表用于存储借阅图书的相关信息。通过此表,可以了解借阅图书的基本情况。其属性包括书号、书名、图书作者、最大借阅时间、实际借阅时间、借阅时间、借阅者ID。其E-R图如下:图4.4图书借阅信息的E-R图各种实体之间关系的E-R图如下:图4.5实体关系图4.1.2数据库物理结构设计根据数据库的原理,结合上面的E-R图,经过变换,就可以进行数据库的物理设计了。基于上述数据库的逻辑设计,考虑到程序设计的简单性和题目的时效性,本系统的数据库采用Oracle的简单版本建立数据库,在该数据库下创建四个数据表,其结构如下:表4-1数据表列表表名解释用户表商店管理员信息表普通用

37、户表用于存储一般用户信息表图书信息表用于存储书籍基本信息表格图书借阅信息表用于存储借阅图书的基本信息。表4-2管理员用户信息表字段名数据类型长度主键评论身份自动编号10是由数据库序列自动生成责任编辑Varchar250不管理员的登录帐户。密码Varchar250不管理员的密码。表4-3一般用户信息表字段名数据类型长度主键评论身份自动编号10是由数据库序列自动生成用户名Varchar250不唯一的用户标识,缺一不可。密码Varchar250不普通用户的用户登录密码IndentityidVarchar2100不用户的注册号码年Varchar250不用户的注册年份性别Varchar230不用户性别大

38、学Varchar250不用户学院表4-4图书信息表字段名数据类型长度主键评论身份自动编号10联合主键由数据库序列自动生成书名Varchar250联合主键图书名称图书作者Varchar250不书的作者姓名PhnameVarchar250不名字位置Varchar260不位置种类Varchar280不从属主题状态Varchar220不图书状态租房时间Varchar220不最长借用时间表4-5借阅图书信息表字段名数据类型长度主键评论身份Varchar210是由数据库自动生成。预订日期Varchar250不借用时间行动日期Varchar250不实际借出时间出口日期Varchar250不最长借出时间图书i

39、dVarchar210不书号书名Varchar250不图书名称作者Varchar250不书的作者姓名用户标识Varchar210不借款人id第五章模块开发和编码实现5.1服务器构建java web服务器的设计这个软件是一个C/S结构的系统,需要先设置一个服务器,使用Java EE中的servlet提供服务,部署在Tomcat下。解决方案是创建不同的servlet来提供不同的服务。Web服务的名称:LibraryService在MyEclipse中新建一个web项目,命名为LibraryService,其结构如下:图5.1服务器端代码结构5.2连接数据库模块。briup.jdbc是CVM模式下的

40、下层,数据库层,包中的类用来连接和操作数据库,其中JDBCConnectionFactory.java用来连接数据库,连接数据库的三个变量是:私有静态字符串url私有静态字符串用户名;私有静态字符串userPwd数据库需要URL、用户名和用户密码来连接,这三个值放入jdbcinfo并通过Properties获取。一些代码如下:Properties pro = new Properties();pro.load(新文件输入流( E:Myeclipse6.5工作空间library service src briup JDBC JDBC info );URL = pro . getproperty(

41、 URL );userName = pro . getproperty( userName );user pwd = pro . getproperty( user pwd );new Oracle . JDBC . driver . Oracle driver();connection conn = driver manager . get connection(URL,userName,user pwd);5.3服务器功能模块。briup.dao是CVM模式下的dao层,为service提供服务,封装了数据库操作的方法。中有不同的Servlet类。briup.servlet包,具体如下:注

42、册模块用户注册servlet作为RegisterServlet提供,它的doPost()和doGet()方法被覆盖。servlet用于处理学生用户的注册请求。注册的参数是用户名、密码、indentityid、年份、性别和学院,它的url是: HYPERLINK ./%20%20%20%20:/:8088/LibraryService/servlet/registerservlet :8088/LibraryService/servlet/registerservlet部分代码如下:PrintWriter out = response . getwriter();string username

43、= request . getparameter( username );string password = request . getparameter( password );string indentity id = request . getparameter( indentity id );string year = request . getparameter( year );string gender = request . getparameter( gender );string college = request . getparameter( college );libr

44、ary Dao Dao = new LibraryDaoImpl();try User User 1 =(User)Dao . findbysusername(username);if(user1!=空)xml=MakeXML.makeXml(用户名已经存在,false);否则User User = new User();user.setUsername(用户名);user.setPassword(密码);user . setindentityid(indentityid);user.setYear(年份);user.setGender(性别);user.setCollege(学院);dao.

45、save(用户);Xml=MakeXML.makeXml(恭喜你注册成功,true);5.3.2登录模块提供用户登录的servlet是LoginServlet。重写它的doPost()和doGet()方法。这个servlet用于处理学生用户和管理员的登录请求。登录参数是用户名和密码,其url是: HYPERLINK ./:/:8088/LibraryService/servlet/loginservlet :8088/LibraryService/servlet/loginservlet部分代码如下:PrintWriter out = response . getwriter();system

46、 . out . println( welcome client log in );字符串xml = null/获取string flag = request . getparameter( flag )。trim();字符串用户名=request.getParameter(用户名)。trim();字符串密码=(字符串)request.getParameter(password )。trim();library Dao Dao = new LibraryDaoImpl();if(flag . equals( normal )如果(用户名!=空)尝试. bri up . POJO . user

47、user = Dao . findbysusername(用户名);如果(用户!=空)if(user.getPassword()。equalsIgnoreCase(密码)Xml=MakeXML.makeXml(恭喜你成功登录,true);否则Xml=MakeXML.makeXml(密码错误,false);否则Xml=MakeXML.makeXml(用户名不正确,false); catch(异常e) / TODO自动生成的catch块System.out.println(网络异常);out . println( );Out.println(网络异常 ); else if(flag . equal

48、s( admin )尝试Admin admin=dao.findByAdminname(用户名);如果(admin!=空)if(admin.getPassword()。等于(密码)Xml=MakeXML.makeXml(恭喜你成功登录,true);否则Xml=MakeXML.makeXml(密码错误,false);否则Xml=MakeXML.makeXml(用户名不存在,false); catch(异常e) / TODO自动生成的catch块e . printstacktrace();5.3.3图书查询模块提供特定图书查询的servlet是findBookServlet,它的doPost()和

49、doGet()方法被重写。这个servlet用于处理学生用户查询特定书籍的请求。图书的查询参数是bookname和bookauthor,它们的url是: HYPERLINK ./:/:8088/LibraryService/servlet/findbooksservlet :8088/LibraryService/servlet/findbooksservlet部分代码如下:string bookname = request . getparameter( bookname )。trim();string author name = request . getparameter( author

50、 name )。trim();string status = request . getparameter( status )。trim();/状态为是,表示已借出,状态为否,表示未借出。System.out.println( -你好我在findbookservlet-);字符串xml = nullList list = nulllibrary Dao Dao = new LibraryDaoImpl();if(status.equals( )尝试list = Dao . findbookbyname(bookname,author name);如果(列表!=空)xml=MakeXML.mak

51、eXml(list,list . size()+ );否则Xml=MakeXML.makeXml(列表,“抱歉图书馆没有这本书”); catch(异常e) / TODO自动生成的catch块e . printstacktrace();否则尝试list=dao.findBookByName(图书名,作者名,状态);如果(列表!=空)xml=MakeXML.makeXml(list,list . size()+ );否则Xml=MakeXML.makeXml(列表,“抱歉图书馆没有这本书”); catch(异常e) / TODO自动生成的catch块e . printstacktrace();5.

52、3.4针对特定用户的查询模块提供特定的用户查询servlet作为findUserservlet,并覆盖它的doPost()和doGet()方法。这个servlet用于处理管理员用户查询特定学生用户信息的请求。管理员查询特定学生的用户参数是用户名,其url是: HYPERLINK ./:/:8088/LibraryService/servlet/finduserservlet :8088/LibraryService/servlet/finduserservlet部分代码如下:PrintWriter out = response . getwriter();字符串用户名=request.getP

53、arameter(用户名)。trim();字符串xml = nulllibrary Dao Dao = new LibraryDaoImpl();尝试. bri up . POJO . user user = Dao . findbysusername(用户名);如果(用户!=空)尝试xml=MakeXML.makeXml(用户, ); catch(异常e) / TODO自动生成的catch块e . printstacktrace();否则尝试Xml=MakeXML.makeXml(密码错误,false); catch(异常e) / TODO自动生成的catch块e . printstackt

54、race(); catch (DataAccessException e) / TODO自动生成的catch块e . printstacktrace();5.3.5查询所有用户模块将所有用户查询servlet作为findAllUserServlet提供,并重写其doPost()和doGet()方法。这个servlet用于处理管理员用户查询所有学生用户信息的请求。查询所有学生用户信息不需要提供任何参数。你只需要点击“全部查询”按钮就可以找到所有的信息。它的网址是: HYPERLINK ./:/:8088/LibraryService/servlet/findalluserservlet :808

55、8/LibraryService/servlet/findalluserservlet部分代码如下:PrintWriter out = response . getwriter();字符串xml = nullList list = nulllibrary Dao Dao = new LibraryDaoImpl();尝试list = Dao . find alluser();xml=MakeXML.makeXml(列表, ); catch(异常e) / TODO自动生成的catch块尝试Xml=MakeXML.makeXml(网络异常,false); catch(异常e1) / TODO自动生

56、成的catch块E1 . printstacktrace();e . printstacktrace();5.3.6添加图书模块提供管理员添加一个图书servlet到saveBookServlet,并重写其doPost()和doGet()方法。这个servlet用于处理管理员向书架添加新书的请求。对于需要上架的图书,参数如图书名称、图书作者、图书主题、图书位置、图书名称、最大借阅时间等。需要提供。它的网址是: HYPERLINK ./:/:8088/LibraryService/servlet/savebookservlet :8088/LibraryService/servlet/saveb

57、ookservlet部分代码如下:PrintWriter out = response . getwriter();string bookname = request . getparameter( bookname )。trim();string author name = request . getparameter( author name )。trim();string phname = request . getparameter( phname )。trim();字符串location = request . getparameter( location )。trim();stri

58、ng category = request . getparameter( category )。trim();/String status = request . getparameter( status )。trim();string rent time = request . getparameter( rent time )。trim();string num = request . getparameter( num )。trim();字符串xml = nullint number = integer . parse int(num);如果(数字 0)library Dao Dao

59、= new LibraryDaoImpl();for(int I = 0;I 数字;i+)Book book =新书();book.setBookname(图书名);book . set author name(author name);book . setp hname(phname);book.setLocation(位置);book.setCategory(类别);book . set status( no );book . setrenttime(rent time);尝试dao.save(书);System.out.println(我有保存这本书); catch(异常e) / TOD

60、O自动生成的catch块尝试Xml=MakeXML.makeXml(抱歉出错,false); catch(异常e1) / TODO自动生成的catch块E1 . printstacktrace();e . printstacktrace();尝试Xml=MakeXML.makeXml(恭喜救书,真); catch(异常e) / TODO自动生成的catch块e . printstacktrace();5.4客户端设计ANDROID UI界面的设计在Eclipse中安装ADT插件,导入androidSDK后,创建一个Android项目,作为图书管理系统的客户端,供广大用户下载使用。所以UI界面要

温馨提示

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

评论

0/150

提交评论