畢業(yè)設計論文(基于Android平臺的圖書管理系統(tǒng)手機客戶端開發(fā))_第1頁
畢業(yè)設計論文(基于Android平臺的圖書管理系統(tǒng)手機客戶端開發(fā))_第2頁
畢業(yè)設計論文(基于Android平臺的圖書管理系統(tǒng)手機客戶端開發(fā))_第3頁
畢業(yè)設計論文(基于Android平臺的圖書管理系統(tǒng)手機客戶端開發(fā))_第4頁
畢業(yè)設計論文(基于Android平臺的圖書管理系統(tǒng)手機客戶端開發(fā))_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 university of technology 畢業(yè)設計 題 目 基于android平臺的圖書管理系統(tǒng)手機客戶端開發(fā) 學生姓名 xxx 學 號 08250334 專業(yè)班級 通信工程 指導教師 xxx 學 院 計算機與通信 答辯日期 2012 年 6 月 基于 android 平臺的圖書管理系統(tǒng)手機客戶端開發(fā) the development of library management system is based on the android platform xxx0825 摘摘 要要 傳統(tǒng) web 應用只能在 pc 機上使用,不能做到隨時隨地的使用,為了解決這樣的不足, 基于 andr

2、oid 平臺的圖書館管理系統(tǒng)客戶端就應運而生。本設計闡述了在 android 平臺下圖 書館管理系統(tǒng)的設計與實現(xiàn)過程,其目的是讓人們能夠在基于 google android 平臺的移動設 備上享用傳統(tǒng) web 上圖書館管理系統(tǒng)的基本功能。本系統(tǒng)采用 c/s 結構, mvc 軟件開發(fā) 模式,使用 android 布局技術完成 ui 的設計,基于 java 語言開發(fā)完成,在不同型號的設備 模擬器上測試通過。系統(tǒng)實現(xiàn)了用戶注冊、登錄、查詢圖書以及學生用戶管理和圖書管理等 功能。 “操作簡單,功能實用”這是本軟件設計的核心理念,本系統(tǒng)力求創(chuàng)造最好的用戶體 驗。 關鍵詞:關鍵詞:圖書館管理系統(tǒng);andr

3、oid;客戶端;數據庫設計;服務器端 abstract the web application can only in traditional pc use, cant do it at any time and place to use, in order to solve the shortage of such, based on the android platform of library management system client is made. this paper expounds the workbench android library management sys

4、tem design and implementation process, and its purpose is to let people can be based on the google android platform of mobile devices to enjoy the traditional web on the basic functions of the library management system. the system uses the c/s structure, mvc software development model, use android u

5、i design layout complete technology, based on the java language development completed, in different types of equipment simulator test is passed. the system realizes the user register, login, inquires the books and the students user management and library management etc. function. the operation is si

6、mple, functional practical this is the core idea of the software design, this system is the best tries to create user experience. key words : library management system; android; client; database design; server 目目 錄錄 摘 要 .i abstract .ii 第 1 章 前 言.1 1.1 課題研究的目的及意義 .1 1.2 課題的現(xiàn)狀 .1 1.3 課題的內容 .1 第 2 章 軟件

7、設計及開發(fā)工具介紹.3 2.1 總體設計 .3 2.2 系統(tǒng)結構 .3 2.3 開發(fā)工具介紹和關鍵技術 .3 2.3.1 eclipse 的介紹.3 2.3.2 myeclipse 與 tomcat 介紹 .6 2.3.3 關鍵技術介紹.7 第 3 章 系統(tǒng)功能設計.8 3.1 前臺管理 .8 3.1.1 注冊.8 3.1.2 用戶登錄.8 3.1.3 圖書查詢.8 3.1.4 用戶管理.9 3.1.5 圖書管理.9 3.2 后臺管理 .9 3.2.1 注冊管理.9 3.2.2 登錄管理.9 3.2.3 圖書查詢管理.10 3.2.4 用戶管理.10 3.2.5 圖書管理.10 第 4 章 數

8、據庫結構設計.11 4.1 服務器端數據庫設計 .11 4.1.1 數據庫邏輯結構設計.11 4.1.2 數據庫物理結構設計.13 第 5 章 模塊開發(fā)及編碼實現(xiàn).15 5.1 服務器端的設計-搭建java web服務器.15 5.2 連接數據庫模塊 .15 5.3 服務器功能模塊 .16 5.3.1 注冊模塊.16 5.3.2 登錄模塊.17 5.3.3 書籍查詢模塊.18 5.3.4 特定用戶查詢模塊.19 5.3.5 查詢所有用戶模塊.20 5.3.6 添加書籍模塊.21 5.4 客戶端的設計-設計 android ui 界面.22 5.5 具體功能模塊 .23 5.5.1 注冊界面.2

