JAVA教材管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁
JAVA教材管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第2頁
JAVA教材管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第3頁
JAVA教材管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第4頁
JAVA教材管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、教材管理系統(tǒng)課程設(shè)計(jì)報(bào)告專業(yè):信息管理與信息系統(tǒng)班級(jí):信息053學(xué)號(hào):0522200073姓名:王子雄-2008.12目錄1 引言31.1 文檔編制目的.31.2 背景.31.3 開發(fā)環(huán)境.31.4 安裝和配置.41.5 參考資料.42 總體設(shè)計(jì).42.1 軟件體系結(jié)構(gòu).42.2 系統(tǒng)運(yùn)行體系2.3 系統(tǒng)物理結(jié)構(gòu)2.4 業(yè)務(wù)流程3 系統(tǒng)實(shí)現(xiàn)詳細(xì)設(shè)計(jì).53.1 數(shù)據(jù)庫的設(shè)計(jì).53.2 表的設(shè)計(jì).53.3 邏輯層的設(shè)計(jì)3.4 用戶角色3.5 模塊分析3.6 表達(dá)層設(shè)計(jì)4 系統(tǒng)功能實(shí)現(xiàn).74.1 登陸界面.74.2 班級(jí)界面.84.3 訂單界面 94.4 圖書界面 .104.5 操作界面.114.6

2、 實(shí)現(xiàn)代碼.125 設(shè)計(jì)實(shí)現(xiàn)具體過程.195.1 圖書信息代碼.195.2 班級(jí)信息代碼.195.3 訂單信息代碼.195.4 用戶信息代碼.195.5 管理信息代碼.206 設(shè)計(jì)總結(jié).2教材管理系統(tǒng)分析與設(shè)計(jì) 1.1文檔編制目的本系統(tǒng)是基于j2ee的設(shè)計(jì)方案,使用表示層,邏輯層和數(shù)據(jù)層三層模式。使用b/s模式,大大減低了服務(wù)端的數(shù)據(jù)處理任務(wù)。提供了高性能的處理速度,降低數(shù)據(jù)庫的運(yùn)行時(shí)的開銷。使用ms sql server 2000作為數(shù)據(jù)庫,使用jboss作為ejb容器,使用jboss內(nèi)置tomcat作為jsp容器和ejb容器。數(shù)據(jù)庫層使用ejb和jdbc與底層數(shù)據(jù)庫進(jìn)行交互,邏輯層封裝在e

3、jb類中,表示層由jsp實(shí)現(xiàn)。31.2背景本系統(tǒng)使用ms sql server tomcat,可以從網(wǎng)上免費(fèi)得到其正式的發(fā)行版本,而ms sql server 是當(dāng)前使用得最廣泛的數(shù)據(jù)庫,其性能,安全性等方面都有很好的保證。tomcat雖然是開源軟件,但許多大型網(wǎng)站也因其穩(wěn)定的性能和出色的性能而選擇它作為專業(yè)的jsp容器和ejb容器。由這兩者組成的整個(gè)系統(tǒng)的底層框架,既能節(jié)省開支,配置過程也相對(duì)簡單。服務(wù)器端使用三層體系結(jié)構(gòu),將業(yè)務(wù)邏輯從表示層中抽出,使頁面,業(yè)務(wù)邏輯和數(shù)據(jù)庫開發(fā)互相獨(dú)立,并行地進(jìn)行,這樣可以大大減少開發(fā)時(shí)間。同時(shí)這種設(shè)計(jì)方法降低了三層之間的耦合層度,日后對(duì)某一層的修改,擴(kuò)充時(shí)

4、,對(duì)其他層可以只產(chǎn)生很小的影響4。使用面向?qū)ο蠹夹g(shù),將各個(gè)角色(一般用戶,圖書管理員,系統(tǒng)管理員)封裝成類,這樣能幫助程序員更直觀地去理解整個(gè)業(yè)務(wù)流程,將重點(diǎn)放在業(yè)務(wù)邏輯的處理上,降低了開發(fā)難度,這樣也便于將來的擴(kuò)展。(1)在邏輯層實(shí)現(xiàn)了一個(gè)簡單的日志記錄系統(tǒng),可以將任何信息記錄到指定的日志文件中,方便服務(wù)器程序的跟蹤和調(diào)試,同時(shí)可以記錄一些重要的事物信息(比如管理員登陸,重要信息的刪除等),以便將來需要時(shí)查詢。(2)邏輯層實(shí)現(xiàn)時(shí)使用事務(wù)(transaction)保證數(shù)據(jù)的完整性。(3)服務(wù)器端采用數(shù)據(jù)庫,事務(wù)邏輯,用戶截面相互獨(dú)立的結(jié)構(gòu),各個(gè)模塊自身擴(kuò)充方便,且互相之間耦合度非常低,對(duì)邏輯層

