版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、鄭州工業(yè)應(yīng)用技術(shù)學(xué)院課程設(shè)計(jì)報(bào)告題目: 通訊錄信息管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì) 姓 名: 院 (系): 信息工程學(xué)院 專(zhuān)業(yè)班級(jí): 12 級(jí)計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 號(hào): 指導(dǎo)教師: 成 績(jī): 時(shí)間: 2015 年 9 月 8 日至 2015 年 9 月 18 日摘 要隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)在社會(huì)生活中日益重要起來(lái),Web開(kāi)發(fā)作為一種比較流行的技術(shù)也開(kāi)始得到了很多人的支持和喜愛(ài)。在現(xiàn)代社會(huì)中,數(shù)據(jù)庫(kù)在網(wǎng)絡(luò)技術(shù)中已經(jīng)成為了不可分割的重要組成部分。在網(wǎng)絡(luò)技術(shù)的日趨發(fā)展中,也帶動(dòng)了一系列的新鮮事物出現(xiàn)。通訊錄信息管理系統(tǒng)就是在這一社會(huì)背景下出現(xiàn)的。本系統(tǒng)使用了MySQL數(shù)據(jù)庫(kù)技術(shù)、JSP技術(shù)、Ja
2、va語(yǔ)言、MyEclipse開(kāi)發(fā)工具,以及Tomcat服務(wù)器等進(jìn)行了系統(tǒng)的實(shí)現(xiàn)。本系統(tǒng)具有快速存儲(chǔ)聯(lián)系人大量信息、多條件檢索聯(lián)系人信息、修改個(gè)人資料、添加刪除聯(lián)系人等功能。另外,本系統(tǒng)是利用數(shù)據(jù)庫(kù)技術(shù)在網(wǎng)絡(luò)上建立的,在網(wǎng)絡(luò)越來(lái)越便利的,我們可以隨時(shí)隨地的在線查找、更新通訊錄,同時(shí)也可以降低通訊錄在移動(dòng)設(shè)備端丟失的概率。關(guān)鍵詞:通訊錄信息管理系統(tǒng);MySQL;數(shù)據(jù)庫(kù)目 錄TOC o 1-3 h u 1 概述 PAGEREF _Toc436843477 h 11.1 系統(tǒng)背景分析 PAGEREF _Toc436843478 h 11.2 設(shè)計(jì)的目的和意義 PAGEREF _Toc436843479
3、 h 11.3 國(guó)內(nèi)外通訊錄發(fā)展現(xiàn)狀 PAGEREF _Toc436843480 h 11.3.1 國(guó)內(nèi)通訊錄發(fā)展現(xiàn)狀 PAGEREF _Toc436843481 h 11.3.2 國(guó)外通訊錄發(fā)展現(xiàn)狀 PAGEREF _Toc436843482 h 21.4 系統(tǒng)設(shè)計(jì)思想 PAGEREF _Toc436843483 h 21.5 課程設(shè)計(jì)結(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)前臺(tái)功能需求 PAGEREF _Toc436843488 h 42.1.3 系統(tǒng)后臺(tái)功能需求 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ù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) PAGEREF _Toc436843493 h 64 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) PAGEREF _Toc436843494 h 84.1 把E-R圖轉(zhuǎn)化為關(guān)系模式 PAGEREF _To
5、c436843495 h 84.2 實(shí)體間的聯(lián)系 PAGEREF _Toc436843496 h 84.3 關(guān)系規(guī)范化 PAGEREF _Toc436843497 h 85 物理結(jié)構(gòu)設(shè)計(jì) PAGEREF _Toc436843498 h 95.1 表結(jié)構(gòu)的設(shè)計(jì) PAGEREF _Toc436843499 h 95.2 視圖的設(shè)計(jì) PAGEREF _Toc436843500 h 106 數(shù)據(jù)庫(kù)的實(shí)現(xiàn) PAGEREF _Toc436843501 h 116.1 創(chuàng)建數(shù)據(jù)庫(kù) 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 應(yīng)用系統(tǒng)的實(shí)現(xiàn) PAGEREF _Toc436843508 h 157.1 功能的實(shí)現(xiàn) PAGEREF _Toc436843509 h 15心得體會(huì) PAGEREF _Toc436843510 h 29參考文獻(xiàn) PAGEREF _Toc436843511 h 30附 錄 PAGEREF _Toc436843512
7、 h 311 概述1.1 系統(tǒng)背景分析隨著改革開(kāi)發(fā)的進(jìn)一步深入,科學(xué)技術(shù)的發(fā)展越來(lái)越開(kāi),也逐漸改變著人們的日常生活。固定電話與手機(jī)已經(jīng)替代了曾經(jīng)的郵件,人與人之間的聯(lián)系也愈加頻繁和緊密,電話中的信息也涉及到了生活中的方方面面。移動(dòng)通信逐漸成為通信領(lǐng)域的主流。在這種環(huán)境下,人們可以在任何地方、任何時(shí)間享受自由通信,通話質(zhì)量幾乎不受電磁波等外界環(huán)境的影響,而高效便捷的通訊錄是保持良好通信的基礎(chǔ)。傳統(tǒng)的通訊錄是把聯(lián)系人信息寫(xiě)到紙質(zhì)材料上,這種通訊錄攜帶不方便,而且修改、查詢都會(huì)增加時(shí)間成本。還有一種是名片夾通訊錄,這種通訊錄也有較多的缺點(diǎn)。名片夾容量有限,不宜批量、長(zhǎng)時(shí)間保存。現(xiàn)在比較流行的通訊錄是
8、我們的手機(jī)電話簿。手機(jī)容量較大,而且可以長(zhǎng)時(shí)間保存。但是手機(jī)存儲(chǔ)界面單一,存儲(chǔ)單元的信息也較少。一旦手機(jī)丟失或損壞,通訊錄也就無(wú)法找回。因此,開(kāi)發(fā)一個(gè)免費(fèi)的、功能豐富的基于網(wǎng)絡(luò)存儲(chǔ)的通訊錄管理系統(tǒng)是非常必要的。1.2 設(shè)計(jì)的目的和意義現(xiàn)在社會(huì)網(wǎng)絡(luò)隨處可見(jiàn)。我們可以利用數(shù)據(jù)庫(kù)技術(shù)在網(wǎng)絡(luò)上建立一個(gè)WEB服務(wù)系統(tǒng)。這種系統(tǒng)能夠固定存儲(chǔ)在網(wǎng)絡(luò)服務(wù)器上,專(zhuān)門(mén)用于記錄用戶聯(lián)系人的信息。隨著網(wǎng)絡(luò)的普及和服務(wù)需求的增長(zhǎng),現(xiàn)如今的移動(dòng)設(shè)備功能也是越來(lái)越多,而且大部分都支持互聯(lián)網(wǎng)的接入,這樣我們便可以隨時(shí)隨地的在線查找、更新通訊錄,并且在此基礎(chǔ)上還可以在IOS、Android等系統(tǒng)上開(kāi)發(fā)移動(dòng)客戶端。移動(dòng)設(shè)備上的客
9、戶端與網(wǎng)頁(yè)上更新存儲(chǔ)相比,不僅可以提高信息檢索的速度,而且沒(méi)有網(wǎng)絡(luò)復(fù)雜環(huán)境的影響。此外客戶端還會(huì)定期更新信息,保持手機(jī)和網(wǎng)絡(luò)信息的同步。1.3 國(guó)內(nèi)外通訊錄發(fā)展現(xiàn)狀1.3.1 國(guó)內(nèi)通訊錄發(fā)展現(xiàn)狀國(guó)內(nèi)的有社交短信的Kik、QQ通訊錄、360通訊錄等。移動(dòng)通訊錄是一種利用移動(dòng)互聯(lián)網(wǎng)來(lái)實(shí)現(xiàn)通訊錄信息同步更新和備份的服務(wù)。這種通訊錄有:友錄通訊錄、火種通訊錄等?;谑謾C(jī)和網(wǎng)站的同步通訊錄有人人同步免費(fèi)版、QQ手機(jī)同步。總的來(lái)看,這些通訊錄功能豐富,多智能化。有的還有通訊、留言等功能,為個(gè)人通訊提供了方便。1.3.2 國(guó)外通訊錄發(fā)展現(xiàn)狀國(guó)外的網(wǎng)絡(luò)通信技術(shù)發(fā)展的較為成熟,目前各類(lèi)產(chǎn)品的發(fā)展、通訊方式的豐富
10、使得通訊錄產(chǎn)品以不同的方式涌現(xiàn)出來(lái),有基于手機(jī)的、有基于個(gè)人電腦的、有無(wú)線方式接入的、有WEB方式接入的等等。例如目前主流的通訊錄應(yīng)用主要有移動(dòng)PIM,PIM業(yè)務(wù)是指客戶將移動(dòng)終端或其他客戶端中的信息以無(wú)線或有線方式與網(wǎng)絡(luò)服務(wù)器保持一致,并能用多種終端、多種接入手段來(lái)管理個(gè)人信息的業(yè)務(wù)。PIM業(yè)務(wù)為用戶提供了統(tǒng)一、便捷查詢通訊錄、安排等個(gè)人信息的服務(wù),使用戶可以使用移動(dòng)終端、計(jì)算機(jī)、PDA、網(wǎng)絡(luò)服務(wù)器設(shè)備,通過(guò)互聯(lián)網(wǎng)、移動(dòng)網(wǎng)絡(luò)方式來(lái)管理或同步通訊錄、日程安排、事件提醒、子郵件、鈴聲圖片、資料文檔等個(gè)人信息。1.4 系統(tǒng)設(shè)計(jì)思想對(duì)于典型的數(shù)據(jù)庫(kù)管理系統(tǒng),尤其是通訊錄這樣的存儲(chǔ)信息特別大的網(wǎng)絡(luò)管理
11、系統(tǒng),必須要滿足使數(shù)據(jù)庫(kù)方便、操作數(shù)據(jù)靈活等要求。本系統(tǒng)在設(shè)計(jì)時(shí)應(yīng)滿足以下幾個(gè)目標(biāo):(1)采用良好的人機(jī)交互界面設(shè)計(jì)模式,界面?zhèn)€性、友好,信息查詢靈活、方便,數(shù)據(jù)存儲(chǔ)準(zhǔn)確、安全可靠;(2)快速存儲(chǔ)聯(lián)系人的大量信息;(3)用戶可以多條件進(jìn)行信息檢索;(4)用戶登錄后臺(tái)系統(tǒng)后可以修改自己的基本資料;(5)實(shí)現(xiàn)添加、刪除聯(lián)系人類(lèi)別的功能;(6)實(shí)現(xiàn)聯(lián)系人類(lèi)別排行功能,以方便用戶了解聯(lián)系人信息;(7)對(duì)輸入的數(shù)據(jù),系統(tǒng)進(jìn)行嚴(yán)格的數(shù)據(jù)檢驗(yàn),并有合理的信息提示,盡可能排除人為錯(cuò)誤。1.5 課程設(shè)計(jì)結(jié)構(gòu)本課程設(shè)計(jì)內(nèi)容包括:概述、需求分析、概念結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)的實(shí)現(xiàn)以及應(yīng)用系
12、統(tǒng)的實(shí)現(xiàn)等等。著重描述了通訊錄的組成與結(jié)構(gòu)以及數(shù)據(jù)庫(kù)的設(shè)計(jì),闡述了系統(tǒng)的設(shè)計(jì)方案、實(shí)現(xiàn)方法以及所采用的開(kāi)發(fā)工具和相關(guān)技術(shù),另外,重點(diǎn)剖析了部分環(huán)節(jié)的開(kāi)發(fā)過(guò)程。2 系統(tǒng)需求分析系統(tǒng)關(guān)鍵技術(shù)確定后,需要對(duì)項(xiàng)目的功能需求進(jìn)行詳細(xì)的需求分析,清楚地了解到該項(xiàng)目所包含的功能。需求分析報(bào)告是對(duì)要解決的問(wèn)題進(jìn)行詳細(xì)的分析,弄清楚問(wèn)題的要求,包括需要輸入什么數(shù)據(jù),要得到什么數(shù)據(jù),估計(jì)軟件風(fēng)險(xiǎn)和評(píng)估項(xiàng)目代價(jià),是軟件生存周期中的最關(guān)鍵的一步,也是最困難的一步,是建立在軟件開(kāi)發(fā)的基礎(chǔ)上。2.1 系統(tǒng)功能需求分析2.1.1 總體功能需求分析經(jīng)過(guò)對(duì)各種通訊錄系統(tǒng)的考察、分析,要求本系統(tǒng)具有以下功能:(1)統(tǒng)一友好的操作
13、界面,保證系統(tǒng)的易用性,方便用戶的操作;(2)具備聯(lián)系人信息的顯示功能,方便用戶及時(shí)查看聯(lián)系人信息;(3)聯(lián)系人信息管理功能,用戶可以添加、刪除聯(lián)系人信息;(4)個(gè)性化的聯(lián)系人分組,方便用戶分類(lèi)檢索聯(lián)系人信息;(5)全面的后臺(tái)管理功能,以方便管理員對(duì)用戶信息進(jìn)行管理。系統(tǒng)總體功能結(jié)構(gòu)圖如圖2.1。圖2.1系統(tǒng)管理功能結(jié)構(gòu)圖2.1.2 系統(tǒng)前臺(tái)功能需求(1)首頁(yè)信息顯示開(kāi)發(fā)的信息,包括:系統(tǒng)開(kāi)發(fā)開(kāi)發(fā)環(huán)境、主要采用的技術(shù)、系統(tǒng)開(kāi)發(fā)時(shí)間(2)分組信息可以查看在當(dāng)前數(shù)據(jù)庫(kù)通訊錄系統(tǒng)中的總的分組情況。(3)聯(lián)系人信息可以查看當(dāng)前權(quán)限下通訊錄中所有的聯(lián)系人的全部信息,并且可以按照不同的條件(比如姓名、出生
14、日期等),對(duì)聯(lián)系人進(jìn)行查找,并且可以查看聯(lián)系人的具體信息(包括個(gè)人照片等)。(4)后臺(tái)登錄可以點(diǎn)擊后臺(tái)登錄,對(duì)當(dāng)前用戶權(quán)限下的通訊錄進(jìn)行后臺(tái)管理。2.1.3 系統(tǒng)后臺(tái)功能需求(1)分組信息管理包括添加分組信息和分組信息管理兩個(gè)模塊,可以添加分組和對(duì)已經(jīng)建立的分組進(jìn)行編輯和刪除。(2)聯(lián)系人信息管理包括添加聯(lián)系人和聯(lián)系人信息管理兩個(gè)模塊,可以新增加聯(lián)系人和對(duì)已經(jīng)記錄的聯(lián)系人信息進(jìn)行編輯和刪除。(3)系統(tǒng)管理包括修改密碼和退出系統(tǒng)兩個(gè)模塊,可以完成對(duì)系統(tǒng)的密碼進(jìn)行修改和退出本系統(tǒng)兩個(gè)操作。2.1.4 數(shù)據(jù)流圖(1)對(duì)于本系統(tǒng)的前臺(tái)頁(yè)面數(shù)據(jù)流圖如圖2.2所示。圖2.2前臺(tái)頁(yè)面數(shù)據(jù)流圖(2)對(duì)于本系統(tǒng)
15、的后臺(tái)登錄的數(shù)據(jù)流圖如圖2.3所示。圖2.3后臺(tái)登錄的系統(tǒng)流圖2.2 數(shù)據(jù)需求分析2.2.1 數(shù)據(jù)分析對(duì)于本系統(tǒng)的數(shù)據(jù)庫(kù)的需求而言,由于其主要是用于信息的存儲(chǔ)、更新和查詢等。因此,需要分析該系統(tǒng)功能所隱含的對(duì)數(shù)據(jù)應(yīng)用的需求,從而確定數(shù)據(jù)庫(kù)的結(jié)構(gòu)。(1)對(duì)用戶信息建立數(shù)據(jù)表,其中的數(shù)據(jù)項(xiàng)包括登錄賬號(hào)、登錄密碼等。(2)對(duì)分組信息建立數(shù)據(jù)表,其中的數(shù)據(jù)項(xiàng)包括分組編號(hào)、分組名等。(3)對(duì)聯(lián)系人信息建立數(shù)據(jù)表,其中的數(shù)據(jù)項(xiàng)包括所在分組、姓名、性別、出生年月、身份證號(hào)、郵編、家庭電話、手機(jī)號(hào)、qq、郵箱地址、職業(yè)、公司名稱(chēng)、地址、個(gè)人照片、備注信息等。3 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)概念設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)
16、的關(guān)鍵。根據(jù)用戶需求設(shè)計(jì)數(shù)據(jù)庫(kù)的概念,數(shù)據(jù)模型。我們首先要將現(xiàn)實(shí)世界中的客觀對(duì)象首先抽象為不依賴(lài)任何具體機(jī)器的信息結(jié)構(gòu),這種信息結(jié)構(gòu)不是DBMS支持的數(shù)據(jù)模型,而是概念級(jí)別的模型。然后再把概念模型轉(zhuǎn)換為具體機(jī)器上DBMS支持的數(shù)據(jù)模型。概念模型是對(duì)現(xiàn)實(shí)世界的抽象和概括。它真實(shí),充分地反映了現(xiàn)實(shí)世界中的事物和事物之間的聯(lián)系,能滿足用戶對(duì)數(shù)據(jù)的處理要求。由于其簡(jiǎn)潔、明晰、獨(dú)立于機(jī)器,很容易理解,因此可以用概念模型和不熟悉計(jì)算機(jī)的用戶交換意見(jiàn),使用戶能積極參與數(shù)據(jù)庫(kù)的設(shè)計(jì)工作。概念模型易于變動(dòng),還很容易向各種數(shù)據(jù)模型轉(zhuǎn)換。(1)管理員實(shí)體-屬性圖。圖3.1 管理員實(shí)體-屬性圖(2)用戶實(shí)體-屬性圖。
17、圖3.2 用戶實(shí)體-屬性圖(3)分組實(shí)體-屬性圖。圖3.3 分組實(shí)體-屬性圖(4)聯(lián)系人實(shí)體-屬性圖。圖3.4 聯(lián)系人實(shí)體-屬性圖(5)數(shù)據(jù)庫(kù)總體設(shè)計(jì)詳細(xì)E-R圖圖3.5 數(shù)據(jù)庫(kù)總體設(shè)計(jì)詳細(xì)實(shí)體-關(guān)系圖4 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)4.1 把E-R圖轉(zhuǎn)化為關(guān)系模式根據(jù)第三章概念結(jié)構(gòu)設(shè)計(jì)得出的E-R圖,我們可以得出系統(tǒng)中涉及的主要實(shí)體有四個(gè),其結(jié)構(gòu)如下:(1)管理員(用戶名,密碼,權(quán)限)(2)用戶(用戶名,密碼,權(quán)限)(3)分組(分組號(hào),分組名,所屬權(quán)限)(4)聯(lián)系人(聯(lián)系人ID,所屬分組,姓名,性別,生日,身份證號(hào)碼,郵編,家庭電話,移動(dòng)電話,QQ,電子郵件,職業(yè),公司名稱(chēng),住址,照片,備注,所屬權(quán)限
18、)4.2 實(shí)體間的聯(lián)系數(shù)據(jù)庫(kù)通訊錄信息管理系統(tǒng)實(shí)體之間有6個(gè)聯(lián)系,其關(guān)系如下:(1)管理員與用戶的關(guān)系是1:N的關(guān)系;(2)管理員與分組的關(guān)系是1:N的關(guān)系;(3)管理員與聯(lián)系人的關(guān)系是1:N的關(guān)系;(4)用戶與分組的關(guān)系是1:N的關(guān)系;(5)用戶與聯(lián)系人的關(guān)系是1:N的關(guān)系;(6)分組與聯(lián)系人的關(guān)系是1:N的關(guān)系。4.3 關(guān)系規(guī)范化(1)確定數(shù)據(jù)依賴(lài);(2)對(duì)于各關(guān)系模式間的數(shù)據(jù)依賴(lài)進(jìn)行極小化處理,消除冗余關(guān)系;(3)按照數(shù)據(jù)依賴(lài)與規(guī)范化理論對(duì)關(guān)系模式逐一進(jìn)行分析;(4)按照范式優(yōu)化每一關(guān)系模式,對(duì)關(guān)系模式的進(jìn)一步分解或合并;(5)最終規(guī)范到3NF范式為:用戶表(用戶名,密碼,權(quán)限)分組表(
19、分組號(hào),分組名,所屬權(quán)限)聯(lián)系人信息表(聯(lián)系人ID,所屬分組,姓名,性別,生日,身份證號(hào)碼,郵編,家庭電話,移動(dòng)電話,QQ,電子郵件,職業(yè),公司名稱(chēng),住址,照片,備注,所屬權(quán)限)5 物理結(jié)構(gòu)設(shè)計(jì)5.1 表結(jié)構(gòu)的設(shè)計(jì)(1)管理員和用戶表結(jié)構(gòu)設(shè)計(jì)。表5.1 管理員表結(jié)構(gòu)設(shè)計(jì)中文名字段名數(shù)據(jù)類(lèi)型顯示寬度是否為空是否主鍵約束條件默認(rèn)值用戶名usernamevarchar20否是不允許為空無(wú)登錄密碼passwordvarchar20否否默認(rèn)約束888888權(quán)限copyrightint10否否不允許為空無(wú)(2)用戶表結(jié)構(gòu)設(shè)計(jì)表5.2 用戶表結(jié)構(gòu)設(shè)計(jì)中文名字段名數(shù)據(jù)類(lèi)型顯示寬度是否為空是否主鍵約束條件默認(rèn)值
20、用戶名usernamevarchar20否是不允許為空無(wú)登錄密碼passwordvarchar20否否默認(rèn)約束888888權(quán)限copyrightint10否否不允許為空無(wú)(3)分組表結(jié)構(gòu)設(shè)計(jì)表5.3 分組表結(jié)構(gòu)設(shè)計(jì)中文名字段名數(shù)據(jù)類(lèi)型顯示寬度是否為空是否主鍵約束條件默認(rèn)值分組號(hào)groupClassIdint11否是不允許為空無(wú)分組名groupClassNamevarchar20是否允許為空無(wú)所屬權(quán)限groupCopyRightint11否否不允許為空無(wú)(4)聯(lián)系人表結(jié)構(gòu)設(shè)計(jì)表5.4 聯(lián)系人表結(jié)構(gòu)設(shè)計(jì)中文名字段名數(shù)據(jù)類(lèi)型顯示寬度是否為空是否主鍵約束條件默認(rèn)值聯(lián)系人idmemberIdint11否
21、是不允許為空無(wú)所屬分組groupObjint11是否外鍵約束無(wú)姓名namevarchar20是否允許為空無(wú)性別sexvarchar2是否默認(rèn)約束男出生年月birthDatedate10是否允許為空無(wú)身份證號(hào)cardNumbervarchar30是否允許為空無(wú)郵編postcodevarchar20是否檢查約束無(wú)家庭電話homeTelephonevarchar20是否允許為空無(wú)移動(dòng)電話mobilePhonevarchar20是否檢查約束無(wú)QQqqvarchar20是否允許為空無(wú)續(xù)表5.4 聯(lián)系人表結(jié)構(gòu)設(shè)計(jì)電子郵件emailvarchar40是否檢查約束無(wú)職業(yè)zhiyevarchar20是否允許為空
22、無(wú)公司名稱(chēng)gongsimingchengvarchar20是否允許為空無(wú)住址addressvarchar100是否允許為空無(wú)照片photovarchar50是否允許為空無(wú)注釋memovarchar200是否允許為空無(wú)所屬權(quán)限copyrightint11否否不允許為空無(wú)5.2 視圖的設(shè)計(jì)(1)GroupClass視圖作用:方便查對(duì)分組進(jìn)行操作。(2)MemberInfo視圖作用:方便對(duì)聯(lián)系人的信息進(jìn)行操作。6 數(shù)據(jù)庫(kù)的實(shí)現(xiàn)6.1 創(chuàng)建數(shù)據(jù)庫(kù)-創(chuàng)建數(shù)據(jù)庫(kù)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)用戶表的默認(rèn)約束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)系人表的默認(rè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, 同學(xué), 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, 測(cè)試, 2);INSERT INTO t_memberinfo VALUES (2, 1, 小王, 男, 2004-06-30, 348899, 7666646,/p>
32、, 5555555, 5555555, 學(xué)生, 學(xué)校, 農(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, 服務(wù)員, 餐廳, 小吃街, 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 應(yīng)用系統(tǒng)的實(shí)現(xiàn)7.1 功能的實(shí)現(xiàn)(1)登錄界面進(jìn)入系統(tǒng)登錄界面,如圖7.1所示。圖7.1登錄界面
34、/*跳轉(zhuǎn)到登陸界面*/public String view() return login_view;/* 驗(yàn)證用戶登錄 */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ái)首頁(yè)進(jìn)入系統(tǒng)的前臺(tái)界面,默認(rèn)進(jìn)入前臺(tái)首頁(yè),顯示系統(tǒng)的開(kāi)發(fā)環(huán)境、主要使用的技術(shù)、開(kāi)發(fā)時(shí)間等信息。如圖7.2所示。圖7.2系統(tǒng)前臺(tái)頁(yè)面 數(shù)據(jù)庫(kù)通訊錄管理系統(tǒng)-首頁(yè)link href=css/index.css rel=stylesheet type=text/css / img src=images/logo.gif /a href=index.jsp首頁(yè)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 王兆安設(shè)計(jì) 手機(jī)a href=login/login_view.action后臺(tái)登錄(3)分組信息點(diǎn)擊分組信息可以查看
37、當(dāng)前通訊錄中所有的分組。如圖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); /*計(jì)算當(dāng)前顯示頁(yè)碼的開(kāi)始記錄*/ 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(); 點(diǎn)擊詳情中查看,可以查看分組的詳細(xì)信息。如圖7.4所示。圖7.4分組詳情/*根據(jù)主鍵獲取對(duì)象信息*/ 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)系人信息點(diǎn)擊聯(lián)系人信息可以查看當(dāng)前通訊錄中所有的聯(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(); 可以輸入條件,對(duì)通訊錄中聯(lián)系人進(jìn)行查找。例如輸入姓名小王,點(diǎ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; /*界面層需要查詢的屬性: 身份證號(hào)*/ 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; /*界面層需要查詢的屬性: 手機(jī)號(hào)*/ private String mobilePhone; public void setMobilePhone(String mobilePhone) this.mobileP
44、hone = mobilePhone; public String getMobilePhone() return this.mobilePhone; 可以點(diǎn)擊查看,查看聯(lián)系人的詳細(xì)信息,如圖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); /*計(jì)算當(dāng)前顯示頁(yè)碼的開(kāi)始記錄*/ 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)登錄到后臺(tái)界面如圖7.8所示。圖7.8后臺(tái)登錄首頁(yè)JSP通訊錄管理系統(tǒng)后臺(tái)界面 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)添加分組點(diǎn)擊分組信息管理模塊中的添加分組信息,可以添加一個(gè)新的分組,如圖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)管理分組點(diǎn)擊分組信息管理模塊中的分組信息管理,可以對(duì)分組進(jìn)行編輯和刪除操作,如圖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、); /*計(jì)算當(dāng)前顯示頁(yè)碼的開(kāi)始記錄*/ 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)系人點(diǎ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)系人點(diǎn)擊聯(lián)系人信息管理模塊中的聯(lián)系人信息管理,可以對(duì)已有的聯(lián)系人信息進(jì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); /*計(jì)算總的頁(yè)數(shù)和總的記錄數(shù)*/ memberInfoDAO.CalculateTotalPageAndRecordNumber(groupObj, name, birthDate, cardNumber, homeTelephone, mobilePhone); /*獲取到總的頁(yè)碼數(shù)目*/ totalPage = memberInfoDAO.getTotalPage(); /*當(dāng)前查詢條件下總記錄數(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)管理點(diǎn)擊系統(tǒng)管理模塊中的修改密碼,可以對(duì)用戶的密碼進(jìn)行修改,如
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 改協(xié)議購(gòu)房合同范例
- 校園贊助合同范例
- 充電樁租房合同范例
- 天津?yàn)I海職業(yè)學(xué)院《食品加工與貯運(yùn)專(zhuān)題》2023-2024學(xué)年第一學(xué)期期末試卷
- 萬(wàn)州區(qū)第三方運(yùn)輸合同范例
- 天津渤海職業(yè)技術(shù)學(xué)院《物聯(lián)網(wǎng)通信技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 梁平雕花鋁單板施工方案
- 家電oem加工合同范例
- 河道清理雇傭合同范例
- 澳洲裝修合同范例
- 義務(wù)教育物理課程標(biāo)準(zhǔn)(2022年版)測(cè)試卷(含答案)
- 電子商務(wù)概論題庫(kù)(250道)
- 父愛(ài)深深 閱讀附答案
- 2023-2024學(xué)年安徽省宣城市小學(xué)數(shù)學(xué)五年級(jí)上冊(cè)期末自測(cè)模擬試題
- GB/T 13738.2-2017紅茶第2部分:工夫紅茶
- 第十一章英國(guó)自然風(fēng)景式園林
- 燃?xì)忮仩t安全檢查表分析(SCL)+評(píng)價(jià)記錄
- 小學(xué)四年級(jí)除數(shù)是兩位數(shù)的除法練習(xí)題
- 消防控制室值班記錄1
- 貨物質(zhì)量保證措施
- 工作簡(jiǎn)化方法改善與流程分析課件
評(píng)論
0/150
提交評(píng)論