9、3 5.5.2 登錄界面.26 5.5.3 學生用戶書籍查詢界面.28 5.5.4 管理員界面.29 5.5.5 管理學生用戶界面.30 5.5.6 管理圖書界面.31 5.5.7 圖書增加界面.32 第 6 章 系統(tǒng)測試.34 6.1 用戶注冊測試 .34 6.2 用戶登錄測試 .34 6.3 圖書查詢測試 .36 6.4 用戶管理測試 .36 6.5 書籍管理測試 .37 總 結.39 參考文獻.41 附錄一 核心代碼.42 附錄二 外文文獻(原文).43 附錄三 外文文獻(譯文).52 致 謝.60 第第 1 章章 前前 言言 1.1 課題研究的目的及意義 移動互聯(lián)網時代的來臨,說明一個

10、嶄新的時代開始了。所謂移動互聯(lián)網是將移動通信和 互聯(lián)網整合在一起,移動設備(包括手機和上網本)可以隨時隨地地訪問互聯(lián)網資源和應用。 智能手機是移動互聯(lián)網時代一個標志性的客戶端工具,它和傳統(tǒng)的手機是有區(qū)別的,它 就像一臺“小電腦” ,具有獨立的操作系統(tǒng),可以自由安裝、卸載軟件,具有強大的計算和 存儲能力,可以通過移動通信網絡來實現(xiàn)無線網絡接入。 對于移動終端設備飛速發(fā)展的今天,傳統(tǒng) web 上的應用出現(xiàn)在手機終端是一個大的趨 勢。而基于 android 開發(fā)的圖書館管理系統(tǒng)手機客戶端,正是對這一趨勢的良好體現(xiàn), android 平臺下的圖書館管理系統(tǒng)的開發(fā),能很好的為用戶提供方便,用戶能通過它能

11、隨時 隨地的了解系統(tǒng)的實時信息,做到信息的實時化。通過 android 平臺下的圖書館管理系統(tǒng)客 戶端的開發(fā),與傳統(tǒng) web 應用進行良好的互補。 同時,對于校內的圖書館管理系統(tǒng)來說,手機對于學生是必不可少的一個物品,手機客 戶端這種形式的圖書館管理系統(tǒng),能更加貼近學生的生活習慣,并且適合學生年齡段的習性, 這對學生更多的接觸到圖書館的信息有一定得促進作用。 1.2 課題的現(xiàn)狀 目前國內的基于 android 平臺的圖書館管理系統(tǒng)客戶端還不成熟,大多數的圖書館管理 系統(tǒng)都出現(xiàn)在傳統(tǒng)的 web 應用上,在這個環(huán)境下,基于 android 平臺的圖書館管理系統(tǒng)客 戶端屬于一個嶄新的應用。作為一個不

12、太成熟的應用,大多數圖書館管理系統(tǒng)都是出現(xiàn)在學 習 android 開發(fā)的一個項目中,作為學習中的一個練習項目。目前,絕大部分的網絡應用都 還是傳統(tǒng)的 web 應用,但面對 android 手機如此迅速發(fā)展的今天,傳統(tǒng) web 的應用不能 滿足人們隨時隨地體驗網絡應用的想法,所以,出現(xiàn)在手機終端的應用將會越來越多,同時 其發(fā)展的速度也會越來越快。校內圖書館管理系統(tǒng)作為傳統(tǒng) web 應用,也必將在手機客戶 端上得到應用。 1.3 課題的內容 由此出現(xiàn)大量的應用出現(xiàn)在手機上,基于 android 平臺的圖書館管理系統(tǒng)手機客戶端是 依據現(xiàn)在的形式所開發(fā)的,它是一套基于開放性的圖書館管理系統(tǒng),它有傳統(tǒng)

13、 web 上圖書 館管理系統(tǒng)的大部分功能。整個系統(tǒng)分為前臺界面管理和后臺服務器管理兩部分,劃分為用 戶管理、圖書管理、信息管理等三個部分。在前臺管理中,用戶進行注冊、登錄、查詢特定 圖書等功能;后臺管理模塊,負責控制前臺界面管理的所有功能;本系統(tǒng)設置了學生用戶和 管理員兩類,兩類用戶都是使用同一個平臺,只是權限不同。學生用戶只能注冊、查詢圖書 等功能;管理員擁有最高權限,可以對已經畢業(yè)的學生用戶賬號進行刪除,查詢學生用戶信 息,實時更新圖書館的新書,發(fā)布圖書館最新信息等權限。 本圖書館管理系統(tǒng),能夠適用于各類圖書館,具有良好的可操作性,可以隨時的查詢你 所需要的圖書信息,只要你的智能手機安裝了