5、稍做擴(kuò)充就可以實(shí)現(xiàn)一個(gè)功能更完善的系統(tǒng)。(4)使用單例模式(singleton design pattern)設(shè)計(jì)邏輯層,大大降低數(shù)據(jù)庫運(yùn)行的開銷。總體來說,本系統(tǒng)是基于j2ee的設(shè)計(jì)方案,使用表示層,邏輯層和數(shù)據(jù)層三層模式。使用b/s模式,使用ms sql server作為數(shù)據(jù)庫, tomcat作為jsp容器和ejb容器。數(shù)據(jù)庫層使用jdbc和實(shí)體bean與底層數(shù)據(jù)庫進(jìn)行交互,邏輯層封裝在ejb類中,表示層由jsp實(shí)現(xiàn)。1.3開發(fā)環(huán)境本章主要介紹j2ee開發(fā)環(huán)境的搭建。介紹j2ee對(duì)運(yùn)行環(huán)境的要求。講述j2ee開發(fā)和運(yùn)行環(huán)境的安裝配置,并且介紹當(dāng)今流行的j2ee運(yùn)行環(huán)境的安裝和配置,以及集成

6、開發(fā)環(huán)境的設(shè)置以及數(shù)據(jù)庫的安裝和配置。對(duì)硬件條件和操作系統(tǒng)的要求j2ee環(huán)境在多數(shù)開源軟件支持下對(duì)硬件要求不是很高,所以開發(fā)成本比較低,比如cpu只要求使用p800或更高級(jí)別的處理器;內(nèi)存大概128mb及其以上水平。由于java具有跨平臺(tái)的特點(diǎn),所以只要能夠安裝jdk,就能在此安裝jsp服務(wù)器和ejb服務(wù)器。jsp服務(wù)器和ejb服務(wù)器能夠運(yùn)行在目前絕大多數(shù)的操作系統(tǒng)上,目前在普通用戶中用到的系統(tǒng)絕大多數(shù)為windows系列和unix系列11。對(duì)軟件環(huán)境的要求要使用j2ee,在服務(wù)器端和客戶端都必須有對(duì)應(yīng)的運(yùn)行環(huán)境。服務(wù)器端主要是servlet兼容的web服務(wù)器和ejb服務(wù)器,客戶端主要是瀏覽器

7、,如表2-1所示。表2-1 對(duì)軟件環(huán)境的要求web瀏覽器任何支持html table和form元素的瀏覽器,瀏覽器應(yīng)支持如下html:frames;cookie;tables客戶端的圖片映射文件上載典型情況下使用ie6.0和netscape 7.0續(xù)表2-1web服務(wù)器和ejb服務(wù)器bea weblogic 8.1ibm websphere server 5.5a tomcat 5.0apache web server allaire jrun 3.0atg dynamo applicationbluestone sapphiregemstone j4.0java web server 2.0

8、resin ejb服務(wù)器web logic數(shù)據(jù)庫oracle sybase microsoft sql server 2000informixdb2mysql microsoft accessjava developer kit(jdk)jdk1.5.0_04win.exejdk1_4_2-win.exejdk1_4_2-unixjdk1_4-os21.4安裝和配置jdkjdk中包含了java開發(fā)中必需的工具和java程序運(yùn)行環(huán)境(jre)??梢詮膕un公司網(wǎng)站免費(fèi)下載。jdk的安裝特別簡單,和安裝應(yīng)用程序軟件沒什么區(qū)別,不過jdk的安裝路徑一定要設(shè)好,方便以后環(huán)境變量的設(shè)置。安裝好jdk后,

