通訊錄信息管理系統(tǒng)數(shù)據(jù)庫設計_第1頁
通訊錄信息管理系統(tǒng)數(shù)據(jù)庫設計_第2頁
通訊錄信息管理系統(tǒng)數(shù)據(jù)庫設計_第3頁
通訊錄信息管理系統(tǒng)數(shù)據(jù)庫設計_第4頁
通訊錄信息管理系統(tǒng)數(shù)據(jù)庫設計_第5頁
已閱讀5頁,還剩50頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、鄭州工業(yè)應用技術(shù)學院課程設計報告題目: 通訊錄信息管理系統(tǒng)數(shù)據(jù)庫設計 姓 名: 院 (系): 信息工程學院 專業(yè)班級: 12 級計算機科學與技術(shù) 學 號: 指導教師: 成 績: 時間: 2015 年 9 月 8 日至 2015 年 9 月 18 日摘 要隨著計算機技術(shù)的不斷發(fā)展,網(wǎng)絡數(shù)據(jù)庫技術(shù)在社會生活中日益重要起來,Web開發(fā)作為一種比較流行的技術(shù)也開始得到了很多人的支持和喜愛。在現(xiàn)代社會中,數(shù)據(jù)庫在網(wǎng)絡技術(shù)中已經(jīng)成為了不可分割的重要組成部分。在網(wǎng)絡技術(shù)的日趨發(fā)展中,也帶動了一系列的新鮮事物出現(xiàn)。通訊錄信息管理系統(tǒng)就是在這一社會背景下出現(xiàn)的。本系統(tǒng)使用了MySQL數(shù)據(jù)庫技術(shù)、JSP技術(shù)、Ja

2、va語言、MyEclipse開發(fā)工具,以及Tomcat服務器等進行了系統(tǒng)的實現(xiàn)。本系統(tǒng)具有快速存儲聯(lián)系人大量信息、多條件檢索聯(lián)系人信息、修改個人資料、添加刪除聯(lián)系人等功能。另外,本系統(tǒng)是利用數(shù)據(jù)庫技術(shù)在網(wǎng)絡上建立的,在網(wǎng)絡越來越便利的,我們可以隨時隨地的在線查找、更新通訊錄,同時也可以降低通訊錄在移動設備端丟失的概率。關鍵詞:通訊錄信息管理系統(tǒng);MySQL;數(shù)據(jù)庫目 錄TOC o 1-3 h u 1 概述 PAGEREF _Toc436843477 h 11.1 系統(tǒng)背景分析 PAGEREF _Toc436843478 h 11.2 設計的目的和意義 PAGEREF _Toc436843479

3、 h 11.3 國內(nèi)外通訊錄發(fā)展現(xiàn)狀 PAGEREF _Toc436843480 h 11.3.1 國內(nèi)通訊錄發(fā)展現(xiàn)狀 PAGEREF _Toc436843481 h 11.3.2 國外通訊錄發(fā)展現(xiàn)狀 PAGEREF _Toc436843482 h 21.4 系統(tǒng)設計思想 PAGEREF _Toc436843483 h 21.5 課程設計結(jié)構(gòu) PAGEREF _Toc436843484 h 22 系統(tǒng)需求分析 PAGEREF _Toc436843485 h 32.1 系統(tǒng)功能需求分析 PAGEREF _Toc436843486 h 32.1.1 總體功能需求分析 PAGEREF _Toc436

4、843487 h 32.1.2 系統(tǒng)前臺功能需求 PAGEREF _Toc436843488 h 42.1.3 系統(tǒng)后臺功能需求 PAGEREF _Toc436843489 h 42.1.4 數(shù)據(jù)流圖 PAGEREF _Toc436843490 h 42.2 數(shù)據(jù)需求分析 PAGEREF _Toc436843491 h 52.2.1 數(shù)據(jù)分析 PAGEREF _Toc436843492 h 53 數(shù)據(jù)庫概念結(jié)構(gòu)設計 PAGEREF _Toc436843493 h 64 數(shù)據(jù)庫邏輯結(jié)構(gòu)設計 PAGEREF _Toc436843494 h 84.1 把E-R圖轉(zhuǎn)化為關系模式 PAGEREF _To

5、c436843495 h 84.2 實體間的聯(lián)系 PAGEREF _Toc436843496 h 84.3 關系規(guī)范化 PAGEREF _Toc436843497 h 85 物理結(jié)構(gòu)設計 PAGEREF _Toc436843498 h 95.1 表結(jié)構(gòu)的設計 PAGEREF _Toc436843499 h 95.2 視圖的設計 PAGEREF _Toc436843500 h 106 數(shù)據(jù)庫的實現(xiàn) PAGEREF _Toc436843501 h 116.1 創(chuàng)建數(shù)據(jù)庫 PAGEREF _Toc436843502 h 116.2 創(chuàng)建表和主鍵約束 PAGEREF _Toc436843503 h 1