14、本系統(tǒng)客戶端,系統(tǒng)大大的方便了學生的圖書 查詢的。 本系統(tǒng)采用 c/s 結構,后臺服務器使用 servlet 編寫服務器,同時用 tomcat 發(fā)布服務, 前臺客戶端環(huán)境使用的是 android 控件。通過 jdbc 來調用 oracle 數據庫,來實現(xiàn)手機 客戶端與服務器之間數據傳輸。 第第 2 章章 軟件設計及開發(fā)工具介紹軟件設計及開發(fā)工具介紹 為了使軟件開發(fā)能夠順利進行,使開發(fā)人員對系統(tǒng)各個模塊的性能、系統(tǒng)接口、系統(tǒng)開 發(fā)及運行環(huán)境和計算機內部處理的邏輯及物理流程有更清晰的認識,更利于源程序的開發(fā), 現(xiàn)對系統(tǒng)的總體設計和系統(tǒng)結構設計及開發(fā)工具和關鍵技術做詳細說明。 2.1 總體設計 基于

15、 android 平臺開發(fā)的圖書館管理系統(tǒng)客戶端從設計者的角度來看,用戶角色分為 學生用戶和管理員兩類;功能包括注冊、登錄、密碼找回、書籍查詢、圖書實時更新、普通 用戶管理共六大部分。其中系統(tǒng)管理中的學生用戶權限包括注冊、登錄、密碼找回、書籍查 詢等四個模塊;管理員的權限則是除了學生用戶具有的權限外還有實時更新圖書信息、學生 用戶管理等模塊。從使用者的角度來看分為前臺和后臺管理兩大部分。后臺管理模塊是本系 統(tǒng)的關鍵部分之一,它是系統(tǒng)維護和信息管理平臺。根據現(xiàn)實需要,本系統(tǒng)后臺管理用戶有 兩類:管理員和學生用戶。這兩類用戶使用的系統(tǒng)管理平臺都是同一個平臺上,只不過他們 執(zhí)行的權限不同。 2.2

16、系統(tǒng)結構 本系統(tǒng)總體邏輯結構為 c/s 結構,結構圖如圖 2-1 所示: 圖 2.1 c/s 結構圖 2.3 開發(fā)工具介紹和關鍵技術 2.3.1 eclipse 的介紹 eclipse 是一個開放源代碼的、基于 java 的可擴展開發(fā)平臺。就其本身而言,它只是 一個框架和一組服務,用于通過插件組件構建開發(fā)環(huán)境。幸運的是,eclipse 附帶了一個標 準的插件集,包括 java 開發(fā)工具(java development kit,jdk) 。 eclipse 的發(fā)展史,版本代號 平臺版本 主要版本發(fā)行日期 sr1 發(fā)行日期 sr2 發(fā)行日期, 如下: 表 2-1 eclipse 的版本號 版本代

17、號平臺版本主要版本發(fā)行日期sr1 發(fā)行日期sr2 發(fā)行日期 callisto3.22006 年 6 月 26 日n/an/a europa3.32007 年 6 月 27 日2007 年 9 月 28 日2008 年 2 月 29 日 ganymede3.42008 年 6 月 25 日2006 年 9 月 24 日2009 年 2 月 25 日 galileo3.52009 年 6 月 24 日2006 年 9 月 25 日2010 年 2 月 26 日 helios3.62006 年 6 月 23 日2006 年 9 月 24 日2011 年 2 月 25 日 indigo3.72006

18、年 6 月 22 日2006 年 9 月 23 日2012 年 2 月 24 日 juno(預定) 3.8 及 4.22006 年 6 月 27 日2006 年 9 月 28 日2013 年 2 月 22 日 kepler4.32006 年 6 月 26 日2006 年 9 月 27 日2014 年 2 月 28 日 eclipse 是一個開放源代碼的軟件開發(fā)項目,專注于為高度集成的工具開發(fā)提供一個全功 能的、具有商業(yè)品質的工業(yè)平臺。它主要由 eclipse 項目、eclipse 工具項目和 eclipse 技術項 目三個項目組成,具體包括四個部分組成eclipse platform、jdt、

19、cdt 和 pde。jdt 支 持 java 開發(fā)、cdt 支持 c 開發(fā)、pde 用來支持插件開發(fā),eclipse platform 則是一個開放的 可擴展 ide,提供了一個通用的開發(fā)平臺。它提供建造塊和構造并運行集成軟件開發(fā)工具的 基礎。eclipse platform 允許工具建造者獨立開發(fā)與他人工具無縫集成的工具從而無須分辨一 個工具功能在哪里結束,而另一個工具功能在哪里開始。 android 工程是在 eclipse 工具上編寫的,進行 android 工程的編寫,首先需要在 eclipse 上安裝 adt 插件,然后指定 sdk 所在的路徑,便可以創(chuàng)建 android 虛擬機了。