9、還需要在環(huán)境變量中進(jìn)行對(duì)應(yīng)的配置。就以本次畢業(yè)設(shè)計(jì)為例。jdk安裝在d:program filesjavajdk1.5.0_04。 主要進(jìn)行以下配置: (1)設(shè)置java_home環(huán)境變量 (2)設(shè)置classpath環(huán)境變量 (3)更新path環(huán)境變量的值java_home表示java安裝目錄,其他的應(yīng)用程序如果需要使用java運(yùn)行環(huán)境,首先獲得java_home變量的信息,然后確定執(zhí)行的路徑。在鼠標(biāo)右鍵單擊“我的電腦”,在屬性欄的高級(jí)選項(xiàng)中可以選擇環(huán)境變量的設(shè)置,新建一個(gè)系統(tǒng)變量或者用戶變量,名稱為java_home,它的值為d:program filesjavajdk1.5.0_04,如

10、圖2.1所示。圖2.1 java_home變量設(shè)置然后建立一個(gè)classpath的變量,它表示搜索java類的路徑,這個(gè)路徑可以包含一些jar歸檔文件,也可以是一個(gè)目錄。在應(yīng)用程序執(zhí)行是,往往會(huì)動(dòng)態(tài)地在classpath中添加一些自己需要的路徑。在本機(jī)上classpath的值為“.;d:program filesjavajdk1.5.0_04libtools.jar;d:program filesjavajdk1.5.0_04libdt.jar;” (.;一定不能少),如圖2.2所示。圖2.2 classpath變量設(shè)置當(dāng)以上都配置好了,我們可以測(cè)試下java環(huán)境3是否配置成功。我們可以在運(yùn)行

11、中進(jìn)入命令提示符cmd下面。輸入java version回車,看是否能看到當(dāng)前jdk的版本。如果看見就配置成功了。安裝和配置tomcattomcat服務(wù)器是當(dāng)今使用最廣泛的servlet/jsp服務(wù)器和ejb服務(wù)器。它運(yùn)行穩(wěn)定,性能可靠,是學(xué)習(xí)和中小企業(yè)的最佳選擇,而且是開源程序,下載免費(fèi),大大降低系統(tǒng)的開發(fā)成本。安裝也很方便。本次設(shè)計(jì)tomcat安裝目錄是d:programfiles安裝完成以后,把tomcat里面的類包(*.jar文件)包含到環(huán)境變量的classpath里面。這些jar文件都在d:programfilesjboss-3.2.8.sp1lib目錄下。microsoft sql

12、 server 的配置本節(jié)不對(duì)sql server的安裝做過多的贅述,本節(jié)介紹如何讓sql server能加入到j(luò)sp運(yùn)行的集成環(huán)境中來。當(dāng)安裝好sql server程序之后,由于jsp要與sql server集成,進(jìn)行對(duì)數(shù)據(jù)庫的操作,就必須下載microsoft sql server 2000 driver for jdbc的驅(qū)動(dòng),微軟的官方網(wǎng)站提供免費(fèi)下載。安裝該程序之后,把安裝目錄里面lib下面的3個(gè)驅(qū)動(dòng)jar文件拷貝到你所開發(fā)的jsp程序目錄下面的web-inf文件夾下面的lib文件夾下。這3個(gè)文件分別是:mssqlserver.jar;msbase.jar;msutil.jar。然后

13、在環(huán)境變量的classpath變量里面包含這3個(gè)文件的初試路徑。這樣我們就可以在以后的程序開發(fā)過程中,調(diào)用bean文件或者通過servlet來進(jìn)行對(duì)數(shù)據(jù)庫的連接和操作9。值得注意的是如果是老版本的sql server,可能會(huì)出現(xiàn)與jboss和tomcat和jsp連接失敗的故障,你可以通過telnet :1433指令來測(cè)試數(shù)據(jù)庫的連通性,在本次設(shè)計(jì)時(shí)這個(gè)問題出現(xiàn)過,如果連接失敗,就應(yīng)該給sql server打service patch 3和service patch 4補(bǔ)丁。一般這個(gè)問題打上sp3和sp4補(bǔ)丁就基本能夠解決,而且telnet也會(huì)成功。本次設(shè)計(jì)的這個(gè)問題也是這么解