6、16.3 創(chuàng)建約束 PAGEREF _Toc436843504 h 126.4 輸入數(shù)據(jù) PAGEREF _Toc436843505 h 136.5 創(chuàng)建索引 PAGEREF _Toc436843506 h 146.6 創(chuàng)建視圖 PAGEREF _Toc436843507 h 147 應用系統(tǒng)的實現(xiàn) PAGEREF _Toc436843508 h 157.1 功能的實現(xiàn) PAGEREF _Toc436843509 h 15心得體會 PAGEREF _Toc436843510 h 29參考文獻 PAGEREF _Toc436843511 h 30附 錄 PAGEREF _Toc436843512

7、 h 311 概述1.1 系統(tǒng)背景分析隨著改革開發(fā)的進一步深入,科學技術(shù)的發(fā)展越來越開,也逐漸改變著人們的日常生活。固定電話與手機已經(jīng)替代了曾經(jīng)的郵件,人與人之間的聯(lián)系也愈加頻繁和緊密,電話中的信息也涉及到了生活中的方方面面。移動通信逐漸成為通信領域的主流。在這種環(huán)境下,人們可以在任何地方、任何時間享受自由通信,通話質(zhì)量幾乎不受電磁波等外界環(huán)境的影響,而高效便捷的通訊錄是保持良好通信的基礎。傳統(tǒng)的通訊錄是把聯(lián)系人信息寫到紙質(zhì)材料上,這種通訊錄攜帶不方便,而且修改、查詢都會增加時間成本。還有一種是名片夾通訊錄,這種通訊錄也有較多的缺點。名片夾容量有限,不宜批量、長時間保存?,F(xiàn)在比較流行的通訊錄是

8、我們的手機電話簿。手機容量較大,而且可以長時間保存。但是手機存儲界面單一,存儲單元的信息也較少。一旦手機丟失或損壞,通訊錄也就無法找回。因此,開發(fā)一個免費的、功能豐富的基于網(wǎng)絡存儲的通訊錄管理系統(tǒng)是非常必要的。1.2 設計的目的和意義現(xiàn)在社會網(wǎng)絡隨處可見。我們可以利用數(shù)據(jù)庫技術(shù)在網(wǎng)絡上建立一個WEB服務系統(tǒng)。這種系統(tǒng)能夠固定存儲在網(wǎng)絡服務器上,專門用于記錄用戶聯(lián)系人的信息。隨著網(wǎng)絡的普及和服務需求的增長,現(xiàn)如今的移動設備功能也是越來越多,而且大部分都支持互聯(lián)網(wǎng)的接入,這樣我們便可以隨時隨地的在線查找、更新通訊錄,并且在此基礎上還可以在IOS、Android等系統(tǒng)上開發(fā)移動客戶端。移動設備上的客

9、戶端與網(wǎng)頁上更新存儲相比,不僅可以提高信息檢索的速度,而且沒有網(wǎng)絡復雜環(huán)境的影響。此外客戶端還會定期更新信息,保持手機和網(wǎng)絡信息的同步。1.3 國內(nèi)外通訊錄發(fā)展現(xiàn)狀1.3.1 國內(nèi)通訊錄發(fā)展現(xiàn)狀國內(nèi)的有社交短信的Kik、QQ通訊錄、360通訊錄等。移動通訊錄是一種利用移動互聯(lián)網(wǎng)來實現(xiàn)通訊錄信息同步更新和備份的服務。這種通訊錄有:友錄通訊錄、火種通訊錄等。基于手機和網(wǎng)站的同步通訊錄有人人同步免費版、QQ手機同步。總的來看,這些通訊錄功能豐富,多智能化。有的還有通訊、留言等功能,為個人通訊提供了方便。1.3.2 國外通訊錄發(fā)展現(xiàn)狀國外的網(wǎng)絡通信技術(shù)發(fā)展的較為成熟,目前各類產(chǎn)品的發(fā)展、通訊方式的豐富

10、使得通訊錄產(chǎn)品以不同的方式涌現(xiàn)出來,有基于手機的、有基于個人電腦的、有無線方式接入的、有WEB方式接入的等等。例如目前主流的通訊錄應用主要有移動PIM,PIM業(yè)務是指客戶將移動終端或其他客戶端中的信息以無線或有線方式與網(wǎng)絡服務器保持一致,并能用多種終端、多種接入手段來管理個人信息的業(yè)務。PIM業(yè)務為用戶提供了統(tǒng)一、便捷查詢通訊錄、安排等個人信息的服務,使用戶可以使用移動終端、計算機、PDA、網(wǎng)絡服務器設備,通過互聯(lián)網(wǎng)、移動網(wǎng)絡方式來管理或同步通訊錄、日程安排、事件提醒、子郵件、鈴聲圖片、資料文檔等個人信息。1.4 系統(tǒng)設計思想對于典型的數(shù)據(jù)庫管理系統(tǒng),尤其是通訊錄這樣的存儲信息特別大的網(wǎng)絡管理