20、 在 eclipse 下創(chuàng)建虛擬機的步驟如下: (1)安裝 adt 插件 在 eclipse 單擊菜單欄的 help,在 help 里面選中 install newsoftware 選項,之后便可以 出現(xiàn)如下界面: 圖 2.2 adt 安裝步驟界面 指定好你的 adt 路徑后,便可以安裝好 adt 插件。 (2)導入 androidsdk 安裝好 adt 插件后,單擊 eclipse 菜單欄 windows 下找到 preperence,點擊進入,得到 如下界面: 圖 2.3 androidsdk 安裝界面 在左邊選項選中 android,在 sdk location 下導入 androids

21、dk 路徑,點擊 apply 應用, 便會導入 android 的各個版本。 (3)創(chuàng)建虛擬機 安裝好 adt 和導入 androidsdk 成功后,便可以在菜單欄 windows 下找到 avd manage 選項,單擊進入后便有新建 android 虛擬機界面,在創(chuàng)建界面設置好虛擬機參數點擊 確定后,就創(chuàng)建好了一個 android 虛擬機。 創(chuàng)建好虛擬機后,點擊開始便可以運行一個 android 虛擬機,虛擬機運行成功界面如下: 圖 2.4 android 虛擬機視圖 虛擬機模擬的是 android 智能手機的界面,通過操作虛擬機可以體驗到 android 智能手機 的部分應用。同時虛擬機

22、是作為開發(fā)的 android 應用運行的場所,他提供基本的人機交互功 能。 2.3.2 myeclipse 與 tomcat 介紹 myeclipse 是一個十分優(yōu)秀的用于開發(fā) java, j2ee 的 eclipse 插件集合。myeclipse 企業(yè) 級工作平臺(myeclipse enterprise workbench ,簡稱 myeclipse)是對 eclipseide 的擴展, 利用它我們可以在數據庫和 javaee 的開發(fā)、發(fā)布以及應用程序服務器的整合方面極大的提 高工作效率。它是功能豐富的 javaee 集成開發(fā)環(huán)境,包括了完備的編碼、調試、測試和發(fā) 布功能,支持 html,

23、struts,jsp,javascript, hibernate,myeclipse,css, spring,sql 的功能 非常強大,支持也十分廣泛,尤其是對各種開源產品的支持十分不錯。 在結構上,myeclipse 的特征可以被分為 7 類: 1 javaee 模型 2 web 開發(fā)工具 3 ejb 開發(fā)工具 4 應用程序服務器的連接器 5 javaee 項目部署服務 6 數據庫服務 7 myeclipse 整合幫助 對于以上每一種功能上的類別,在 eclipse 中都有相應的功能部件,并通過一系列的插 件來實現(xiàn)它們。myeclipse 結構上的這種模塊化,可以讓我們在不影響其他模塊的情況

24、下, 對任一模塊進行單獨的擴展和升級。簡單而言,myeclipse 是 eclipse 的插件,也是一款功能 強大的 javaee 集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯,myeclipse6.0 以前版 本需先安裝 eclipse。myeclipse6.0 以后版本安裝時不需安裝 eclipse。 本系統(tǒng)是基于 c/s 架構的,所以需要在 myeclipse 上創(chuàng)建服務器端,利用 java ee 中的 servlet 來提供服務,并將其部署在 tomcat 下。需要解決的是創(chuàng)建不同的 servlet 來提供不同 的服務。 tomcat 是 apache 軟件基金會(apache so

25、ftware foundation)的 jakarta 項目中的一個 核心項目,由 apache、sun 和其他一些公司及個人共同開發(fā)而成。由于有了 sun 的參與和 支持,最新的 servlet 和 jsp 規(guī)范總是能在 tomcat 中得到體現(xiàn),tomcat 5 支持最新的 servlet 2.4 和 jsp 2.0 規(guī)范。因為 tomcat 技術先進、性能穩(wěn)定,而且免費,因而深受 java 愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的 web 應用服務器。目 前最新版本是 7.0。 tomcat 很受廣大程序員的喜歡,因為它運行時占用的系統(tǒng)資源小,擴展性好,支持負 載平衡

26、與郵件服務等開發(fā)應用系統(tǒng)常用的功能;而且它還在不斷的改進和完善中,任何一個 感興趣的程序員都可以更改它或在其中加入新的功能。 tomcat 是一個輕量級應用服務器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被 普遍使用,是開發(fā)和調試 jsp 程序的首選。對于一個初學者來說,可以這樣認為,當在一 臺機器上配置好 apache 服務器,可利用它響應對 html 頁面的訪問請求。實際上 tomcat 部分是 apache 服務器的擴展,但它是獨立運行的,所以當你 apache tomcat 運行 tomcat 時,它實際上作為一個與 apache 獨立的進程單獨運行的。而 tomcat 實際上運行