14、決的,如圖2.6所示。圖2.6 sql server的jdbc驅(qū)動(dòng)2.總體設(shè)計(jì)2.1軟件體系結(jié)構(gòu)根據(jù)對(duì)教材管理系統(tǒng)流程的分析及客戶的要求,整個(gè)系統(tǒng)需要實(shí)現(xiàn)以下功能。軟件的整體功能,系統(tǒng)要操作簡單,要有友好的界面,系統(tǒng)的操作者的權(quán)限層次要有明確的分類,進(jìn)入軟件時(shí)要進(jìn)行身份驗(yàn)證。而且出于用戶需求的規(guī)訂,圖書信息、班級(jí)信息、訂單信息只能由圖書管理員管理,一般用戶只能查閱圖書信息。這樣使的系統(tǒng)更具有人性化,因?yàn)橄到y(tǒng)中三個(gè)角色之間沒有聯(lián)系,所以設(shè)置三個(gè)獨(dú)立操作的角色對(duì)象。(1)一般用戶角色能進(jìn)行的對(duì)象操作可以聯(lián)機(jī)注冊(cè)成為用戶,設(shè)定自己的登錄名及密碼。可按圖書名和圖書號(hào)自定義查詢。(2)圖書管理員角色管理

15、圖書信息。管理班級(jí)信息。管理訂單信息。(3)系統(tǒng)管理員角色有固定的賬號(hào),直接在數(shù)據(jù)庫添加,不能注冊(cè)成管理員,可以添加和刪除一般用戶帳號(hào),對(duì)一般用戶進(jìn)行管理。但不能管理圖書信息、班級(jí)信息、訂單信息滿足圖書管理系統(tǒng)的權(quán)限配置。2.2系統(tǒng)運(yùn)行體系數(shù)據(jù)庫層-邏輯層-表示層三層結(jié)構(gòu) 服務(wù)器端三層結(jié)構(gòu)及之間的關(guān)系,如圖3.1所示。jdbc+實(shí)體beanservlet+javabeanjspsql server圖3.1三層結(jié)構(gòu)角色模塊設(shè)計(jì)-設(shè)計(jì)模式整個(gè)系統(tǒng)中有三種用戶:一般用戶、圖書管理員、系統(tǒng)管理員,他們之間沒有相互的操作,因此可以封裝到各自的類中去。通過實(shí)體bean和會(huì)話bean實(shí)現(xiàn)對(duì)數(shù)據(jù)庫操作和實(shí)現(xiàn)業(yè)

16、務(wù)邏輯。與數(shù)據(jù)庫的連接本例使用ejb的數(shù)據(jù)源實(shí)現(xiàn)實(shí)體bean對(duì) ms sqlserver2000訪問。在jboss server/default/deploy下配置ejb服務(wù)器加載mssqlds數(shù)據(jù)源,如圖3.2所示。圖3.2 mssqlds數(shù)據(jù)源2.3系統(tǒng)物理結(jié)構(gòu)根據(jù)系統(tǒng)所要求實(shí)現(xiàn)的功能要求,不同的用戶具有不同的操作權(quán)限,本系統(tǒng)主要?jiǎng)澐譃槿笥脩裟K:一般用戶,圖書管理員,系統(tǒng)管理員,模塊圖如圖3.3所示。登錄注銷一般用戶圖書管理員系統(tǒng)管理員注冊(cè)查詢教材查詢訂單修改教材刪除定單添加管理員刪除管理員查詢教材查詢班級(jí)修改班級(jí)刪除班級(jí)刪除圖書圖3.3 系統(tǒng)功能模塊劃分2.4業(yè)務(wù)流程已注冊(cè)未注冊(cè)根據(jù)

17、現(xiàn)實(shí)的教材管理業(yè)務(wù)流程,以及根據(jù)系統(tǒng)功能模塊的分析,規(guī)劃出該系統(tǒng)的業(yè)務(wù)流程圖,如圖3.4所示。是是否否是是是否登錄系統(tǒng)輸入賬號(hào),密碼輸入注冊(cè)信息注冊(cè)成功預(yù)定取消預(yù)定成功登錄成功一般用戶圖書館管理員系統(tǒng)管理員定單信息圖書信息班級(jí)信息用戶信息刪除存在?輸入確?已登陸?輸入正確?充足教材?查詢定單信息查詢教材信息預(yù)定預(yù)定成功?是是否否是圖 3.4 業(yè)務(wù)流程圖。3.系統(tǒng)實(shí)現(xiàn)與詳細(xì)設(shè)計(jì)3.1數(shù)據(jù)庫設(shè)計(jì)當(dāng)一個(gè)系統(tǒng)涉及數(shù)據(jù)庫時(shí),其運(yùn)行效率、冗余程度、可靠性、穩(wěn)定性等評(píng)價(jià)指標(biāo)除了與上層的代碼有關(guān)外,更多地會(huì)受到低層數(shù)據(jù)庫效率的影響。因此,一個(gè)好的數(shù)據(jù)庫設(shè)計(jì)能夠讓你的系統(tǒng)跑的更順暢、穩(wěn)定5。設(shè)計(jì)思路一、確定各實(shí)