11、系統(tǒng),必須要滿足使數(shù)據(jù)庫方便、操作數(shù)據(jù)靈活等要求。本系統(tǒng)在設計時應滿足以下幾個目標:(1)采用良好的人機交互界面設計模式,界面?zhèn)€性、友好,信息查詢靈活、方便,數(shù)據(jù)存儲準確、安全可靠;(2)快速存儲聯(lián)系人的大量信息;(3)用戶可以多條件進行信息檢索;(4)用戶登錄后臺系統(tǒng)后可以修改自己的基本資料;(5)實現(xiàn)添加、刪除聯(lián)系人類別的功能;(6)實現(xiàn)聯(lián)系人類別排行功能,以方便用戶了解聯(lián)系人信息;(7)對輸入的數(shù)據(jù),系統(tǒng)進行嚴格的數(shù)據(jù)檢驗,并有合理的信息提示,盡可能排除人為錯誤。1.5 課程設計結(jié)構(gòu)本課程設計內(nèi)容包括:概述、需求分析、概念結(jié)構(gòu)設計、數(shù)據(jù)庫邏輯結(jié)構(gòu)設計、物理結(jié)構(gòu)設計、數(shù)據(jù)庫的實現(xiàn)以及應用系

12、統(tǒng)的實現(xiàn)等等。著重描述了通訊錄的組成與結(jié)構(gòu)以及數(shù)據(jù)庫的設計,闡述了系統(tǒng)的設計方案、實現(xiàn)方法以及所采用的開發(fā)工具和相關技術(shù),另外,重點剖析了部分環(huán)節(jié)的開發(fā)過程。2 系統(tǒng)需求分析系統(tǒng)關鍵技術(shù)確定后,需要對項目的功能需求進行詳細的需求分析,清楚地了解到該項目所包含的功能。需求分析報告是對要解決的問題進行詳細的分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),要得到什么數(shù)據(jù),估計軟件風險和評估項目代價,是軟件生存周期中的最關鍵的一步,也是最困難的一步,是建立在軟件開發(fā)的基礎上。2.1 系統(tǒng)功能需求分析2.1.1 總體功能需求分析經(jīng)過對各種通訊錄系統(tǒng)的考察、分析,要求本系統(tǒng)具有以下功能:(1)統(tǒng)一友好的操作

13、界面,保證系統(tǒng)的易用性,方便用戶的操作;(2)具備聯(lián)系人信息的顯示功能,方便用戶及時查看聯(lián)系人信息;(3)聯(lián)系人信息管理功能,用戶可以添加、刪除聯(lián)系人信息;(4)個性化的聯(lián)系人分組,方便用戶分類檢索聯(lián)系人信息;(5)全面的后臺管理功能,以方便管理員對用戶信息進行管理。系統(tǒng)總體功能結(jié)構(gòu)圖如圖2.1。圖2.1系統(tǒng)管理功能結(jié)構(gòu)圖2.1.2 系統(tǒng)前臺功能需求(1)首頁信息顯示開發(fā)的信息,包括:系統(tǒng)開發(fā)開發(fā)環(huán)境、主要采用的技術(shù)、系統(tǒng)開發(fā)時間(2)分組信息可以查看在當前數(shù)據(jù)庫通訊錄系統(tǒng)中的總的分組情況。(3)聯(lián)系人信息可以查看當前權(quán)限下通訊錄中所有的聯(lián)系人的全部信息,并且可以按照不同的條件(比如姓名、出生

14、日期等),對聯(lián)系人進行查找,并且可以查看聯(lián)系人的具體信息(包括個人照片等)。(4)后臺登錄可以點擊后臺登錄,對當前用戶權(quán)限下的通訊錄進行后臺管理。2.1.3 系統(tǒng)后臺功能需求(1)分組信息管理包括添加分組信息和分組信息管理兩個模塊,可以添加分組和對已經(jīng)建立的分組進行編輯和刪除。(2)聯(lián)系人信息管理包括添加聯(lián)系人和聯(lián)系人信息管理兩個模塊,可以新增加聯(lián)系人和對已經(jīng)記錄的聯(lián)系人信息進行編輯和刪除。(3)系統(tǒng)管理包括修改密碼和退出系統(tǒng)兩個模塊,可以完成對系統(tǒng)的密碼進行修改和退出本系統(tǒng)兩個操作。2.1.4 數(shù)據(jù)流圖(1)對于本系統(tǒng)的前臺頁面數(shù)據(jù)流圖如圖2.2所示。圖2.2前臺頁面數(shù)據(jù)流圖(2)對于本系統(tǒng)