27、jsp 頁面 和 servlet。另外,tomcat 和 iis、apache 等 web 服務器一樣,具有處理 html 頁面的功能, 另外它還是一個 servlet 和 jsp 容器,獨立的 servlet 容器是 tomcat 的默認模式。不過, tomcat 處理靜態(tài) html 的能力不如 apache 服務器。目前 tomcat 最新版本為 7.0.27 released。 2.3.3 關鍵技術介紹 本軟件采用 java 作為開發(fā)語言,布局和數據存儲是開發(fā)本軟件的關鍵技術,布局用來設 計用戶交互界面,用戶界面的設計是否美觀和合理直接影響用戶體驗,因此運用好布局技術 是直接和用戶相關的

28、,而數據存儲技術則記錄了用戶所有的操作數據和用戶所需要提取的數 據。 在 android 中,軟件 ui 通常使用 xml 技術設計,而 xml 中控件的位置和狀態(tài)則離不開布 局的使用,android 中常用的布局有 5 種,分別是: absolutelayout、linearlayout、relativelayout、framelayout、tablelayout,由于布局的使 用,并且布局之間可以互相嵌套,使得 android 軟件 ui 的設計變得非常靈活,即使是一些非 常復雜的界面設計,只要合理的使用布局,也會使開發(fā)變得很容易。 android 中數據存儲技術主要有:文件存儲、pref

29、erence、sqlite、contentprovider 和網絡 存儲,文件存儲是以流的形式讀寫文件,可以以文格的格式,也可以以二進制的形式,在 java 語言中要使用流,則寫入文件的對象必須進行序列化,sqlite 是嵌入式移動設備中常用 的輕量級數據庫,可看作計算機上使用的 sql server、oracle 數據庫。本系統(tǒng)中,采用的是 oracle 數據庫進行儲存圖書館里的基本信息。 第第 3 章章 系統(tǒng)功能設計系統(tǒng)功能設計 本系統(tǒng)采用 c/s 模式開發(fā)的,該系統(tǒng)的客戶端和服務器端是獨立分開的,這樣的分開也 就形成了前臺管理和后臺管理。前臺管理注重用戶的交互是否簡便,后臺管理注重功能的

30、邏 輯和與數據庫數據交互的功能。 3.1 前臺管理 前臺客戶端的所有功能畫出的功能流程圖如下: 圖 3.1 前臺客戶端流程圖 3.1.1 注冊 用戶通過手機客戶端主界面上的注冊按鈕注冊新的學生用戶,注冊用戶的信息通過服務 器端和數據庫連接,數據庫中的用戶表則會生成你注冊的信息,同時在手機客戶端提示注冊 成功。 3.1.2 用戶登錄 用戶登錄分為兩類用戶:管理員和學生用戶??梢酝ㄟ^登錄界面中選定身份登錄,服務 器根據登錄選定的信息選擇數據庫中的數據表進行匹配,用戶名和密碼正確則登錄成功。 3.1.3 圖書查詢 在查詢界面輸入所需查詢書籍的書名和作者名,通過服務器端查詢數據庫返回你所查詢 的書籍信

31、息,書籍信息包括:書名、作者、出版社名、是否被接、剩余本數等信息。 在圖書查詢功能中,運用到了 android 的一個自動完成文本的控件,該控件可以通過 你輸入的查詢信息列出帶有你輸入字的書名,以方便你的檢索。通過此控件,大大的提高了 用戶檢索書籍的效率,同時滿足了模糊查詢的功能,是用戶查詢書籍方便、快捷。 3.1.4 用戶管理 用戶管理模塊是管理員對學生用戶賬號的管理,對于某些特殊原因賬號不使用了,比如: 學生畢業(yè)等原因不再使用賬號的問題,管理員有權利對這類賬號進行刪除,同時可以學生用 戶的用戶名查詢學生用戶的信息。 3.1.5 圖書管理 這個功能也只有管理員身份才能擁有,管理員通過此功能,

32、可以對圖書進行增加、刪出 功能。 通過這個模塊,管理員可以對新進的圖書進行添加處理,并能實時發(fā)布新增書籍。對于 刪除功能,管理員可以把一些已經下架,不再外借的書籍進行刪除,以便造成不必要的麻煩。 3.2 后臺管理 后臺服務器端的任務是根據客戶端送發(fā)送過來的請求,根據客戶端不同功能模塊,通過 檢索數據庫不同表格,把檢索結果返回給客戶端顯示給以用戶,其基本流程圖如下: 圖 3.2 后臺服務器端流程圖 3.2.1 注冊管理 注冊用戶提交:向服務器提交用戶注冊的信息,同時更新到數據庫。 注冊管理是后臺的一個重要內容,注冊只提供學生用戶的注冊,這樣可以保證圖書館用 戶權限的穩(wěn)定和安全。通過注冊用戶,用戶