18、體間的關(guān)系首先確定各個(gè)實(shí)體之間的相互關(guān)系,這是設(shè)計(jì)好一個(gè)數(shù)據(jù)庫的基礎(chǔ)。實(shí)體之間的關(guān)系圖,如圖4.1所示。一般用戶圖書管理員系統(tǒng)管理員查詢圖書信息班級(jí)信息定單管理管理n111mn圖4.1 實(shí)體關(guān)系圖二、將實(shí)體和關(guān)系轉(zhuǎn)化為表將各個(gè)角色的所有信息分別放在獨(dú)立的表中,其中包括該角色的全部信息。選定一個(gè)字段作為主鍵,這個(gè)字段存儲(chǔ)的信息在整個(gè)表中兩兩必須相異,比如本次設(shè)計(jì)中,圖書編號(hào)(book id)等。如果表中沒有此類信息,可人為加入惟一的id用于標(biāo)志,比如本次設(shè)計(jì)中的list id ,class id,user id等。三、主鍵是唯一的依賴性保證表中其他字段只與主鍵有關(guān)系,如果一組信息同時(shí)與一個(gè)以上的

19、表或者一個(gè)表中一個(gè)以上的字段有關(guān)系,則必須將這組信息抽出去獨(dú)立構(gòu)成一張表。四、指定索引對(duì)所有會(huì)成為查詢關(guān)鍵字的字段進(jìn)行索引,以提高查詢效率。3.2表的設(shè)計(jì)一、用戶表(user)用來存儲(chǔ)用戶個(gè)人信息,其中“password”字段在記錄插入時(shí)與“id”字段信息相同,因此用戶在第一次登錄后應(yīng)該及時(shí)地更改自己的密碼,如表4.2所示。表4.2 用戶表結(jié)構(gòu)字段名類型備注約束條默認(rèn)值useridvarchar(50)用戶編號(hào)pkpasswordvarchar(50)登錄密碼not nulllevelint(4)操作權(quán)限not null1二、圖書表(book),如表4.3所示。表4.3 圖書表結(jié)構(gòu)字段名類型備

20、注約束條件默認(rèn)值bookidvarchar(50)圖書編號(hào)pkbooknamevarchar(100)圖書名not nullauthervarchar(50)作者索引publishervarchar(100)出版商pbdatedatetime出版日期pricefloat售價(jià)not nulldetailvarchar(200)簡介 三、預(yù)定記錄表(list)預(yù)定記錄表記錄了圖書管理中的預(yù)定圖書信息,以bookname字段與book表建立關(guān)系,以classname字段與class表建立關(guān)系。當(dāng)finished字段設(shè)為“1”時(shí),邏輯層將不能對(duì)記錄進(jìn)行修改,只能查詢,如表4.4所示。表 4.4 訂單記

21、錄表結(jié)構(gòu)字段名類型備注約束條件默認(rèn)值listidvarchar(50)訂單號(hào)pkclassname varchar(100)班級(jí)名索引menbersint(4)班級(jí)人數(shù)bookname varchar(100)圖書名pricefloat(8)圖書售價(jià)lnumberint(4)預(yù)定數(shù)量ldatedatetime(8)預(yù)定日期finished int(4)預(yù)定是否結(jié)束1-是 0-否0四、班級(jí)表(class),如表4.5所示。表4.5 班級(jí)表結(jié)構(gòu)字段名類型備注約束條件默認(rèn)值classidvarchar(50)班級(jí)編號(hào)pkclassname varchar(100)班級(jí)名索引menbersint(4)

22、班級(jí)人數(shù)not nullcdatedatetime(8)入學(xué)日期 表關(guān)系圖系統(tǒng)使用的數(shù)據(jù)庫表有如下聯(lián)系,如圖4.6所示。圖 4.6 表關(guān)系圖在sql server的final數(shù)據(jù)庫中的關(guān)系圖中,新建關(guān)系圖,把所有要用到的表添加進(jìn)去,然后根據(jù)下表的關(guān)聯(lián)進(jìn)行操作,就可以生成上面的關(guān)系圖。各表之間的關(guān)系,如表4.7所示。表4.7表間關(guān)系表名字段名關(guān)聯(lián)表關(guān)聯(lián)字段bookbooknamelistbooknamebookpricelistpriceclassclassnamelistclassnameclasstmenberslistmenbers值得注意的是與字符串尤其是中文字符串相比,數(shù)據(jù)庫在處理字符

