基于Android的图书馆服务系统设计与实现_第1页
基于Android的图书馆服务系统设计与实现_第2页
基于Android的图书馆服务系统设计与实现_第3页
基于Android的图书馆服务系统设计与实现_第4页
基于Android的图书馆服务系统设计与实现_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、 毕业设计(论文)题目: 基于Android的图书馆服务系统设计与实现摘 要 针对现有图书馆手机服务系统的开发和使用成本高昂、移动数据流量消耗大、响应速度慢,不适应移动互联网时代的现象。本文开发了一个基于Android平台的图书馆移动智能终端系统。该系统利用HTTP通信、条码扫描、Oracle及MySQL数据库等技术进行开发,为读者提供基于OPAC检索的书籍资源检索功能,方便读者快速简单的使用图书馆服务,实现了传统图书馆服务的移动化和智能化。在关联化、云端化和社交化的移动互联网服务趋势下,这款集资源、社交等为一体的该APP将为用户提供更加便捷,高效的服务。关键词:Android;图书馆;移动互

2、联网Abstract Development and use of cell phone service costs for existing library system's high, mobile data traffic consumption, slow response, suited to the phenomenon of the mobile Internet era. This paper develops a library based on Android platform for mobile intelligent terminal system. The

3、system uses HTTP communications, bar code scanning, Oracle and MySQL database technology for development, to provide readers with quick and easy to use library services resources based OPAC search function to retrieve the books, allow readers to realize the mobile and traditional library services in

4、telligent. In association based, cloud and social trends of mobile Internet services, this set of resources, and social, as one of the APP will provide users with more convenient and efficient services.Key words: Android; Library; Mobile Internet目 录摘 要IAbstractII 第1章 绪 论11.1研究背景11.2 移动图书馆的发展优势与分析11.

5、3 本文组织结构2第2章 相关技术32.1 Android Studio集成开发环境32.2 MySQL数据库和SQLite数据库32.3 汇文OPAC系统42.4 C/S结构42.5 B/S结构52.6 小结6第3章 需求分析与概要设计73.1 需求分析73.2 功能概要设计73.3 系统架构83.4 小结8第4章 系统详细设计与实现94.1 客户端设计与实现94.2 服务端设计与实现194.3 系统服务224.4 小结23第5章 系统测试与优化245.1测试245.2综合优化265.3小结27结 论28参考文献29致 谢30第1章 绪 论 1.1 研究背景移动互联网的飞速发展,各行各业都与

6、之靠拢,传统的服务行业都在这次浪潮中改革,新型的智能化服务被移动互联网所覆盖。移动通信技术的发展为高速网上浏览提供了基础,为电子文献技术的传播与共享提供了保障,而且图书馆信息的服务在移动信息技术的发展下也向移动图书馆服务系统的转变,移动图书馆服务系统是图书馆一个新的改革的方向,也是图书馆的未来给予读者服务、吸引读者的方向。同时,移动图书馆这门新兴服务的发展给高校图书馆传统服务带来冲击,高校图书馆的工作面临着新的机遇和挑战。当智能手机上网成为一大主流的时候,移动图书馆服务将成为图书馆另一个重要的服务方式1。在传统行业纷纷转向提供移动互联网服务的趋势下,图书馆需要一款移动智能终端系统,集资源、社交

7、等为一体的APP来为用户提供更加便捷,高效的服务。同时也推广自己提高话语权,读者在移动终端(包括平板电脑、手机、电子书阅读器等)安装APP应用后,可以快速随时方便的享受图书馆提供的传统服务,这样提高了读者的效率,也增加了图书馆的用户。 1.2 移动图书馆的发展优势与分析伴随着智能设备的普及,图书馆提供的传统服务已经不能满足读者日益增长的各种需求,例如阅读的社交性、实时性等,图书馆需要进行服务的改革。移动图书馆2是随着移动互联网的发展而诞生的一个词,由于移动设备的便携性以及互联网的实时性,从而能够更方便的为读者提供更多的服务,读者通过随身的移动设备,享受诸如实时了解图书馆信息,查书找书