33、才能享受來自手機客戶端的所有功能。通過手機 客戶端注冊用戶,來作為以后通過手機客戶端登錄圖書館管理系統(tǒng)的唯一身份認證。 3.2.2 登錄管理 登錄管理:根據你登錄的信息向服務器發(fā)送請求,然后和數據庫信息進行對比,來確認 用戶登錄的成功與否。 登錄時候,首先你必須選定你的登錄身份,是以學生用戶還是管理員身份登錄,根據你 選擇的不同身份,服務器向不同的數據庫表來核對信息,以通過對用戶信息的核對,以確定 所登錄的賬號密碼是否正確。 3.2.3 圖書查詢管理 圖書查詢管理主要通過圖書的幾個關鍵信息進行查詢,根據圖書名字和圖書作者向數據 庫提交信息進行條件檢索。通過輸入信息的檢索,返回檢索書籍的基本信息

34、,比如:圖書名 字、圖書作者、出版社名、是否被借、剩余數量等基本信息。 3.2.4 用戶管理 后臺的用戶管理,是處理管理員對有特殊情況的學生用戶和查詢特定學生用戶的服務, 是與數據庫進行數據更新與交互的服務。 3.2.5 圖書管理 后臺的圖書管理,是處理管理員把新書添加到書籍數據庫表的服務,通過添加到數據庫 表,學生用戶才能在書籍查詢功能中查詢到新更新的書籍信息。同時,對于不再外借的書籍 從數據庫刪除,以此來更新數據庫中的書籍名稱。 第第 4 章章 數據庫結構設計數據庫結構設計 4.1 服務器端數據庫設計 采用的是 oracle 數據庫。在本系統(tǒng)中采用了簡易版的 oracle,即數據庫的名字為

35、 oracle xe,首先要解決的是在該數據庫里某個用戶下創(chuàng)建表。 首先配置 oracle 數據庫,步驟如下: (1) 以 oracle 管理員身份進入 oracle,在終端輸入的命令為:sqlplus /as sysdba; (2) 啟動 oracle,在終端輸入的命令為:startup; (3) 創(chuàng)建新的用戶,在終端的命令為:先以管理員身份登錄數據庫,然后創(chuàng)建新的用戶 的命令為: create user liuyujuan identified by liuyujuan; grant resource,connect to liuyujuan; 所創(chuàng)建的用戶賬號和密碼分別為:liuyuju

36、an,liuyujuan; (4)然后以 liuyujuan 用戶登錄,命令為:sqlplus liuyujuan/liuyujuan。 在賬戶 liuyujuan 下創(chuàng)建數據表,以滿足圖書館管理的日常需要,表格名稱分別為: lib_admin,lib_user,lib_books,lib_ret,各個數據表的儲存的信息分別為:管理員信息、普 通用戶信息、書籍信息、書籍外借信息表。 4.1.1 數據庫邏輯結構設計 在需求分析階段已完成該系統(tǒng)所有的數據分析。根據該階段所建立的概念模型,已經得 出滿足系統(tǒng)設計要求的幾個關系描述,該階段的主要工作就是把前一階段的成果轉化為具體 的數據庫。 管理員用戶

37、有用戶名和密碼兩個屬性,通過這兩個屬性來確定管理員用戶的身份是否合 法,其中 id 為主鍵,其 e-r 圖如下: 圖 4.1 管理員 e-r 圖 學生用戶有用戶名、密碼身份證號、入學年份、性別、所在學院名稱等屬性,通過這些 屬性,來確認學生信息表的信息,其中主鍵為 id,其 e-r 圖如下: 圖 4.2 學生用戶 e-r 圖 書籍信息表,是用來存儲書籍的基本信息,其數星星包括書名、作者名、書籍位置、出 版社名稱、所屬科目、是否借出、最大借閱時間等,其中自動分配的 id 和書名作為聯(lián)合主 鍵,其 e-r 圖如下: 圖 4.3 書籍信息 e-r 圖 外借書籍信息表是用來存儲外借書籍的有關信息,通過

38、此表格,來獲取該外借書籍的基 本狀態(tài),其屬性有書籍編號、書籍名、書籍作者、最大外借時間、實際外借時間、外借時間、 借閱者 id,其 e-r 圖如下: 圖 4.4 書籍外借信息 e-r 圖 對于各個實體之間的關系 e-r 圖如下: 圖 4.5 實體關系圖 4.1.2 數據庫物理結構設計 依據數據庫的原理,并結合以上 e-r 圖,經過轉化,即可進行數據庫的物理設計?;?以上數據庫的邏輯設計,考慮程序設計的簡易性,同時考慮題目的時間,該系統(tǒng)的數據庫采 用 oracle 簡易版本建立一個數據庫,在其下創(chuàng)建 4 個數據表,其結構分別如下各表: 表 4-1 數據表清單 表名說明 管理員用戶表用于存儲管理