23、、數(shù)字上更有效率,因此一些復(fù)雜度有限的字符串?dāng)?shù)據(jù)應(yīng)該設(shè)計(jì)成字符或數(shù)字類型,并與字符串建立一一對(duì)應(yīng)的關(guān)系,而把轉(zhuǎn)換工作交給邏輯層去處理。代替數(shù)據(jù)庫字符串可以帶來性能上的提高。3.3邏輯層的設(shè)計(jì)邏輯層包結(jié)構(gòu)設(shè)計(jì)邏輯層的設(shè)計(jì)是本次畢業(yè)設(shè)計(jì)的重點(diǎn)環(huán)節(jié),根據(jù)三層結(jié)構(gòu),邏輯層封裝了系統(tǒng)能夠執(zhí)行的所有機(jī)制和程序,以及對(duì)數(shù)據(jù)庫的操作。用戶只要在表示層里面調(diào)用邏輯層內(nèi)相映的class文件就可以了,這些類文件都存放在/web-inf/classes下面,以及發(fā)布的ejb包中。而且程序只要編譯一次,就可以多次使用2。本次設(shè)計(jì)的邏輯層bean文件的存放路徑,如圖4.8所示。圖4.8 設(shè)計(jì)包內(nèi)容(1)teachingm

24、2包概述整個(gè)邏輯層都封裝在teachingm2包中。(2)teachingm2.db包的概述teachingm2.db封裝了整個(gè)系統(tǒng)用于完成基礎(chǔ)功能的類,如數(shù)據(jù)庫連接、日志記錄等。teachingm2.db.util:輔助類,用于完成一些jsp中常用的功能。teachingm2.db.initservlet:初始化整個(gè)servlet環(huán)境。teachingm2.db.dbconnection:與數(shù)據(jù)庫建立連接,返回connection對(duì)象。teachingm2.db.debug:記錄日志,將信息寫入指定的日志文件中。(3)teachingm2.db.dboperation包概述teachingm

25、2.db.dboperation包封裝了所有與用戶角色有關(guān)的模型。其中dboperation類是一個(gè)抽象類,用于建立用戶模型,供具體角色(admin、commenuser、manager)繼承。teachingm2.db.dboperation.dboperation:建立用戶的抽象模型,供子類繼承。teachingm2.db.dboperation.admin:繼承dboperation,定義系統(tǒng)管理員模型。teachingm2.db.dboperation.commenuser:繼承dboperation,定義一般用戶。teachingm2.db.dboperation.manager:繼

26、承dboperation,定義用戶模型。teachingm2.db.dboperation.invaliduserexception:繼承自exception,用以封裝一個(gè)表示“非法用戶名”的異常。與數(shù)據(jù)庫建立連接類dbconnection本類位于teachingm2.db包中,由于connection是一個(gè)非常耗資源的對(duì)象,因此在這里使用單例模式來設(shè)計(jì)dbconnection類,保證了整個(gè)生命周期內(nèi)只存在一個(gè)connection對(duì)象,該對(duì)象可以被其他類重復(fù)利用,這樣可以大大節(jié)省系統(tǒng)資源。下面是dbconnection類的部分代碼的說明。 package teachingm2.db;impor

27、t java.sql.*;import teachingm2.db.*;/*本類用于與數(shù)據(jù)庫建立接*/public abstract class dbconnectionprivate static connection conn=null;/* 與數(shù)據(jù)庫建立連接,返回值connection對(duì)象*/public static connection getconnection()string classforname=com.microsoft.jdbc.sqlserver.sqlserverdriver;string servanddb=jdbc:microsoft:sqlserver:/12

28、:1433;databasename=final;/*調(diào)用jdbc驅(qū)動(dòng),以及定位teachingm2數(shù)據(jù)庫*/string user=sa;string pwd=tiantang; /數(shù)據(jù)庫管理員sa帳號(hào)和密碼tryclass.forname(classforname); conn=drivermanager.getconnection(servanddb,user,pwd); statement stmt=conn.createstatement(resultset.type_scroll_sensitive,resultset.concur_updatable); debug