8、等图书馆服务。随着智能手机登移动终端设备的普及和移动通信技术的飞速发展,移动个人数字图书馆服务对移动终端的要求越来越高,比如硬件配置、操作系统等。需要一个开放性很强的平台来作为承载体,Android是基于Linux系统的,以移动设备为主要载体的开源操作系统,在今天的智能手机市场中,Android系统的份额是最大的。随着3G、4G技术的发展,移动互联网的时代,对于随身图书馆服务需求是特别大的。移动图书馆扩大了高校图书馆的服务范围与服务质量,使图书馆的服务不再仅仅局限于图书馆内,用户能随时随地的享受图书馆提供的各种服务,了解图书馆的最新动态。移动图书馆能相对于传统的图书馆服务更好地满足用户的个性化

9、需求,同时移动图书馆的发展会改变高校图书馆的管理模式并提高服务水平,移动图书馆的发展加速推动了高校图书馆信息资源的共建共享。移动图书馆在移动互联网下诞生,其继承了移动智能设备与互联网的优势,拥有大量的用户与发展空间。又因为其灵活性与良好的用户体验,必将为读者提供更好的图书馆服务。1.3 本文组织结构 移动互联网的发展,各种公共服务均因此得到一个新的发展平台。本文基于此主要研究了以Android为平台,以OPAC为主要检索服务的移动图书馆服务系统设计与实现。论文的主要研究内容与结构安排如下: 第1章,绪论,包含了论文的研究背景以及对移动图书馆发展的分析。第2章,介绍了系统开发过程中使用的关键技术

10、及相关的准备知识。第3章,对系统的架构以及各个功能模块进行了概括介绍。第4章,具体介绍了系统的设计与实现,包括客户端、服务端的设计与实现,数据库的设计与优化,系统服务的实现。第5章是系统测试和综合优化的实现过程,保证最好的用户体验。结论部分,包括本文的展望与总结。第2章 相关技术 2.1 Android Studio集成开发环境Android Studio是一个Android开发环境,基IntelliJIDEA,由Google公司推出。类似Eclipse ADT,Android Studio提供了集成的Android 开发工具用于开发和调试。利用Android Studio,开发者能够开发众多

11、硬件平台如手机、TV、手表、Glass等的Android应用程序。本系统客户端的开发中,采用的版本是Android Studio 1.1.0。Android Studio基于IntelliJIDEA开发,它在IntelliJIDEA的基础上,又针对Android应用程序开发为开发组提供了许多特色的功能,使开发人员能够快速创建高质量、高性能、高稳定性以及高用户体验的Android应用程序。使用Android Studio开发的应用程序,具有快速创建、安全高效和易于管理等优点。Android Studio解决了Android应用开发中常见的一些问题,首先解决的一个问题是多分辨率适配。在大量的And

12、roid设备中,大量不同尺寸的屏幕和分辨率一直是开发者开发过程中适配的一个恼人的问题,使用Android Studio,开发者可以轻松方便为自己的应用适配各种不同分辨率的屏幕;同时Android Studio还解决全球化语言的解决方案,多语言版本、快速翻译都让开发者更轻松的进行全球开发环境;Android Studio还提供收入记录功能;最后提供的Beta Testing,可以让开发者很方便试运行应用。相比于其他的集成开发环境,采用Android Studio开发的应用程序具有如下几个明显优势: 1) 基于Gradle3的构建支持;2) Android专属的重构和快速修复BUG;3) 提示工具

13、方便显示可用性、捕获性能、版本兼容性等问题;4) 支持ProGuard和应用签名;5) 提供使用向导来生成常用的 Android 应用设计和组件模板;6) 提供强大的布局编辑器,轻松的拖拉 UI 控件到布局上就能进行效果预览。2.2 MySQL数据库和SQLite数据库MySQL4是一个开源的关系型数据库管理系统,由MySQL AB公司开发,目前由Oracle公司管理。MySQL是目前最流行的关系型数据库管理系统之一,在WEB应用软件开发中方面是最好的RDBMS (Relational Database Management System),关系数据库管理系统)应用软件。MySQL将不同的数据