39、員信息表格 普通用戶表用于存儲普通用戶信息表格 書籍信息表用于存儲書籍基本信息表格 書籍外借信息表用于儲存外借書籍的基本信息 表 4-2 管理員用戶信息表 字段名數據類型長度主鍵備注 id自動編號10是 由數據庫 sequence 自動 生成 adminnamevarchar250否管理員的登錄賬號 passwordvarchar250否管理員登錄的密碼 表 4-3 普通用戶信息表 字段名數據類型長度主鍵備注 id自動編號10是 由數據庫 sequence 自動 生成 usernamevarchar250否唯一標識用戶,不可缺 passwordvarchar250否普通用戶用戶登錄密碼 ind

40、entityidvarchar2100否用戶注冊的身份證號 yearvarchar250否用戶入學年份 gendervarchar230否用戶性別 collegevarchar250否用戶所在學院 表 4-4 書籍信息表 字段名數據類型長度主鍵備注 id自動編號10 聯(lián)合主 鍵 由數據庫 sequence 自動 生成 booknamevarchar250 聯(lián)合主 鍵 書籍名稱 bookauthorvarchar250否書籍作者名 phnamevarchar250否出版社名稱 locationvarchar260否所在位置 categoryvarchar280否所屬科目 statusvarcha

41、r220否書籍狀態(tài) renttimevarchar220否最大借閱時間 表 4-5 外借書籍信息表 字段名數據類型長度主鍵備注 idvarchar210是由數據庫自動生成 book_datevarchar250否外借時間 act_ret_datevarchar250否實際的外借時間 exp_ret_datevarchar250否最大的外借時間 book_idvarchar210否書籍編號 booknamevarchar250否書籍名字 authornamevarchar250否書籍作者名 user_idvarchar210否借閱者 id 第第 5 章章 模塊開發(fā)及編碼實現(xiàn)模塊開發(fā)及編碼實現(xiàn) 5

42、.1 服務器端的設計-搭建 java web 服務器 本軟件是 c/s 結構的系統(tǒng),因此要先搭建服務器端,利用 java ee 中的 servlet 來提供服 務,并將其部署在 tomcat 下。需要解決的是創(chuàng)建不同的 servlet 來提供不同的服務。 web 服務的名稱:libraryservice 在 myeclipse 中新建一個 web project,取名為 libraryservice,其結構如下圖: 圖 5.1 服務器端代碼結構 5.2 連接數據庫模塊 com.briup.jdbc 是 cvm 模式中的低層,數據庫層,包中的類是用來連接數據庫和操作數 據庫的,其中 jdbcco