29、.log(connection created.); /連接成功,寫入log文件catch(exception ex)debug.log(debug.getexceptionmsg(ex); /連接拋出錯(cuò)誤,也寫入log文件return conn; 該程序中一些關(guān)鍵的原理值得說明一下。將類定義為抽象類防止被實(shí)例化,這樣可以保證內(nèi)部封裝的connection對(duì)象只能用該類定義的靜態(tài)方法(getconnection())來訪問。將內(nèi)部的connection對(duì)象“conn”定義為靜態(tài)私有變量,保證整個(gè)生命周期只有一份“conn”實(shí)例存在,且不能被其他類直接訪問。數(shù)據(jù)庫服務(wù)器為了保證資源被充分利用,會(huì)

30、設(shè)定一個(gè)連接保持時(shí)限,當(dāng)一個(gè)連接時(shí)限內(nèi)與數(shù)據(jù)庫沒有通信時(shí),會(huì)被服務(wù)器關(guān)閉。而“debug.log()”是定義在debug類中的靜態(tài)方法,用來將信息存入日志文件。關(guān)于包中其他類的介紹和說明本節(jié)不在贅述,源程序見附錄。3.4用戶角色(1)圖書管理員模型manager角色本類位于teachingm2.db.dboperation包中,manager類封狀了管理員角色可執(zhí)行的所有操作。比如登錄,查詢患者病歷,修改病歷等操作。每個(gè)對(duì)象對(duì)應(yīng)一個(gè)可執(zhí)行操作。(2)系統(tǒng)管理員模型admin角色本類位于teachingm2.db.dboperation包中,admin類封狀了管理員可執(zhí)行的所有操作,根據(jù)下圖,每

31、個(gè)對(duì)象對(duì)應(yīng)一個(gè)操作。(3)一般用戶commenuser角色本類位于teachingm2.db.dboperation包中,commenuser類封裝了患者角色可執(zhí)行的所有操作。比如登錄,查詢圖書信息,等操作。在編寫程序時(shí),每個(gè)對(duì)象就是一個(gè)操作。如addcommenuser()就是針對(duì)新用戶注冊(cè)的一個(gè)公有對(duì)象。3.5模塊分析(一) 圖書信息模塊圖書信息模塊主要集成圖書管理的主要功能和操作,如圖4.9所示,詳細(xì)代碼見附錄。圖4.9設(shè)計(jì)包圖書內(nèi)容圖書信息模塊是本系統(tǒng)的主模塊,完成了圖書信息的添加,刪除,修改和查詢功能。并完成圖書信息的顯示。(二) 班級(jí)信息模塊班級(jí)信息模塊主要集成班級(jí)管理的主要功能和

32、操作,如圖4.10所示,詳細(xì)代碼見附錄。圖4.10設(shè)計(jì)包班級(jí)內(nèi)容圖書信息模塊是本系統(tǒng)的主模塊,完成了班級(jí)信息的添加,刪除,修改和查詢功能。并完成班級(jí)信息的顯示。(三) 訂單信息模塊訂單信息模塊主要集成訂單管理的主要功能和操作,如圖4.11所示,詳細(xì)代碼見附錄。圖4.11 設(shè)計(jì)包訂單內(nèi)容圖書信息模塊是本系統(tǒng)的主模塊,完成了圖書信息的添加,刪除,修改和查詢功能。并完成圖書信息的顯示。(四) 輔助功能模塊輔助信息模塊主要集成輔助管理的主要功能和操作,如圖4.12所示,詳細(xì)代碼見附錄。圖4.12設(shè)計(jì)包輔助內(nèi)容輔助功能模塊完成用戶信息的檢測(cè)和登錄功能,以及新用戶3.6表達(dá)層設(shè)計(jì)表達(dá)層設(shè)計(jì)概述表示層是信息

33、系統(tǒng)的用戶接口部分,即人機(jī)界面,是用戶與系統(tǒng)間交互信息的窗口,主要功能是指導(dǎo)操作人員使用界面,輸入數(shù)據(jù)、輸出結(jié)果。它并不擁有企業(yè)邏輯,或只擁有部分不涉及企業(yè)核心機(jī)密的應(yīng)用邏輯8。當(dāng)邏輯層編寫完畢,只剩下最后一項(xiàng)工作,允許用戶以適當(dāng)?shù)姆绞酵ㄟ^邏輯層與數(shù)據(jù)庫層交互,而這正是表示層的工作。這里就要通過功能完整的jsp代碼和html代碼來整合。所以下面將jsp頁面與邏輯層的整合過程中的重要部分。(1)聲明部分這個(gè)部分用“”包括,用于設(shè)定一些于jsp頁面有關(guān)的信息。一般第一行定義了頁面所使用的字符集,中文界面11一般使用gb2312;接下來使用 定義頁面需要導(dǎo)入的包,即“import”語句,本次設(shè)計(jì)中一