15、的后臺登錄的數(shù)據(jù)流圖如圖2.3所示。圖2.3后臺登錄的系統(tǒng)流圖2.2 數(shù)據(jù)需求分析2.2.1 數(shù)據(jù)分析對于本系統(tǒng)的數(shù)據(jù)庫的需求而言,由于其主要是用于信息的存儲、更新和查詢等。因此,需要分析該系統(tǒng)功能所隱含的對數(shù)據(jù)應用的需求,從而確定數(shù)據(jù)庫的結(jié)構(gòu)。(1)對用戶信息建立數(shù)據(jù)表,其中的數(shù)據(jù)項包括登錄賬號、登錄密碼等。(2)對分組信息建立數(shù)據(jù)表,其中的數(shù)據(jù)項包括分組編號、分組名等。(3)對聯(lián)系人信息建立數(shù)據(jù)表,其中的數(shù)據(jù)項包括所在分組、姓名、性別、出生年月、身份證號、郵編、家庭電話、手機號、qq、郵箱地址、職業(yè)、公司名稱、地址、個人照片、備注信息等。3 數(shù)據(jù)庫概念結(jié)構(gòu)設計數(shù)據(jù)庫概念設計是整個數(shù)據(jù)庫設計

16、的關鍵。根據(jù)用戶需求設計數(shù)據(jù)庫的概念,數(shù)據(jù)模型。我們首先要將現(xiàn)實世界中的客觀對象首先抽象為不依賴任何具體機器的信息結(jié)構(gòu),這種信息結(jié)構(gòu)不是DBMS支持的數(shù)據(jù)模型,而是概念級別的模型。然后再把概念模型轉(zhuǎn)換為具體機器上DBMS支持的數(shù)據(jù)模型。概念模型是對現(xiàn)實世界的抽象和概括。它真實,充分地反映了現(xiàn)實世界中的事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求。由于其簡潔、明晰、獨立于機器,很容易理解,因此可以用概念模型和不熟悉計算機的用戶交換意見,使用戶能積極參與數(shù)據(jù)庫的設計工作。概念模型易于變動,還很容易向各種數(shù)據(jù)模型轉(zhuǎn)換。(1)管理員實體-屬性圖。圖3.1 管理員實體-屬性圖(2)用戶實體-屬性圖。

17、圖3.2 用戶實體-屬性圖(3)分組實體-屬性圖。圖3.3 分組實體-屬性圖(4)聯(lián)系人實體-屬性圖。圖3.4 聯(lián)系人實體-屬性圖(5)數(shù)據(jù)庫總體設計詳細E-R圖圖3.5 數(shù)據(jù)庫總體設計詳細實體-關系圖4 數(shù)據(jù)庫邏輯結(jié)構(gòu)設計4.1 把E-R圖轉(zhuǎn)化為關系模式根據(jù)第三章概念結(jié)構(gòu)設計得出的E-R圖,我們可以得出系統(tǒng)中涉及的主要實體有四個,其結(jié)構(gòu)如下:(1)管理員(用戶名,密碼,權(quán)限)(2)用戶(用戶名,密碼,權(quán)限)(3)分組(分組號,分組名,所屬權(quán)限)(4)聯(lián)系人(聯(lián)系人ID,所屬分組,姓名,性別,生日,身份證號碼,郵編,家庭電話,移動電話,QQ,電子郵件,職業(yè),公司名稱,住址,照片,備注,所屬權(quán)限

18、)4.2 實體間的聯(lián)系數(shù)據(jù)庫通訊錄信息管理系統(tǒng)實體之間有6個聯(lián)系,其關系如下:(1)管理員與用戶的關系是1:N的關系;(2)管理員與分組的關系是1:N的關系;(3)管理員與聯(lián)系人的關系是1:N的關系;(4)用戶與分組的關系是1:N的關系;(5)用戶與聯(lián)系人的關系是1:N的關系;(6)分組與聯(lián)系人的關系是1:N的關系。4.3 關系規(guī)范化(1)確定數(shù)據(jù)依賴;(2)對于各關系模式間的數(shù)據(jù)依賴進行極小化處理,消除冗余關系;(3)按照數(shù)據(jù)依賴與規(guī)范化理論對關系模式逐一進行分析;(4)按照范式優(yōu)化每一關系模式,對關系模式的進一步分解或合并;(5)最終規(guī)范到3NF范式為:用戶表(用戶名,密碼,權(quán)限)分組表(

19、分組號,分組名,所屬權(quán)限)聯(lián)系人信息表(聯(lián)系人ID,所屬分組,姓名,性別,生日,身份證號碼,郵編,家庭電話,移動電話,QQ,電子郵件,職業(yè),公司名稱,住址,照片,備注,所屬權(quán)限)5 物理結(jié)構(gòu)設計5.1 表結(jié)構(gòu)的設計(1)管理員和用戶表結(jié)構(gòu)設計。表5.1 管理員表結(jié)構(gòu)設計中文名字段名數(shù)據(jù)類型顯示寬度是否為空是否主鍵約束條件默認值用戶名usernamevarchar20否是不允許為空無登錄密碼passwordvarchar20否否默認約束888888權(quán)限copyrightint10否否不允許為空無(2)用戶表結(jié)構(gòu)設計表5.2 用戶表結(jié)構(gòu)設計中文名字段名數(shù)據(jù)類型顯示寬度是否為空是否主鍵約束條件默認值