14、分别保存在不同的表中,而不是将所有数据放在一个相同的仓库内,这样就增加了速度并提高了使用的灵活性。MySQL使用标准SQL语言用于访问数据库。MySQL软件是开源的,所以采用了两种授权使用的政策,MySQL分为普通社区版和商业版,因为其速度快、体积小、总体使用成本低,尤其是开放源代码这一特性,很多系统都是用它作为数据存放的数据库。与 Oracle、DB2、SQL Server等大型数据库相比,MySQL 肯定也有自己的缺点,对于中小型企业和个人使用者来说,MySQL提供的功能已经足够了,最关键是 MySQL是开放源码的软件,它提供了授权使用政策是使用者能降低总体拥有成本。由于性能卓越,免费等特

15、点,它与同样开源的PHP、Linux和Apache可组成非常好的开发环境。SQLite5,是一款体积轻小的数据库,常用于嵌入式设备中。遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公共项目。因为它的设计目标就是针对嵌入式产品,所以目前在嵌入式产品中使用广泛,它占用资源非常的低,只需要几百K的内存在嵌入式设备中就够了。它是跨平台的一个数据库,支持Windows/Linux/Unix等主流的操作系统,同时能够跟类似C+、C#、PHP、Java等编程语言相结合使用,非常方便。另有ODBC接口,比起MySQL、PostgreSQL这两款开源的数据库

16、管理系统来讲,它的处理速度比他们都快。2.3 汇文OPAC系统汇文OPAC系统是基于OPAC检索的一款图书管理系统。移动互联采用Client/Server、Browse/Server体系结构,运用中间件技术,创建了开放的、友好的、创新的、易扩展的、基于图书馆文献资源共享和文献服务共享的分布式应用软件系统。该系统被大多数高校图书馆使用,其特点如下:1) 支持多种操作系统平台。如Windows 2003,各种Linux版本,Solaris,AIX, HP-UNIX,SCO UnixWare等。2) 采用大型关系型数据库Oracle作为数据存储服务平台。 3) 支持TCP/IP、NetBEUI等多种

17、通讯协议。2.4 C/S结构C/S 结构,客户机和服务器结构。经常我们使用的只能设备上的大多数应用就属于C/S结构,移动应用属于客户端,远程服务器属于服务端。C/S结构是一种常见的软件系统体系结构,使用C/S结构可以充分发挥客户端和服务端的硬件环境,任务可以通过合理分配,使分配后的任务通过客户端和服务端来实现,大大降低了系统的通讯开销,目前几乎所有的智能设备上运行的软件系统都是Client/Server形式的两层结构。传统的C/S体系结构虽然是开发的模式,但是在客户端和服务端都需要特定的软件系统来维持,使整个系统得以运行。C/S结构能充分发挥客户端的处理能力,再客户端将很多工作做完后,再提交给

18、服务器处理,这样对于移动互联网下的通信是很有优势的。C/S 结构采用“功能分布”原则,计算机应用的一个任务被分解成了多个子任务分别取执行,由多台计算机分工完成。客户端完成数据采集处理,数据表示和与用户交互的一些接口的功能;服务器端需要完成数据库的增删查改等相关的数据库核心功能。客户发起服务请求、服务端处理客户端请求并提供服务的处理方式是一种新型的计算机应用模式。C/S结构中,客户端和服务端相隔通常很远,客户端程序的任务是向服务端发起请求,再将服务端程序返回的结果以特定的形式显示给用户;服务端程序的任务是接收客户程序提出的服务请求,并对请求进行相应的处理(常见的就是数据库操作),再将结果通过特定