34、般被用到的包有:“teachingm2.db.*”、“teachingm2.db.dboperation.*”、“java.sql.*”。(2)html設(shè)計(jì)部分這部分更多地使用html代碼把表格搭建出來并進(jìn)行美化。一般使用html中的form標(biāo)簽、table標(biāo)簽和div標(biāo)簽以及輔助action屬性來搭建框架和美化。其中加入“”的jsp代碼段,使得實(shí)現(xiàn)動(dòng)態(tài)頁面。(3)頁面數(shù)據(jù)處理這個(gè)部分是整個(gè)jsp頁面的核心部分,負(fù)責(zé)關(guān)于系統(tǒng)的權(quán)限檢查,從頁面收集數(shù)據(jù)、對(duì)數(shù)據(jù)庫進(jìn)行操作、檢測(cè)操作結(jié)果等。(4)釋放數(shù)據(jù)庫資源當(dāng)所有操作都完成,用戶結(jié)束操作或關(guān)閉界面,系統(tǒng)調(diào)用dboperation類中的“close

35、connection()”方法來釋放數(shù)據(jù)資源。表達(dá)層設(shè)計(jì)中使用的幾大jsp對(duì)象request對(duì)象該對(duì)象封裝了用戶提交的信息,通過調(diào)用該對(duì)象相應(yīng)的方法可以獲得封裝的信息,即使用該對(duì)象可以獲取用戶提交的信息。 如request.getparameter()方法可以獲取該表單通過text提交的信息。、response對(duì)象該對(duì)象封裝了對(duì)客戶的請(qǐng)求做出的動(dòng)態(tài)的響應(yīng),向客戶端發(fā)送數(shù)據(jù)。如response.sendredirect()方法來實(shí)現(xiàn)客戶的重定向,就是當(dāng)用戶進(jìn)行了之前的操作,就會(huì)使用這個(gè)方法來跳轉(zhuǎn)到別的頁面。session對(duì)象它是在第一個(gè)jsp頁面被裝載時(shí)自動(dòng)創(chuàng)建,完成會(huì)話期間的管理,當(dāng)會(huì)話結(jié)束,

36、session自動(dòng)釋放。如session.getid()方法是獲取session對(duì)象編號(hào)。application對(duì)象服務(wù)器啟動(dòng)后就產(chǎn)生了這個(gè)application對(duì)象,當(dāng)客戶在所訪問的各個(gè)頁面之間瀏覽時(shí),這個(gè)application對(duì)象都是同一個(gè),直到服務(wù)器關(guān)閉。如application.setattribute(string key)方法是獲取application對(duì)象中含有關(guān)鍵字的對(duì)象。其他對(duì)象在jsp幾大內(nèi)置對(duì)象8中,還有out,cookie,config,page和exception等,但在本次設(shè)計(jì)中不是很常用,所以不在贅述。本次設(shè)計(jì)的系統(tǒng),有三個(gè)用戶角色,每個(gè)角色都是獨(dú)立的操作。所以這次設(shè)計(jì)針對(duì)每個(gè)用戶的操作界面即每個(gè)用戶獨(dú)立操作的表示層。三個(gè)文件夾中分別放了每個(gè)用戶獨(dú)立操作的jsp頁面。比如user文件中的useradd.jsp就是來實(shí)現(xiàn)添加用戶信息的jsp文件。所有的jsp文件名簡單好懂,一目了然,便于再次開發(fā)的時(shí)候方便設(shè)計(jì)。4.系統(tǒng)功能實(shí)現(xiàn)由于系統(tǒng)有3個(gè)角色模型,每個(gè)角色的模型都有很多執(zhí)行操作,介紹繁雜留給用戶自己體驗(yàn)。所以本節(jié)介紹一些基本的用戶操作來實(shí)現(xiàn)基

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論