20、用戶名usernamevarchar20否是不允許為空無登錄密碼passwordvarchar20否否默認約束888888權(quán)限copyrightint10否否不允許為空無(3)分組表結(jié)構(gòu)設計表5.3 分組表結(jié)構(gòu)設計中文名字段名數(shù)據(jù)類型顯示寬度是否為空是否主鍵約束條件默認值分組號groupClassIdint11否是不允許為空無分組名groupClassNamevarchar20是否允許為空無所屬權(quán)限groupCopyRightint11否否不允許為空無(4)聯(lián)系人表結(jié)構(gòu)設計表5.4 聯(lián)系人表結(jié)構(gòu)設計中文名字段名數(shù)據(jù)類型顯示寬度是否為空是否主鍵約束條件默認值聯(lián)系人idmemberIdint11否

21、是不允許為空無所屬分組groupObjint11是否外鍵約束無姓名namevarchar20是否允許為空無性別sexvarchar2是否默認約束男出生年月birthDatedate10是否允許為空無身份證號cardNumbervarchar30是否允許為空無郵編postcodevarchar20是否檢查約束無家庭電話homeTelephonevarchar20是否允許為空無移動電話mobilePhonevarchar20是否檢查約束無QQqqvarchar20是否允許為空無續(xù)表5.4 聯(lián)系人表結(jié)構(gòu)設計電子郵件emailvarchar40是否檢查約束無職業(yè)zhiyevarchar20是否允許為空