19、的数据格式返回给客户程序处理。对应的优点具体表现在以下两点:1) 应用服务器运行数据负荷较轻;2) 数据的储存管理功能较为透明。2.5 B/S结构B/S结构是WEB服务兴起后的一种网络结构模式,WEB浏览器是客户端获取信息服务的最主要的应用软件。Browser/Server,浏览器/服务器模式将客户端所有的应用统一成了浏览器这门软件,开发者只需要专注于系统功能实现核心部分集中到服务器上,大大简化了程序的开发、维护和使用的一些过程。客户端安装浏览器软件后,如Netscape Navigator或Internet Explorer浏览器,服务器安装SQL Server、Oracle、MySQL等数

20、据库,通过服务器软件和服务端应用程序,客户端就能通过安装的浏览器软件进行信息获取。浏览器软件通过与Web Server 同数据库进行数据交互。由于Client/Server结构开发、使用过程中存在问题,因此人们又在它原有的基础上提出了一种具有三层模式(3-Tier)的应用系统结构浏览器/服务器(Browser/Server)结构。Browser/Server结构的发展是伴随着Internet的兴起与发展才发展起来的,更是对Client/Server结构的一种改进。从某些使用程度与方便性上来讲,B/S模式是由于C/S模式的。不过从本质上说,Browser/Server结构也是一种Client/S

21、erver结构,它可看作是一种由传统的二层模式Client/Server结构发展而来的三层模式Client/Server结构在Web上应用的特例。随着Web浏览器技术的不断发展与成熟,Browser/Server结构也得到了很大的发展。现在随着浏览器的多种脚本语言和ActiveX技术发展,用一个简单的浏览器软件就能实现原来需要客户端安装的专用软件才能实现的强大功能,同时节省了开发者的开发成本。B/S结构最突出的优点是只要有一台能上网的设备就能使用服务端的服务,而不用安装任何专门的软件,客户端零安装、零维护。系统也非常容易进行扩展。B/S结构的使用越来越多,随着AJAX6技术的发展,B/S结构的

22、程序也能在客户端电脑上进行部分功能是我处理,类似C/S结构。减轻了服务器的负担;也增加了与用户交互性,能进行网页内容的局部实时更新。B/S和C/S并没有本质的区别。B/S基于HTTP协议的一种C/S架构,是特殊的C/S架构。B/S 结构的优点如下:1) 分布性操作,可以随时随地进行类似C/S的信息查询、浏览等操作;2) 业务扩展简单方便,通过增加网页即可增加服务器功能;3) 开发和维护简单方便,只要在服务端进行相关程序的编写操作,就能实现所有用户的同步更新;4) 开发简单,共享性强。2.6 小结本章介绍了整个系统开发前的知识准备与开发过程中涉及的一些关键技术。主要包括Android Studi

23、o集成开发环境、数据库、OPAC系统介绍等内容,最后也对系统结构作了简要说明。第3章 需求分析与概要设计 3.1 需求分析系统整体采用C/S结构开发,拥有开发过程灵活,运行效率高,技术也很成熟等特点。客户端开发语言选择JAVA,JAVA是一种设计非常优秀的面向对象编程语言,灵活强大。服务端使用PHP编写,PHP是一门轻巧简单的服务端脚本语言,通过和Apache服务器,MySQL数据库一起使用,更能体现出其优势及开发效率。客户端开发工具选择Android Studio,服务端开发工具选择Zend Studio,两者都是使用广泛的集成开发环境。服务端,在汇文OPAC系统的基础上编写图书信息接口,提

24、高开发效率。3.2 功能概要设计系统将原本基于WEB图书馆服务转移到Android手机上,用户通过Android手机就能够使用所有的原本WEB图书馆提供的服务,并针对移动设备提供了更多有特色的功能。系统的主要功能模块如下:1) OPAC检索:图书馆书籍检索。2) 扫码服务:通过扫一扫功能,体验快速获取图书馆书籍信息、续借图书、推荐图书等众多服务。3) 新闻公告:为读者带来最新的图书馆新闻公告。4) 我的图书馆:个人图书馆模块,提供读者信息查询、借阅查询、违章记录查询等众多个人信息服务。5) 认识图书馆:带领新生快速认识图书馆,使用图书馆。6) 资源动态:提供图书馆讲座、数字资源等信息。7) 我