43、nnectionfactory.java 用來連接數據庫的,連接數據庫的三個變量為: private static string url; private static string username; private static string userpwd; 連接數據庫需要 url,username,userpassword 這三個值,而這三個值放入到 jdbcinfo 中,通過 properties 來獲取,部分代碼如下: properties pro = new properties(); pro.load(new fileinputstream(e:myeclipse6.5 wor

44、kspace libraryservicesrccombriupjdbc jdbcinfo); url=pro.getproperty(“url”); username = pro.getproperty(“username”); userpwd = pro.getproperty(“userpwd”); new oracle.jdbc.driver.oracledriver(); connection conn = drivermanager.getconnection(url,username,userpwd); 5.3 服務器功能模塊 com.briup.dao 是 cvm 模式中的 d

45、ao 層,為 service 提供服務,封裝對數據庫的操作的方 法。 com.briup.servlet 包中就各個不同的 servlet 類,其具體情況如下: 5.3.1 注冊模塊 提供用戶注冊 servlet 為 registerservlet,重寫其 dopost()和 doget()方法,該 servlet 是用 來處理學生用戶注冊請求。注冊的參數有 username、password、indentityid、year、gender、college,其 url 為: :8088/libraryservice/servlet/registerservl

46、et 部分代碼如下: printwriter out = response.getwriter(); string username = request.getparameter(username); string password = request.getparameter(password); string indentityid = request.getparameter(indentityid); string year = request.getparameter(year); string gender = request.getparameter(gender); strin

47、g college = request.getparameter(college); librarydao dao =new librarydaoimpl(); try user user1=(user)dao.findbyusername(username); if(user1!=null) xml=makexml.makexml(該用戶名已存在了,false); else user user=new user(); user.setusername(username); user.setpassword(password); user.setindentityid(indentityid)

48、; user.setyear(year); user.setgender(gender); user.setcollege(college); dao.save(user); xml=makexml.makexml(恭喜您注冊成功了,true); 5.3.2 登錄模塊 提供用戶登錄的 servlet 為 loginservlet,重寫其 dopost()和 doget()方法,該 servlet 是用 來處理學生用戶和管理員登錄的請求。登錄的參數有 username、password,其 url 為: :8088/libraryservice/servlet

49、/loginservlet 部分代碼如下: printwriter out = response.getwriter(); system.out.println(welcome clientlogin); string xml=null; /獲得帳號 string flag=request.getparameter(flag).trim(); string username = request.getparameter(username).trim(); string password= (string)request.getparameter(password).trim(); librar

50、ydao dao=new librarydaoimpl(); if(flag.equals(normal) if(username!=null) try com.briup.pojo.user user=dao.findbyusername(username); if(user!=null) if(user.getpassword().equalsignorecase(password) xml=makexml.makexml(恭喜您登錄成功了,true); else xml=makexml.makexml(密碼不對,false); else xml=makexml.makexml(用戶名不正

51、確,false); catch (exception e) / todo auto-generated catch block system.out.println(網絡異常); out.println(); out.println(網絡異常); else if(flag.equals(admin) try admin admin=dao.findbyadminname(username); if(admin!=null) if(admin.getpassword().equals(password) xml=makexml.makexml(恭喜您登錄成功了,true); else xml=m

52、akexml.makexml(密碼不對,false); else xml=makexml.makexml(用戶名不存在,false); catch (exception e) / todo auto-generated catch block e.printstacktrace(); 5.3.3 書籍查詢模塊 提供特定書籍查詢 servlet 為 findbookservlet,重寫其 dopost()和 doget()方法,該 servlet 是用來處理學生用戶查詢特定書籍的請求。查詢書籍參數有 bookname、bookauthor,其 url 為: :

53、8088/libraryservice/servlet/findbooksservlet 部分代碼如下: string bookname=request.getparameter(bookname).trim(); string authorname=request.getparameter(authorname).trim(); string status=request.getparameter(status).trim(); /status 為yes表示被借出了 為no表示沒被借出沒 system.out.println(-hello i am in findbooksservlet-)

54、; string xml=null; list list=null; librarydao dao=new librarydaoimpl(); if(status.equals() try list=dao.findbookbyname(bookname, authorname); if(list!=null) xml=makexml.makexml(list,list.size()+); else xml=makexml.makexml(list,抱歉圖書館沒有該書了); catch (exception e) / todo auto-generated catch block e.prin

55、tstacktrace(); else try list=dao.findbookbyname(bookname, authorname,status); if(list!=null) xml=makexml.makexml(list,list.size()+); else xml=makexml.makexml(list,抱歉圖書館沒有該書了); catch (exception e) / todo auto-generated catch block e.printstacktrace(); 5.3.4 特定用戶查詢模塊 提供特定用戶查詢 servlet 為 finduserservlet

56、,重寫其 dopost()和 doget()方法,該 servlet 是用來處理管理員用戶查詢特定學生用戶信息的請求。管理員查詢特定學生用戶參數有 username,其 url 為: :8088/libraryservice/servlet/finduserservlet 部分代碼如下: printwriter out = response.getwriter(); string username = request.getparameter(username).trim(); string xml=null; librarydao dao=new libr

57、arydaoimpl(); try com.briup.pojo.user user=dao.findbyusername(username); if(user!=null) try xml=makexml.makexml(user,); catch (exception e) / todo auto-generated catch block e.printstacktrace(); else try xml=makexml.makexml(密碼不對,false); catch (exception e) / todo auto-generated catch block e.printst

58、acktrace(); catch (dataaccessexception e) / todo auto-generated catch block e.printstacktrace(); 5.3.5 查詢所有用戶模塊 提供所有用戶查詢servlet為findalluserservlet,重寫其dopost()和doget()方法,該servlet 是用來處理管理員用戶查詢所有學生用戶信息的請求。查詢所有學生用戶信息不需要提供任 何參數,只需要點擊查詢所有按鈕便可以查詢出所有,其url為: :8088/libraryservice/servlet/fin

59、dalluserservlet 部分代碼如下: printwriter out = response.getwriter(); string xml=null; list list=null; librarydao dao=new librarydaoimpl(); try list=dao.findalluser(); xml=makexml.makexml(list,); catch (exception e) / todo auto-generated catch block try xml=makexml.makexml(網絡異常,false); catch (exception e1

60、) / todo auto-generated catch block e1.printstacktrace(); e.printstacktrace(); 5.3.6 添加書籍模塊 提供管理員添加書籍servlet為savebookservlet,重寫其dopost()和doget()方法,該servlet 是用來處理管理員用戶對新書籍進行添加上架的請求。對需要上架處理的書籍需要提供參數 有書籍名、書籍作者、書籍所屬科目、書籍所在位置,書籍出版社名字、最大借閱時間等參 數,其url為: :8088/libraryservice/servlet/savebo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論