22、無公司名稱gongsimingchengvarchar20是否允許為空無住址addressvarchar100是否允許為空無照片photovarchar50是否允許為空無注釋memovarchar200是否允許為空無所屬權(quán)限copyrightint11否否不允許為空無5.2 視圖的設計(1)GroupClass視圖作用:方便查對分組進行操作。(2)MemberInfo視圖作用:方便對聯(lián)系人的信息進行操作。6 數(shù)據(jù)庫的實現(xiàn)6.1 創(chuàng)建數(shù)據(jù)庫-創(chuàng)建數(shù)據(jù)庫addressinfodbuse mastergoif exists(select * from sysdatabases where name

23、= addressinfodb) drop database addressinfodb Exec xp_cmdshell mkdir D:project create database addressinfodbuse addressinfodbgo6.2 創(chuàng)建表和主鍵約束(1)創(chuàng)建用戶表及管理員表DROP TABLE IF EXISTS admin;CREATE TABLE admin ( username varchar(20) NOT NULL, password varchar(20) DEFAULT NULL, copyright int(10) NOT NULL, PRIMARY

24、 KEY (username) ENGINE=InnoDB DEFAULT CHARSET=utf8;(2)創(chuàng)建分組表DROP TABLE IF EXISTS t_groupclass;CREATE TABLE t_groupclass ( groupClassId int(11) NOT NULL AUTO_INCREMENT, groupClassName varchar(20) DEFAULT NULL, groupCopyRight int(11) NOT NULL, PRIMARY KEY (groupClassId) ENGINE=InnoDB AUTO_INCREMENT=4 D

25、EFAULT CHARSET=utf8;(3)創(chuàng)建聯(lián)系人表DROP TABLE IF EXISTS t_memberinfo;CREATE TABLE t_memberinfo ( memberId int(11) NOT NULL AUTO_INCREMENT, groupObj int(11) DEFAULT NULL, name varchar(20) DEFAULT NULL, sex varchar(2) DEFAULT NULL, birthDate varchar(10) DEFAULT NULL, cardNumber varchar(30) DEFAULT NULL, pos

26、tcode varchar(20) DEFAULT NULL, homeTelephone varchar(20) DEFAULT NULL, mobilePhone varchar(20) DEFAULT NULL, qq varchar(20) DEFAULT NULL, email varchar(40) DEFAULT NULL, zhiye varchar(20) DEFAULT NULL, gongsimingcheng varchar(20) DEFAULT NULL, address varchar(100) DEFAULT NULL, photo varchar(50) DE

27、FAULT NULL, memo varchar(200) DEFAULT NULL, copyright int(11) NOT NULL, PRIMARY KEY (memberId), KEY FKE439A73350F5638A (groupObj), CONSTRAINT FKE439A73350F5638A FOREIGN KEY (groupObj) REFERENCES t_groupclass (groupClassId) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;6.3 創(chuàng)建約束(1)用戶表的默認約束alter

28、table dbo.adminadd constraint DF_passworddefault(888888) for password(2)創(chuàng)建聯(lián)系人表的外鍵約束alter table dbo. t_memberinfoadd constraint FK_ groupObjforeign key(groupObj)references dbo. t_groupclass (groupClassId)(3)創(chuàng)建聯(lián)系人表的檢查約束alter table dbo.t_memberinfoadd constraint CK_postcodecheck(len(postcode)=6)(4)創(chuàng)建聯(lián)系

29、人表的檢查約束alter table dbo.t_memberinfoadd constraint CK_ emailcheck(email like %)(5)創(chuàng)建聯(lián)系人表的默認約束alter table dbo. t_memberinfoadd constraint DF_sexdefault(男) for sex(6)創(chuàng)建聯(lián)系人表的檢查約束alter table dbo.t_memberinfoadd constraint CK_mobilePhonecheck(len(mobilePhone)=11)6.4 輸入數(shù)據(jù)(1)向用戶表中插入數(shù)據(jù)INSERT INTO admin VALUE

30、S (a, aaaaaa, 1);INSERT INTO admin VALUES (b, bbbbbb, 2);INSERT INTO admin VALUES (c, cccccc, 3);INSERT INTO admin VALUES (d, dddddd, 4);(2)向分組表中插入數(shù)據(jù)INSERT INTO t_groupclass VALUES (1, 家人, 2);INSERT INTO t_groupclass VALUES (2, 朋友, 2);INSERT INTO t_groupclass VALUES (3, 同學, 3);(3)向聯(lián)系人表中插入數(shù)據(jù)INSERT IN

31、TO t_memberinfo VALUES (1, 2, 小芳, 女, 1992-06-09, 610059, 51304122, , 淘寶店主, 小芳服裝店, 四川成都二仙橋, upload/a6508b9b-cd71-4e7f-9600-89c78538f2f4.jpg, 測試, 2);INSERT INTO t_memberinfo VALUES (2, 1, 小王, 男, 2004-06-30, 348899, 7666646,/p>

32、, 5555555, 5555555, 學生, 學校, 農(nóng)村, upload/e40b0640-c1fe-44cb-9971-c1639caee77f.jpg, fifj, 2);INSERT INTO t_memberinfo VALUES (3, 3, 小張, 男, 2005-09-15, 410399372378293262, 473943, 5739583, 434793194, 434793194, 服務員, 餐廳, 小吃街, null, 。, 3);6.5 創(chuàng)建索引(1)創(chuàng)建聯(lián)系人表的索引create index FKE439A73350F5638Aon

33、t_memberinfo(groupObj);6.6 創(chuàng)建視圖(1)創(chuàng)建GroupClass視圖create view GroupClassasselect *from t_groupclass g,admin awhere g. groupCopyRight=a. Copyright(2)創(chuàng)建MemberInfo視圖create view MemberInfoasselect *from t_memberinfo m,admin awhere m. copyright=a. Copyright7 應用系統(tǒng)的實現(xiàn)7.1 功能的實現(xiàn)(1)登錄界面進入系統(tǒng)登錄界面,如圖7.1所示。圖7.1登錄界面

34、/*跳轉(zhuǎn)到登陸界面*/public String view() return login_view;/* 驗證用戶登錄 */public String CheckLogin() AdminDAO adminDAO = new AdminDAO();ActionContext ctx = ActionContext.getContext();if (!adminDAO.CheckLogin(admin) ctx.put(error, .URLEncoder.encode(adminDAO.getErrMessage();return error;ctx.getSession().put(user

35、name, admin.getUsername();return main_view;(2)前臺首頁進入系統(tǒng)的前臺界面,默認進入前臺首頁,顯示系統(tǒng)的開發(fā)環(huán)境、主要使用的技術(shù)、開發(fā)時間等信息。如圖7.2所示。圖7.2系統(tǒng)前臺頁面 數(shù)據(jù)庫通訊錄管理系統(tǒng)-首頁link href=css/index.css rel=stylesheet type=text/css / img src=images/logo.gif /a href=index.jsp首頁a href=GroupClass/GroupClass_FrontQueryGroupClass.action target=OfficeMain分

36、組信息 a href=MemberInfo/MemberInfo_FrontQueryMemberInfo.action target=OfficeMain聯(lián)系人信息 iframe id=frame1 src=desk.jsp name=OfficeMain width=100% height=100% scrolling=yes marginwidth=0 marginheight=0 frameborder=0 vspace=0 hspace=0 王兆安設計 手機a href=login/login_view.action后臺登錄(3)分組信息點擊分組信息可以查看

37、當前通訊錄中所有的分組。如圖7.3所示。圖7.3分組信息/*查詢GroupClass信息*/ public ArrayList QueryGroupClassInfo(int currentPage) Session s = null; try s = HibernateUtil.getSession(); String hql = From GroupClass groupClass where 1=1; Query q = s.createQuery(hql); /*計算當前顯示頁碼的開始記錄*/ int startIndex = (current1) * this.PAGE_SIZE;

38、q.setFirstResult(startIndex); q.setMaxResults(this.PAGE_SIZE); List groupClassList = q.list(); return (ArrayList) groupClassList; finally HibernateUtil.closeSession(); 點擊詳情中查看,可以查看分組的詳細信息。如圖7.4所示。圖7.4分組詳情/*根據(jù)主鍵獲取對象信息*/ public GroupClass GetGroupClassByGroupClassId(int groupClassId) Session s = null;

39、 try s = HibernateUtil.getSession(); GroupClass groupClass = (GroupClass)s.get(GroupClass.class, groupClassId); return groupClass; finally HibernateUtil.closeSession(); (4)聯(lián)系人信息點擊聯(lián)系人信息可以查看當前通訊錄中所有的聯(lián)系人信息,如圖7.5所示。圖7.5聯(lián)系人信息/*函數(shù)功能:查詢所有的MemberInfo記錄*/ public ArrayList QueryAllMemberInfoInfo() Session s =

40、 null; try s = HibernateUtil.getSession(); String hql = From MemberInfo; Query q = s.createQuery(hql); List memberInfoList = q.list(); return (ArrayList) memberInfoList; finally HibernateUtil.closeSession(); 可以輸入條件,對通訊錄中聯(lián)系人進行查找。例如輸入姓名小王,點擊查詢,如圖7.6所示。圖7.6查找聯(lián)系人/*界面層需要查詢的屬性: 所屬分組*/ private GroupClass g

41、roupObj; public void setGroupObj(GroupClass groupObj) this.groupObj = groupObj; public GroupClass getGroupObj() return this.groupObj; /*界面層需要查詢的屬性: 姓名*/ private String name; public void setName(String name) = name; public String getName() return ; /*界面層需要查詢的屬性: 出生日期*/ private String birthDate; publi

42、c void setBirthDate(String birthDate) this.birthDate = birthDate; public String getBirthDate() return this.birthDate; /*界面層需要查詢的屬性: 身份證號*/ private String cardNumber; public void setCardNumber(String cardNumber) this.cardNumber = cardNumber; public String getCardNumber() return this.cardNumber; /*界面層

43、需要查詢的屬性: 家庭電話*/ private String homeTelephone; public void setHomeTelephone(String homeTelephone) this.homeTelephone = homeTelephone; public String getHomeTelephone() return this.homeTelephone; /*界面層需要查詢的屬性: 手機號*/ private String mobilePhone; public void setMobilePhone(String mobilePhone) this.mobileP

44、hone = mobilePhone; public String getMobilePhone() return this.mobilePhone; 可以點擊查看,查看聯(lián)系人的詳細信息,如圖7.7所示。圖7.7聯(lián)系人詳情/*查詢MemberInfo信息*/ public ArrayList QueryMemberInfoInfo(GroupClass groupObj,String name,String birthDate,String cardNumber,String homeTelephone,String mobilePhone,int currentPage) Session s

45、 = null; try s = HibernateUtil.getSession(); String hql = From MemberInfo memberInfo where 1=1; if(null != groupObj & groupObj.getGroupClassId()!=0) hql += and memberInfo.groupObj.groupClassId= + groupObj.getGroupClassId(); if(!name.equals() hql = hql + and memberI like % + name + %; if(!birthDate.e

46、quals() hql = hql + and memberInfo.birthDate like % + birthDate + %; if(!cardNumber.equals() hql = hql + and memberInfo.cardNumber like % + cardNumber + %; if(!homeTelephone.equals() hql = hql + and memberInfo.homeTelephone like % + homeTelephone + %; if(!mobilePhone.equals() hql = hql + and memberI

47、nfo.mobilePhone like % + mobilePhone + %; Query q = s.createQuery(hql); /*計算當前顯示頁碼的開始記錄*/ int startIndex = (current1) * this.PAGE_SIZE; q.setFirstResult(startIndex); q.setMaxResults(this.PAGE_SIZE); List memberInfoList = q.list(); return (ArrayList) memberInfoList; finally HibernateUtil.closeSession

48、(); (5)登錄到后臺界面如圖7.8所示。圖7.8后臺登錄首頁JSP通訊錄管理系統(tǒng)后臺界面 frame src=top.jsp name=topFrame scrolling=no noresize=noresize id=topFrame / frame src=center.html name=mainFrame id=mainFrame / frame src=down.html name=bottomFrame scrolling=no noresize=noresize id=bottomFrame /(6)添加分組點擊分組信息管理模塊中的添加分組信息,可以添加一個新的分組,如圖7

49、.9所示。圖7.9添加分組/*添加GroupClass信息*/ public void AddGroupClass(GroupClass groupClass) throws Exception Session s = null; Transaction tx = null; try s = HibernateUtil.getSession(); tx = s.beginTransaction(); s.save(groupClass); mit(); catch (HibernateException e) if(tx != null) tx.rollback(); throw e; fin

50、ally HibernateUtil.closeSession(); (7)管理分組點擊分組信息管理模塊中的分組信息管理,可以對分組進行編輯和刪除操作,如圖7.10所示。圖7.10管理分組 /*查詢GroupClass信息*/ public ArrayList QueryGroupClassInfo(int currentPage) Session s = null; try s = HibernateUtil.getSession(); String hql = From GroupClass groupClass where 1=1; Query q = s.createQuery(hql

51、); /*計算當前顯示頁碼的開始記錄*/ int startIndex = (current1) * this.PAGE_SIZE; q.setFirstResult(startIndex); q.setMaxResults(this.PAGE_SIZE); List groupClassList = q.list(); return (ArrayList) groupClassList; finally HibernateUtil.closeSession(); (8)添加聯(lián)系人點擊聯(lián)系人信息管理模塊中的添加聯(lián)系人,可以新增聯(lián)系人,如圖7.11所示。圖7.11添加聯(lián)系人 /*添加Member

52、Info信息*/ SuppressWarnings(deprecation) public String AddMemberInfo() ActionContext ctx = ActionContext.getContext(); try if(true) GroupClassDAO groupClassDAO = new GroupClassDAO(); GroupClass groupObj = groupClassDAO.GetGroupClassByGroupClassId(memberInfo.getGroupObj().getGroupClassId(); memberInfo.

53、setGroupObj(groupObj); String path = ServletActionContext.getServletContext().getRealPath(/upload); /*處理圖片上傳*/ String photoFileName = ; if(photoFile != null) InputStream is = new FileInputStream(photoFile); String fileContentType = this.getPhotoFileContentType(); if(fileContentType.equals(image/jpeg

54、) | fileContentType.equals(image/pjpeg) photoFileName = UUID.randomUUID().toString() + .jpg; else if(fileContentType.equals(image/gif) photoFileName = UUID.randomUUID().toString() + .gif; else ctx.put(error, .URLEncoder.encode(上傳圖片格式不正確!); return error; File file = new File(path, photoFileName); Out

55、putStream os = new FileOutputStream(file); byte b = new byte1024; int bs = 0; while (bs = is.read(b) 0) os.write(b, 0, bs); is.close(); os.close(); if(photoFile != null) memberInfo.setPhoto(upload/ + photoFileName); else memberInfo.setPhoto(upload/NoImage.jpg); memberInfoDAO.AddMemberInfo(memberInfo

56、); ctx.put(message, .URLEncoder.encode(MemberInfo添加成功!); return add_success; catch (Exception e) e.printStackTrace(); ctx.put(error, .URLEncoder.encode(MemberInfo添加失敗!); return error; (9)管理聯(lián)系人點擊聯(lián)系人信息管理模塊中的聯(lián)系人信息管理,可以對已有的聯(lián)系人信息進行編輯和刪除操作,如圖7.12所示。圖7.12管理聯(lián)系人/*查詢MemberInfo信息*/ public String QueryMemberInf

57、o() if(currentPage = 0) currentPage = 1; if(name = null) name = ; if(birthDate = null) birthDate = ; if(cardNumber = null) cardNumber = ; if(homeTelephone = null) homeTelephone = ; if(mobilePhone = null) mobilePhone = ; List memberInfoList = memberInfoDAO.QueryMemberInfoInfo(groupObj, name, birthDat

58、e, cardNumber, homeTelephone, mobilePhone, currentPage); /*計算總的頁數(shù)和總的記錄數(shù)*/ memberInfoDAO.CalculateTotalPageAndRecordNumber(groupObj, name, birthDate, cardNumber, homeTelephone, mobilePhone); /*獲取到總的頁碼數(shù)目*/ totalPage = memberInfoDAO.getTotalPage(); /*當前查詢條件下總記錄數(shù)*/ recordNumber = memberInfoDAO.getRecord

59、Number(); ActionContext ctx = ActionContext.getContext(); ctx.put(memberInfoList, memberInfoList); ctx.put(totalPage, totalPage); ctx.put(recordNumber, recordNumber); ctx.put(currentPage, currentPage); ctx.put(groupObj, groupObj); GroupClassDAO groupClassDAO = new GroupClassDAO(); List groupClassLis

60、t = groupClassDAO.QueryAllGroupClassInfo(); ctx.put(groupClassList, groupClassList); ctx.put(name, name); ctx.put(birthDate, birthDate); ctx.put(cardNumber, cardNumber); ctx.put(homeTelephone, homeTelephone); ctx.put(mobilePhone, mobilePhone); return query_view; (10)系統(tǒng)管理點擊系統(tǒng)管理模塊中的修改密碼,可以對用戶的密碼進行修改,如

溫馨提示

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

評論

0/150

提交評論