25、的名片:社交模块,每个读者拥有自己唯一一张图书馆名片,包括了读者入校以来在图书馆的一些记录。8) 设置模块:提供客户端APP设置操作。9) 登录模块:用户需要登录后才能使用APP的主要功能。10) 帮助模块:提供图书馆服务系统常见的问题与解答,用户自己的反馈回复也在该模块中体现。11) 意见反馈模块:为了提高用户体验,用户可以将遇到的问题或者对图书馆服务的意见通过使用该模块进行反馈。12) 其它功能模块:包含一些常用的小功能,如推荐图书、座位预约、图书馆书籍分类查阅等。3.3 系统架构系统主要模式为Client/Server模式,共包含三层体系结构,分别为客户端、服务端和数据库。1) 客户端:

26、基于Android平台,使用HTTP请求及Socket与服务器进行通信,HTTP请求简化了开发过程中的繁琐性,Socket方式编程又保证了数据的安全性与持久性,将两者结合在一起以获得更好的效果与用户体验。使用客户端获取外部信息,例如手机的相机获取书本条码信息,并对信息进行相应的处理。客户端提供了一个友好的可视化操作界面,良好的交互,带给用户最好的体验。2) 服务端:解析所有客户端发送的请求,使用PHP应用程序操作数据库。服务端上运行着汇文OPAC系统用于提供OPAC检索相关服务,基于汇文OPAC系统的Oracle数据库编写客户端需要的API。作为客户端与数据库之间的桥梁,保证了并发处理多用户请

27、求以及数据的完整性。3) 数据库:数据库服务器。接受服务端程序的SQL请求对数据库本身进行操作,实现数据的检索与存储。系统使用MySQL数据库进行数据存储。客户端使用SQLite数据库进行数据存储。Client/Server结构的系统中,用户可以通过客户端程序向分布在网络上的服务器发出请求,服务器通过服务端程序对客户端发起的请求进行处理并对数据库操作,再将操作结果返回到客户端。系统架构如图3.1所示。服务端汇文OPAC系统 客户端 HTTP/SOCKET 数据库 HTTP/SOCKET图3.1 系统架构图3.4 小结本章首先进行了系统需求分析,重点对技术可行性做了分析。根据系统分析得到整个系统

28、的功能概要设计,再由功能概要设计了系统架构图,主要包括客户端、服务端和数据库三部分,以及它们之间的通信方式。第4章 系统详细设计与实现 本章主要介绍了系统的详细设计与实现过程。系统主要包括客户端模块、服务端模块以及系统服务模块。这三个模块相对独立,通过模块之间的互相协作共同为用户提供图书馆的服务。4.1 客户端设计与实现客户端基于Android平台开发,系统要求Android2.3及以上。客户端主要采用C/S结构开发,但在C/S结构内,又嵌套了一层B/S结构,即部分功能使用B/S结构开发,包括新闻公告模块、资源动态、帮助模块均使用B/S结构开发。系统接入图书馆数据库,所有用户需要登录后才能使用

29、所有功能。系统还提供免登录功能,用户在登录之日后七天内可以不用重复验证身份而直接使用系统提供的服务。该客户端面向图书馆服务的全体师生提供服务。部分模块(如“认识图书馆”模块)带有缓存功能(第一次客户端主动从服务端请求加载数据,数据将持久化存储在本地),以节省用户流量,或在没有网络的环境下读者仍能获取这些信息。如读者需要更新,可自行主动更新数据。业务流程图如4.1所示。登录客户端主功能主模块OPAC检索认识图书馆个人图书馆密码管理启动APP登录页面 初次启动初始化 失败缓存 忘记密码 成功(一周内自动登录)图4.1 客户端功能模块图客户端整体框架下包含以下若干个功能模块,分别为:认识图书馆、OP

30、AC检索、扫码服务、新闻公告、资源动态、我的名片、设置、帮助、意见反馈、密码管理、其它功能和登录12个大功能模块,每个功能模块下包含若干小的功能。功能模块图如图4.2所示。认识图书馆资源动态OPAC检索扫码服务新闻公告基于Android的图书馆服务系统客户端功能模块图用户登录模块我的名片设置模块帮助模块意见反馈模块其它功能密码管理图4.2 客户端功能模块图程序界面与程序逻辑分离开,遵循MVC开发模式。1) 程序启动界面和用户登录模块,用户在此模块可以使用修改密码、登录、了解图书馆等功能。在系统UI设计中,对一些与用户交互的地方进行了简单验证,如在登录页面中,由用户输入一卡通号码和密码,必须保证

31、所有的用户必填的信息都填写正确之后才能提交至服务器请求验证,以防止恶意提交。在客户端本地,利用正则表达式过滤掉一些非法的可能是SQL注入7的字符,通过本地的验证后,客户端才会向服务端发起验证请求。服务端通过请求所带的数据与数据库进行匹配,服务端返回JSON格式数据,客户端解析JSON8格式数据,验证成功,客户端跳转至主模块界面,否则提示对应的错误。运行如图4.3所示:图4.3程序启动界面和用户登录页面图2) 程序主模块。该模块是所有子模块的入口,通过主模块能进入客户端程序各个子模块。该页面主要使用Android SDK中提供的ViewPager实现。运行如图4.4所示:图4.4程序主页面图3)

32、 OPAC书目检索模块,用户可以使用资源、文献和书籍检索功能,用户可直接输入书名检索或根据条件检索。检索过程描述如下:(1) 检索过程由客户端发起,客户端通过HTTP请求,向服务端请求所需要的信息,请求信息中包含了客户端当前检索的条件;(2) 服务端接收到客户端的检索请求,执行数据库查询,将检索到的数据通过JSON格式返还给客户端;(3) 客户端收到服务端返还的JSON格式数据,解析并显示。检索过程如图4.5所示:客户端 HTTP请求 JSON格式数据客户端服务端 HTTP请求 JSON格式数据 HTTP请求 JSON格式数据图4.5 OPAC检索过程图检索运行如图4.6所示:图4.6 OPA

33、C书目检索页面图4) 书籍列表页与详细信息页,此页面展示了检索得到的书籍列表和每本书籍的详细信息,包括馆藏信息、查阅信息、书籍状态、书籍出版信息、馆藏地、还书地点等。运行如图4.7所示:图4.7 书籍列表及书籍详情图5) 图书馆新闻公告模块,用户可以查看图书馆最新的图书馆新闻公告。该模块基于B/S结构开发,类似于WEB开发。步骤描述如下:(1) 通过客户端APP内置的基于WebKit9的浏览器,使用AJAX对象异步向服务端请求数据;(2) 服务端处理请求并进行查询操作,并返回查询后得到的数据;(3) 客户端对返回的数据进行显示。运行如图4.8所示:图4.8 新闻公告页面图6) 扫码模块,该模块

34、提供条码、二维码扫描功能。用户可以轻松进行书籍扫码续借、扫码荐购、检索等服务。客户端使用ZXing库10编码和解码。扫码流程如下:(1) 客户端程序调用手机摄像头,进行二维码或条形码图像资源获取;(2) 通过ZXing库对图像资源解码;(3) 将解码后得到的条码或二维码信息通过HTTP请求发送到服务端;(4) 服务端根据接收到的请求类别分别进行书籍续借、检索、荐购等操作,并将操作结果通过JSON格式数据返还给客户端;(5) 客户端解析请求返回数据,并解析,根据结果做相应的操作。扫码流程图如图4.9所示:客户端ZXing摄像头 调用服务端 图像 HTTP请求 JSON格式数据图4.9 扫码流程图

35、运行如图4.10所示图4.10 扫码模块页面图7) 帮助模块,用户在此模块可以浏览使用图书馆服务的常见问题,以及自己的反馈的回复信息等。此模块使用同新闻公告模块同样的技术实现,使用B/S结构开发。运行如图4.11所示:图4.11 帮助模块页面图8) 设置模块,此模块提供客户端APP相关设置选项,包括是否接送消息推送、是否接收提醒、修改密码等功能。设置过程中,程序会根据用户的操作对客户端APP的配置信息进行对应的修改,以保证全局生效和持久化。运行如图4.12所示:图4.12 设置模块页面图9) 我的图书馆模块,用户通过该模块,可以查阅当前借阅、历史借阅、违章记录、荐购历史、借阅历史、预约到书等信

36、息。并可对当前借阅书籍进行续借等操作。客户端UI设计方面对常用的控件进行了自定义编写和封装。部分代码如下:NewProgressDialog.java,自定义封装的ProgressDialog。public class NewProgressDialog extends ProgressDialog public NewProgressDialog(Context context)super(context);public NewProgressDialog(Context context, int theme)super(context, theme);public NewProgressD

37、ialog(Context context, int theme, String msg)super(context, theme);this.setCanceledOnTouchOutside(false);this.setMessage(msg); 对代码中常用的对象模型进行封装。部分代码如下:User.java,用户对象模型。public class User private String mUserName;private String mUserCid; private String mUserPwd;private String mUserDepartment;private St

38、ring mUserDevice; public void setUserCid(String cid)this.mUserCid = cid;public void setUserPwd(String pwd)this.mUserPwd = pwd;public void setUserDep(String dep)this.mUserDepartment = dep;public void setUserName(String name)this.mUserName = name;public void setUserDevice(String device)this.mUserDevic

39、e = device;public String getUserCid()return this.mUserCid;public String getUserPwd()return this.mUserPwd;public String getUserDep()return this.mUserDepartment;public String getUserName()return this.mUserName;public String gerUserDevice()return this.mUserDevice;客户端持久化存储实现方式,使用SQLite数据库和本地文件进行数据持久化存储。

40、通过对常用的操作类进行封装,实现代码的模块化,增强代码的复用性。部分封装好的工具类如下所示:1) SqliteUtil.java,操作SQLite数据库,部分方法如下。public boolean insert(String table, ArrayList<Object> value)方法用于向本地数据库增加一条记录。public boolean update(String table, ArrayList<Object> value, String whereClause)方法用于更新数据库中的记录。public boolean delete(String tabl

41、e, String whereClause)方法用于删除数据库中的一条记录。public Cursor query(String table, String columnName, String whereClause, String orderWhat, int orderWay, int limitCase)方法用于查询数据库中的记录。public void onCloseDB()方法用于关闭数据库。2) NetWorkInfo.java,封装客户端网络监测相关方法,部分方法如下。public static boolean isNetWorkConnected(Context contex

42、t)用于判断当前网络是否连接。public static boolean isWifiConnected(Context context)方法判断当前WIFI是否连接。public static boolean isMobileConnected(Context context)方法判断当前移动数据网络是否连接。public static int getConnectedType(Context context)方法获取当前网络的类型。3) HttpOperation.java,一个通用的HTTP请求操作类,部分方法如下。public boolean setHttpRequest(ArrayL

43、ist<NameValuePair> postValue)用于设置HTTP请求并发送请求方法。public boolean sendGetRequest()方法用于发送GET请求。public boolean sendPostRequest(ArrayList<NameValuePair> valuePairs)方法发送POST请求。4) FileOperation.java,用于本地文件的I/O操作,部分方法如下。public static boolean writeFile(Context context,String db_name, String pathNam

44、e,String fileName, String text, int where, Handler handler)方法用于写文件操作。public static String readFile(Context context,String db_name, String pathName, String fileName, int where,Handler handler)方法用于读文件操作。public static ArrayList<String> getPackagePath(Context context, String db_name)方法用于获取当前程序所在的相

45、关路径。5) ParseData.java,用于解析JSON格式和XML格式的数据,部分方法如下。public String parseGeneralData(Context context, boolean isFromFile, int where, String relativePath, String parseStr, String regRule)方法用于解析普通的格式的数据,可以指定一个解析正则表达式规则。public ArrayList<ArrayList<String>> parseJsonData(String jsonName, String js

46、onObject, String keys)方法用于解析JSON格式数据。public ArrayList<ArrayList<String>> parseXmlDada(String xmlObject)用于解析XML格式数据。public String parseJSONArraytoString(JSONArray arr)方法将JSON数组解析成字符串。4.2 服务端设计与实现4.2.1服务端脚本服务端应用程序使用PHP编写,使用Apache作为Web服务器。为了提高代码的复用性与安全性,使用面向对象方式编程,抽象出常用的方法。1) 用户通用类:class Us

47、erprivate $cid; /登录名private $pwd; /登录密码private $con; /验证状态public function _construct($cid, $pwd, $obj);public function verify($cid, $pwd);public function getCid();public function getPwd();public function getCon();关于以上类中的方法说明如下:public function _construct($cid, $pwd, $obj)是类的构造方法。public function verif

48、y($cid, $pwd)方法用于验证用户合法性,需要要户名以及密码两个参数,返回true或false。public function getCid()方法用于获取当前用户对象的一卡通号码。public function getPwd()方法用于获取当前用户对象经过加密的密码。public function getCon()方法用于获取当前用户对象验证状态,通过系统验证返回true,否则返回false。2) 数据库操作通用类常用方法: public function connect($host, $user, $pwd, $dbname, $pconnect ,$charset)方法用于连接数

49、据库。public function query($sql)方法用来执行不带参数的存储过程。public function insert($table,$array)方法用于增加一条记录。public function update( $table,$array,$condition)方法用于更新一条记录。public function delete( $table,$condition)方法用于删除一条记录。public function fetch_array($query, $result_type = MYSQL_ASSOC)方法用于返回结果集。 public function num

50、_rows($results)方法用于获取记录条数。4.2.2数据库设计一个系统数据库设计的好坏直接决定了系统的性能,本系统在使用阶段将会有大量用户同时访问数据库的情况,因而数据库设计显得尤为重要。本系统以汇文OPAC系统为基础,采用MySQL数据库开发,具有高效、方便、快捷等特性。就本系统对数据的需求而言,MySQL可以简化很多效率方面的设计,因而可以把更多的精力放在数据库的逻辑设计方面。本系统部分数据表如下:图书馆导航信息表记录了学校图书馆以及书库的基本信息,如图书馆编号、楼层编号、借阅地点、藏书类型等。表中字段如表1所示:表1 图书馆导航信息表(libguide)字段名中文描述类型长度可

51、否为空是否为主键idIDInt11否是gwhichlib图书馆编号Varchar1否是glendplace借阅地点Varchar2否是gbooktype藏书类型Text否否gfloorpic楼层导航图urlText否否gfloor楼层编号Text否否常见问题表记录了使用图书馆服务中经常会遇见的问题以及解决方式等信息,包括问题类型、问题详情、问题答案、最新答案更新时间等。表中字段如表2所示:表2 常见问题表(faq)字段名中文描述类型长度可否为空是否为主键idIDInt11否是f_type问题类型Varchar1否是f_question问题详情Text否否f_answer问题答案Text否否f_

52、time答案最新更新时间Varchar20否是问题意见反馈表记录了所有读者通过客户端反馈的问题或意见以及图书馆回复等内容信息,包括用户编号、用户姓名、意见内容、反馈时间等。表中字段如表3所示:表3 问题意见反馈表(suggestion)字段名中文描述类型长度可否为空是否为主键idIDInt11否是r_cid用户编号Varchar20否是r_name用户姓名Varchar20否是r_dep用户单位Varchar50否是s_text问题意见内容Text否否s_time问题意见反馈时间Varchar20否否s_flag是否解决Varchar1否否s_ftime解决时间Varchar20是否s_fadmin解决者Varchar20是否S_fanswer反馈回复内容Text是否图书馆信息表记录了图书馆相关信息,包括图书馆介绍、图书馆微信、图书馆微博、图书馆服务信息等。表中字段如表4所示:表4 图书馆信息表(

温馨提示

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

评论

0/150

提交评论