基于JSP的教學(xué)管理系統(tǒng)開發(fā)與實(shí)現(xiàn)_第1頁
基于JSP的教學(xué)管理系統(tǒng)開發(fā)與實(shí)現(xiàn)_第2頁
基于JSP的教學(xué)管理系統(tǒng)開發(fā)與實(shí)現(xiàn)_第3頁
基于JSP的教學(xué)管理系統(tǒng)開發(fā)與實(shí)現(xiàn)_第4頁
基于JSP的教學(xué)管理系統(tǒng)開發(fā)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于JSP的教學(xué)管理系統(tǒng)的開發(fā)與實(shí)現(xiàn)用JSP實(shí)現(xiàn)教學(xué)管理系統(tǒng)摘要J2EE 技術(shù)無疑是當(dāng)今互聯(lián)網(wǎng)應(yīng)用的最佳技術(shù)解決方案之一。圍繞J2EE技術(shù)的適用性,也產(chǎn)生了大量的Web開發(fā)框架、中間層開發(fā)框架、數(shù)據(jù)層開發(fā)框架,極大地提高了J2EE技術(shù)的易用性。性別。本文介紹了J2EE的相關(guān)技術(shù),如Servlet、JSP 、Struts、Hibernate等,并利用這些技術(shù)完成了一個(gè)基于Web的教學(xué)管理系統(tǒng)。本文介紹了在myeclipse9.0環(huán)境下使用MVC開發(fā)模式開發(fā)教務(wù)系統(tǒng)的過程。介紹了教務(wù)信息系統(tǒng)的系統(tǒng)分析部分,包括需求分析和安全分析;系統(tǒng)設(shè)計(jì)部分主要介紹系統(tǒng)功能設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)和代碼設(shè)計(jì);系統(tǒng)實(shí)現(xiàn)與測

2、試部分講解了幾個(gè)主要模塊的算法,系統(tǒng)界面友好,操作簡單,更實(shí)用關(guān)鍵詞: Servlet,JSP ,Struts,Hibernate ,MVC,教學(xué)管理系統(tǒng)目錄 TOC o 1-3 h z u HYPERLINK l _Toc325629014 1簡介 PAGEREF _Toc325629014 h 1 HYPERLINK l _Toc325629015 1 . 1主題背景 PAGEREF _Toc325629015 h 1 HYPERLINK l _Toc325629016 1 . 2目的和意義 PAGEREF _Toc325629016 h 2 HYPERLINK l _Toc3256290

3、17 2開發(fā)技術(shù)與環(huán)境 PAGEREF _Toc325629017 h 3 HYPERLINK l _Toc325629018 2 . 1 PAGEREF _Toc325629018 h Servlet介紹3 HYPERLINK l _Toc325629019 2 . 1 . 1什么是Servlet PAGEREF _Toc325629019 h 3 HYPERLINK l _Toc325629020 2 . 1 . 2 Servlet技術(shù)的特點(diǎn) PAGEREF _Toc325629020 h 3 HYPERLINK l _Toc325629021 2 . 2 JSP技術(shù)概述 PAGEREF

4、_Toc325629021 h 4 HYPERLINK l _Toc325629022 2 . 2 . 1 JSP技術(shù) PAGEREF _Toc325629022 h 的產(chǎn)生背景4 HYPERLINK l _Toc325629023 2 . 2 . 2 JSP技術(shù)的優(yōu)缺點(diǎn) PAGEREF _Toc325629023 h 4 HYPERLINK l _Toc325629024 2 . 2 . 3 JSP技術(shù)的工作原理 PAGEREF _Toc325629024 h 5 HYPERLINK l _Toc325629025 2 . 3 Struts概述 PAGEREF _Toc325629025 h

5、 5 HYPERLINK l _Toc325629026 2 . 3 . 1 Struts5的起源與發(fā)展 PAGEREF _Toc325629026 h HYPERLINK l _Toc325629027 2 . 3 . 2 Struts PAGEREF _Toc325629027 h 5的MVC模式介紹 HYPERLINK l _Toc325629028 2 . 3 . 3 Struts 7的優(yōu)缺點(diǎn) PAGEREF _Toc325629028 h HYPERLINK l _Toc325629029 2 . 3 . 4 Struts工作流程 PAGEREF _Toc325629029 h 8

6、HYPERLINK l _Toc325629030 2 . 4 Hibernate數(shù)據(jù)庫持久化技術(shù) PAGEREF _Toc325629030 h 9 HYPERLINK l _Toc325629031 2 . 4 . 1 PAGEREF _Toc325629031 h Hibernate介紹9 HYPERLINK l _Toc325629032 2 . 4 . 2 休眠工作流程 PAGEREF _Toc325629032 h 10 HYPERLINK l _Toc325629033 2 . 5開發(fā)環(huán)境 PAGEREF _Toc325629033 h 10 HYPERLINK l _Toc32

7、5629034 2 . 5 . 1 Eclipse開發(fā)工具 PAGEREF _Toc325629034 h 10 HYPERLINK l _Toc325629035 2 . 5 . 2 雄貓服務(wù)器 PAGEREF _Toc325629035 h 11 HYPERLINK l _Toc325629036 3系統(tǒng)分析 PAGEREF _Toc325629036 h 12 HYPERLINK l _Toc325629037 3 . 1需求分析 PAGEREF _Toc325629037 h 12 HYPERLINK l _Toc325629038 3 . 1 . 1目標(biāo)系統(tǒng)功能說明 PAGEREF

8、_Toc325629038 h 12 HYPERLINK l _Toc325629039 3 . 1 . 2用戶需求分析 PAGEREF _Toc325629039 h 12 HYPERLINK l _Toc325629040 3 . 2系統(tǒng)安全 PAGEREF _Toc325629040 h 12 HYPERLINK l _Toc325629041 4系統(tǒng)設(shè)計(jì) PAGEREF _Toc325629041 h 14 HYPERLINK l _Toc325629042 4 . 1數(shù)據(jù)庫設(shè)計(jì) PAGEREF _Toc325629042 h 14 HYPERLINK l _Toc325629043

9、4 . 1 . 1數(shù)據(jù)庫簡介 PAGEREF _Toc325629043 h 14 HYPERLINK l _Toc325629044 4 . 1 . 2數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc325629044 h 17 HYPERLINK l _Toc325629045 4 . 2功能設(shè)置 PAGEREF _Toc325629045 h 23 HYPERLINK l _Toc325629046 4 . 2 . 1主要模塊功能說明 PAGEREF _Toc325629046 h 23 HYPERLINK l _Toc325629047 4 . 2 . 2系統(tǒng)功能模塊 圖 PAGEREF _

10、Toc325629047 h 23 HYPERLINK l _Toc325629048 4 . 3控制處理層 PAGEREF _Toc325629048 h 24 HYPERLINK l _Toc325629049 5系統(tǒng)實(shí)施和測試 PAGEREF _Toc325629049 h 25 HYPERLINK l _Toc325629050 5 . 1業(yè)務(wù)邏輯層中的Bean函數(shù) PAGEREF _Toc325629050 h 25 HYPERLINK l _Toc325629051 5 . 2系統(tǒng)界面 PAGEREF _Toc325629051 h 27 HYPERLINK l _Toc32562

11、9052 5 . 3搭建系統(tǒng)運(yùn)行環(huán)境 PAGEREF _Toc325629052 h 33 HYPERLINK l _Toc325629053 總結(jié) PAGEREF _Toc325629053 h 34 HYPERLINK l _Toc325629054 至 PAGEREF _Toc325629054 h 34 HYPERLINK l _Toc325629055 參考文獻(xiàn) PAGEREF _Toc325629055 h 35 HYPERLINK l _Toc325629056 附錄 PAGEREF _Toc325629056 h 361 簡介教學(xué)管理系統(tǒng)是集計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)通信技術(shù)于一體的信息

12、系統(tǒng)工程?;赪eb的教學(xué)管理系統(tǒng)是通過JSP開發(fā)的。一方面,通過數(shù)據(jù)庫對學(xué)校海量信息進(jìn)行管理,保證了數(shù)據(jù)的準(zhǔn)確性、及時(shí)性、全面性和細(xì)節(jié)性。教學(xué)管理系統(tǒng)的開發(fā)過程以軟件工程的思想為指導(dǎo),是一個(gè)經(jīng)過可行性研究、需求分析、總體分析、詳細(xì)設(shè)計(jì)等主要階段的法規(guī)開發(fā)過程。目前開發(fā)Web應(yīng)用主要有兩種模式:C/S(客戶端/服務(wù)器)和B/S(瀏覽器/服務(wù)器)。 B/S設(shè)計(jì)模式為我們提供了系統(tǒng)設(shè)計(jì)的基本思路和基本方向。與C/S模式相比,B/S模式內(nèi)容客戶端在不安裝軟件的情況下通過訪問服務(wù)器獲取所需的信息,從而使網(wǎng)頁更易于瀏覽和管理,滿足用戶對系統(tǒng)的使用要求,也就是用戶無需安裝客戶端,通過瀏覽器即可訪問相關(guān)服務(wù)

13、;在系統(tǒng)升級或維護(hù)時(shí),只要將變更集中在Web服務(wù)器中,用戶在下一頁刷新時(shí)就可以立即得到反饋,并且對于那些在服務(wù)器上運(yùn)行的邏輯和變更對用戶是透明的;此外,B/S模式在數(shù)據(jù)遷移和安全性方面更具優(yōu)勢。學(xué)校作為一個(gè)復(fù)雜的機(jī)構(gòu),借助實(shí)用的教學(xué)管理系統(tǒng),在日常教學(xué)活動(dòng)中實(shí)現(xiàn)對海量數(shù)據(jù)的有效管理是不可或缺的。與教學(xué)活動(dòng)相關(guān)的角色大致可分為三類:學(xué)生、教師和教學(xué)管理者。而這三類用戶的權(quán)限、關(guān)注點(diǎn)和所需數(shù)據(jù)不同,需要為他們提供不同的操作界面,并規(guī)定他們相應(yīng)的操作。因此,教學(xué)管理系統(tǒng)的主要功能也必須針對這三個(gè)主要角色進(jìn)行設(shè)計(jì)。1.1 選題背景隨著數(shù)據(jù)庫技術(shù)、網(wǎng)絡(luò)技術(shù)和科學(xué)管理方法的發(fā)展,計(jì)算機(jī)在管理中的應(yīng)用越來越

14、廣泛,管理信息系統(tǒng)逐漸成熟,給管理帶來了新的革命。管理信息系統(tǒng)是以人為主導(dǎo),通過使用計(jì)算機(jī)、網(wǎng)絡(luò)通訊設(shè)備等辦公設(shè)備,支持高層決策、中層控制和基層操作的人機(jī)系統(tǒng)。 、傳輸、處理、存儲、更新和維護(hù)信息。管理信息系統(tǒng)最大的特點(diǎn)是高度集中,可以將組織內(nèi)的數(shù)據(jù)和信息集中起來,快速處理,統(tǒng)一使用。支持決定。中央數(shù)據(jù)庫和計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)是管理信息系統(tǒng)(MIS)的重要標(biāo)志。 MIS的處理方式是基于數(shù)據(jù)庫和網(wǎng)絡(luò)的分布式處理。隨著計(jì)算機(jī)網(wǎng)絡(luò)和通信技術(shù)的發(fā)展,它不僅可以連接組織部門的各級管理,而且可以跨越地域界限,將分散在不同區(qū)域的計(jì)算機(jī)網(wǎng)絡(luò)互連起來,形成跨區(qū)域的各種業(yè)務(wù)信息系統(tǒng)和管理。信息系統(tǒng)。目前,雖然很多學(xué)校已

15、經(jīng)開始使用電腦來管理校務(wù)。學(xué)校的教務(wù)管理系統(tǒng)必須是一個(gè)完整統(tǒng)一、技術(shù)先進(jìn)、高效、穩(wěn)定、安全可靠的系統(tǒng)。根據(jù)國立大學(xué)現(xiàn)行管理模式,結(jié)合國際新理念,在校園網(wǎng)絡(luò)環(huán)境下,構(gòu)建與國際接軌的先進(jìn)信息化管理平臺。提高學(xué)校管理現(xiàn)代化水平,使其成為學(xué)校公共信息服務(wù)體系的重要組成部分。教學(xué)管理系統(tǒng)是高校管理信息系統(tǒng)建設(shè)的重要組成部分,是提高教學(xué)管理質(zhì)量和效率乃至建設(shè)世界知名高水平大學(xué)的關(guān)鍵環(huán)節(jié)。教學(xué)和教務(wù)信息處理的計(jì)算機(jī)化、網(wǎng)絡(luò)化也是實(shí)現(xiàn)學(xué)校管理現(xiàn)代化、信息化的重要組成部分。1.2 目的和意義隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,計(jì)算機(jī)作為知識經(jīng)濟(jì)時(shí)代的產(chǎn)物,已經(jīng)廣泛應(yīng)用于社會的各個(gè)行業(yè)和領(lǐng)域。目前,隨著我國科學(xué)技術(shù)的飛速發(fā)

16、展,計(jì)算機(jī)作為當(dāng)今使用最廣泛的現(xiàn)代工具,已經(jīng)滲透到各個(gè)領(lǐng)域,正在成為未來社會信息社會的重要支柱。在這樣的背景下,現(xiàn)代學(xué)校教務(wù)管理方式和資源建設(shè)發(fā)生了重大變化。這種變化體現(xiàn)在教務(wù)工作、管理和服務(wù)平臺的變化上。教務(wù)管理不再是傳統(tǒng)的人工操作。人工管理,但全面實(shí)行電腦管理。這個(gè)畢業(yè)設(shè)計(jì)讓我提高了解決實(shí)際問題的能力。但是,由于本人知識有限,系統(tǒng)設(shè)計(jì)上還存在很多不足之處。請批評指正,以便我日后改進(jìn)。另外,系統(tǒng)的順利完成離不開老師們對我的幫助,對此我深表感謝。2 開發(fā)技術(shù)與環(huán)境2.1 Servlet簡介2.1.1 什么是ServletServlet(Java 服務(wù)器小程序)是用 Java 編寫的服務(wù)器端程序

17、。它是一個(gè)Java類,由服務(wù)器端調(diào)用和執(zhí)行,根據(jù)servlet自己的規(guī)則編寫。 Servlet可以看成是用Java編寫的CGI,但它的功能和性能都比CGI更強(qiáng)大。servlet 是使用 Java Servlet 應(yīng)用程序編程接口 (API) 和相關(guān)類和方法的 Java 程序。除了 Java Servlet API 之外,Servlet 還可以用來擴(kuò)展和添加 Java 類包到 API。它最常見的用途是擴(kuò)展 Web 服務(wù)器,為 CGI 提供非常安全、可移植且易于使用的替代方案。它是一個(gè)動(dòng)態(tài)加載的模塊,為來自 Web 服務(wù)器的請求提供服務(wù)。它完全在 Java 虛擬機(jī)上運(yùn)行。由于它運(yùn)行在服務(wù)器端,它不

18、依賴于瀏覽器的兼容性。2.1.2 Servlet技術(shù)特點(diǎn)Servlet是一個(gè)Java類,可以實(shí)現(xiàn)Java除圖形界面之外的所有功能。一般來說,它具有以下優(yōu)點(diǎn):1、可移植性 可以在不同的操作系統(tǒng)平臺和不同的應(yīng)用服務(wù)器平臺下移植。2.強(qiáng)大的功能可以使用核心Java API的所有功能。3、有幾種不同的安全級別為Servlet的安全提供了保障。4.簡潔的Servlet代碼是面向?qū)ο蟮模诜忾]方面具有先天優(yōu)勢。5. 集成 Servlet 與服務(wù)器緊密集成,可以緊密協(xié)作完成特定任務(wù)。6.模塊化第一個(gè)servlet可以執(zhí)行特定的任務(wù),它們可以一起工作。7. 可擴(kuò)展性 Servlet 的接口設(shè)計(jì)非常簡單,具有很

19、強(qiáng)的可擴(kuò)展性。8. 高效持久的servlet一旦加載,就駐留在內(nèi)存中,加快響應(yīng)速度。2.1.3 Servlet生命周期Servlet部署在容器中,其生命周期由容器管理,一般可以摘要為以下幾個(gè)步驟:1.加載Servlet 這個(gè)操作一般是動(dòng)態(tài)執(zhí)行的。2. servlet 容器創(chuàng)建 servlet 的實(shí)例。 3、容器調(diào)用實(shí)例的init()方法。 4. Service 如果容器有對servlet的請求,則調(diào)用該實(shí)例的service()方法。 5. 銷毀 通過調(diào)用servlet 的destroy() 方法來銷毀servlet。2.2 JSP技術(shù)概述2.2.1 JSP技術(shù)背景JSP(Java Server

20、 Pages)是由Sun Microsystems倡導(dǎo)并由多家公司參與制定的動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。該技術(shù)為創(chuàng)建顯示動(dòng)態(tài)生成的內(nèi)容的網(wǎng)頁提供了一種簡單而快速的方法。 JSP 技術(shù)旨在使構(gòu)建可以與各種 Web 服務(wù)器、應(yīng)用程序服務(wù)器、瀏覽器和開發(fā)工具一起工作的基于 Web 的應(yīng)用程序變得更容易和更快。 JSP 規(guī)范是 Web 服務(wù)器、應(yīng)用程序服務(wù)器、事務(wù)系統(tǒng)和開發(fā)工具供應(yīng)商之間廣泛合作的結(jié)果。將Java程序片段(Scriptlet)和JSP標(biāo)簽(tag)添加到傳統(tǒng)網(wǎng)頁HTML文件(*htm、*.html)中,就構(gòu)成了一個(gè)JSP網(wǎng)頁(*.jsp)。由于 JSP 是建立在 Servlet 之上的,它具有

21、Servlet 的所有強(qiáng)大功能。 JSP 基于強(qiáng)大的 Java 語言,具有良好的可擴(kuò)展性,并與 Java Enterprise API 緊密集成。在網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用開發(fā)領(lǐng)域具有得天獨(dú)厚的優(yōu)勢。從JSP近幾年的發(fā)展來看,JSP取得了巨大的成功。通過與E等J2EE組件集成,可以編寫具有大擴(kuò)展性和高負(fù)載的企業(yè)級應(yīng)用程序。它從多個(gè)方面加速。開發(fā)動(dòng)態(tài) Web 應(yīng)用程序頁面。2.2.2 JSP技術(shù)的優(yōu)缺點(diǎn)1 JSP技術(shù)的優(yōu)勢1. 一次編寫,到處運(yùn)行。2、系統(tǒng)多平臺支持。3. 可擴(kuò)展性強(qiáng)。4. 多樣化強(qiáng)大的開發(fā)工具支持。2 JSP技術(shù)的弱點(diǎn)1. 跨平臺功能和極致的可擴(kuò)展性大大增加了產(chǎn)品的復(fù)雜性。2. 需要一定

22、的硬盤空間來存儲一系列. Java 文件,. class 文件和相應(yīng)的版本文件。3 JSP設(shè)置對象JSP包括九個(gè)集合對象:request對象、response對象、pageContext對象、Session對象、application對象、out對象、config對象、page對象和exception對象,可以通過application對象和session對象實(shí)現(xiàn)不同頁面之間的數(shù)據(jù)共享。2.2.3 JSP技術(shù)的工作原理當(dāng) Web 服務(wù)器遇到訪問 JSP 網(wǎng)頁的請求時(shí),它首先執(zhí)行程序片段,然后將執(zhí)行結(jié)果以 HTML 格式返回給客戶端。程序片段可以操作數(shù)據(jù)庫、重定向網(wǎng)頁以致電子郵件等。這是創(chuàng)建動(dòng)態(tài)

23、所需要的。所有程序操作都在服務(wù)器端執(zhí)行,只有結(jié)果致到網(wǎng)絡(luò)上的客戶端。對客戶端的瀏覽器要求最低,不需要Plugin,不需要ActiveX,不需要Java Applet,甚至不需要Frame。2.3 Struts概述2.3.1 Struts的起源與發(fā)展Struts 框架工具是 Apache Foundation Jakarta 項(xiàng)目發(fā)起的一個(gè)子項(xiàng)目。 Struts 在英文中的意思是支架和支持,這也體現(xiàn)了 Struts 在開發(fā) Web 應(yīng)用程序的過程中所起的重要作用。 Struts 為 Web 應(yīng)用程序提供了一個(gè)通用框架,內(nèi)容開發(fā)人員專注于如何解決問題。在實(shí)際業(yè)務(wù)問題上,同時(shí),Struts框架還內(nèi)容

24、開發(fā)者根據(jù)實(shí)際需要進(jìn)行擴(kuò)展和定制,從而更好地適應(yīng)用戶的需求。使用 Struts 可以簡化遵循 MVC 設(shè)計(jì)模式的 Web 應(yīng)用程序的開發(fā),很好地實(shí)現(xiàn)代碼重用,使開發(fā)人員從一些繁瑣的工作中解脫出來,快速開發(fā)可以充分發(fā)揮 JSP/Servlet 的優(yōu)勢,具有很強(qiáng)的擴(kuò)展性 Web 應(yīng)用程序??傊琒truts的出現(xiàn)大大簡化了Web應(yīng)用程序的開發(fā)過程,可以縮短開發(fā)周期,提高開發(fā)效率。2.3.2 Struts的MVC模式介紹Model-View-Controller (MVC) 是一種軟件設(shè)計(jì)模式,出現(xiàn)在 1980 年代 Smalltalk-80 中,現(xiàn)在被廣泛使用。 1、模型(Model)模型是應(yīng)用程

25、序的主要部分。模型代表業(yè)務(wù)數(shù)據(jù)或業(yè)務(wù)邏輯。 2.視圖(View)視圖是應(yīng)用程序中與用戶界面相關(guān)的部分,是用戶看到并與之交互的界面。 3、控制器(controller) 控制器的工作是根據(jù)用戶的輸入控制用戶界面數(shù)據(jù)的顯示和更新模型對象的狀態(tài)。 圖 2.1 MVC 組件類型的關(guān)系和功能圖 2.1 MVC 的關(guān)系和功能CATID MVC 的出現(xiàn)不僅實(shí)現(xiàn)了功能模塊和顯示模塊的分離,而且提高了應(yīng)用系統(tǒng)組件的可維護(hù)性、可擴(kuò)展性、可移植性和可重用性。雖然 MVC 設(shè)計(jì)模式提出很早,但由于缺乏相關(guān)支持,在 Web 開發(fā)中引入 MVC 相當(dāng)困難。直到基于 J2EE 的 JSP Model 2 出來后才改變。下面

26、簡單介紹一下JSP Model 1和JSP Model 2。圖 2.2 JSP 模型 1 的數(shù)據(jù)傳輸(JSP+JavaBean) 圖2.2 JSP 模型 1 的數(shù)據(jù)傳輸(JSP+JavaBean+Servlet)圖2.3 JSP模型2(JSP+JavaBean+Servlet)的數(shù)據(jù)傳輸圖圖 2.3 JSP 模型 2 的數(shù)據(jù)傳輸(JSP+JavaBean+Servlet)對比兩種模式不難發(fā)現(xiàn),JSP Model 2 的層級關(guān)系比 JSP Model 1 更清晰,開發(fā)出來的頁面也更容易維護(hù)。這種模式下,各個(gè)組件的分工非常明確,使用JSP技術(shù)進(jìn)行展示,充當(dāng)視圖的角色,使用Servlet執(zhí)行業(yè)務(wù)邏輯

27、,相當(dāng)于控制器的角色,使用JavaBean組件來表示數(shù)據(jù),相當(dāng)于模型的作用。盡管如此,JSP Model 2還是不夠好,很容易讓系統(tǒng)中出現(xiàn)多個(gè)Controller,頁面導(dǎo)航的處理也比較復(fù)雜。 Struts 是一種基于 JSP Model 2 實(shí)現(xiàn)的 MVC 架構(gòu)。它只有一個(gè)中央控制器,它使用 XML 來定制重定向的 URL。使用 Action 來處理邏輯是對 JSP 模型 2 3 的巨大改進(jìn)。2.3.3 Struts的優(yōu)缺點(diǎn)優(yōu)點(diǎn):Struts和Tomcat、Turbine等很多Apache項(xiàng)目一樣,都是開源軟件,可以讓開發(fā)者對其實(shí)現(xiàn)機(jī)制有更深入的了解,這是它的一大優(yōu)勢。另外,Struts的優(yōu)勢

28、主要體現(xiàn)在兩個(gè)方面:Taglib和頁面導(dǎo)航。 Taglib是Struts的一個(gè)標(biāo)簽庫,可以靈活使用,可以大大提高開發(fā)效率;頁面導(dǎo)航使系統(tǒng)的上下文更加清晰。通過一個(gè)配置文件,可以掌握整個(gè)系統(tǒng)各個(gè)部分之間的聯(lián)系,這對于后期的維護(hù)非常重要。一個(gè)巨大的好處,尤其是當(dāng)另一組開發(fā)人員接管該項(xiàng)目時(shí)。缺點(diǎn):taglib 是 Struts 的一大優(yōu)勢,但是對于初學(xué)者來說,需要一個(gè)不斷學(xué)習(xí)的過程,甚至?xí)騺y寫網(wǎng)頁的習(xí)慣,但是當(dāng)你習(xí)慣了,你會覺得它真的很棒。 Struts將MVC Controller分為三個(gè)部分,在增加系統(tǒng)復(fù)雜度的同時(shí)獲得了更清晰的結(jié)構(gòu)。 Struts問世不到半年,卻逐漸被越來越多的商業(yè)軟件所采用

29、。雖然它還有很多不足之處,但它是一個(gè)非常好的 J2EE MVC 實(shí)現(xiàn)。2.3.4 Struts的工作流程WEB啟動(dòng)時(shí)會上傳并初始化ActionServletActionServletsstruts 配置。 xml文件讀取配置信息,并將它們存儲在各種配置對象中。當(dāng) ActionServlet 接收到客戶端請求時(shí),其執(zhí)行過程大致如下:1. 檢索與用戶請求匹配的 ActionMapping 實(shí)例。如果不存在,則返回用戶請求路徑無效。 2、如果ActionForm實(shí)例不存在,則創(chuàng)建一個(gè)ActionForm對象,將客戶提交的表單數(shù)據(jù)保存到ActionForm對象中。3、根據(jù)配置位置判斷是否需要表單驗(yàn)證。

30、如果需要驗(yàn)證,請調(diào)用 ActionForm 并拋出 validate() 方法。 4、如果ActionForm的validate()方法返回null或者返回一個(gè)不包含ActionMessage的ActionError對象,則表示表單驗(yàn)證成功。 5、ActionServlet根據(jù)ActionMapping實(shí)例中包含的映射位置決定將請求轉(zhuǎn)發(fā)到哪個(gè)Action。如果對應(yīng)的Action實(shí)例不存在,先創(chuàng)建這個(gè)實(shí)例,然后調(diào)用Action的execrte()方法。 6、Action的execute()方法返回一個(gè)ActionForward對象,ActionServlet將客戶端請求轉(zhuǎn)發(fā)給ActionForw

31、ard對象指向的JSP組件。 7、ActionForward對象指向的JSP組件生成動(dòng)態(tài)網(wǎng)頁返回給客戶端4。下圖是Struts的工作流程,所有請求都提交給ActionServlet圖 2.4 Struts 工作流程圖圖 2.4 struts 的工作流程2.4 Hibernate數(shù)據(jù)庫持久化技術(shù)2.4.1 Hibernate簡介Hibernate 是用于 Java 環(huán)境的對象/關(guān)系數(shù)據(jù)庫映射工具。它是根據(jù) GNU 寬通用公共許可證發(fā)布的免費(fèi)開源軟件。它提供了一個(gè)易于使用的框架,用于將面向?qū)ο蟮念I(lǐng)域模型映射到傳統(tǒng)的關(guān)系數(shù)據(jù)庫。Hibernate 不僅管理 Java 類到數(shù)據(jù)庫表的映射(包括 Jav

32、a 數(shù)據(jù)類型到 SQL 數(shù)據(jù)類型的映射),還提供了面向?qū)ο蟮臄?shù)據(jù)查詢和檢索機(jī)制,可以大大減少手動(dòng)使用 SQL 和JDBC 在開發(fā)過程中處理數(shù)據(jù)。 Hibernate 的目標(biāo)是解放 95% 的開發(fā)人員通常與數(shù)據(jù)持久性相關(guān)的編程任務(wù)。對于以數(shù)據(jù)為中心的程序,他們往往只使用數(shù)據(jù)庫中的存儲過程來實(shí)現(xiàn)業(yè)務(wù)邏輯。 Hibernate 可能不是最好的解決方案,但對于那些在基于 Java 的中間層應(yīng)用程序中實(shí)現(xiàn)面向?qū)ο蟮臉I(yè)務(wù)模型和業(yè)務(wù)邏輯的應(yīng)用程序來說,它是最有用的。2.4.2 Hibernate的工作流程在 Java 應(yīng)用程序中使用 Hibernate 大致包括以下步驟:1. 創(chuàng)建 Hibernate 配置

33、文件。2. 創(chuàng)建持久類。3. 創(chuàng)建對象關(guān)系映射文件。4.編寫代碼通過Hibernate API訪問數(shù)據(jù)庫。2.5 開發(fā)環(huán)境2.5. 1 Eclipse開發(fā)工具Eclipse 是目前主流的Web 應(yīng)用程序開發(fā)工具之一。它是一個(gè)開源、基于 Java 的集成和可擴(kuò)展開發(fā)平臺,類似于 NetBeans、Sun ONE Studio 和 Borland uilder。它也是最著名的開源開發(fā)平臺。項(xiàng)目之一。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一組標(biāo)準(zhǔn)插件,包括 Java 開發(fā)工具 (JDT)。它以插件的形式嵌入了包括Spring、Strut

34、s、Hibernate等主流開發(fā)框架,大大減少了程序開發(fā)者的工作量。根據(jù)Eclipse的架構(gòu),通過插件的開發(fā),可以擴(kuò)展到任何語言的開發(fā),甚至可以成為畫圖的工具。雖然 Eclipse 是用 Java 語言開發(fā)的,但它的使用并不局限于 Java 語言;例如,支持 C/C+、COBOL 和 Eiffel 等編程語言的插件已經(jīng)可用或預(yù)計(jì)可用。 Eclipse 框架也可以用作與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),例如內(nèi)容管理系統(tǒng)。此外,Eclipse還支持多種流行的數(shù)據(jù)庫管理軟件,如SQL、Oracle等,是一款功能強(qiáng)大且不可多得的集成開發(fā)工具。由于它的開源特性,任何人都可以免費(fèi)獲得,并且可以在此基礎(chǔ)

35、上開發(fā)自己的插件,因此越來越受到人們的關(guān)注。最新更穩(wěn)定的版本是Eclipse 3.3,插件版本是MyEclipse 6.0.1。2.5.2 Tomcat服務(wù)器1 Tomcat的產(chǎn)生與發(fā)展Tomcat是一款小型輕量級的應(yīng)用服務(wù)器,廣泛應(yīng)用于中小型系統(tǒng)和并發(fā)訪問用戶不多的場合。它是開發(fā)和調(diào)試JSP 程序的首選。自 JSP 發(fā)布以來,已經(jīng)引入了各種 JSP 引擎。在完成了 GNUJSP1.0 的開發(fā)之后,Apache Group 開始考慮在 SUN 的 JSWDK 的基礎(chǔ)上開發(fā)一個(gè)可以直接提供 Web 服務(wù)的 JSP 服務(wù)器。當(dāng)然它也支持Servlet,于是Tomcat就誕生了。 Tomcat是ja

36、karta項(xiàng)目中的一個(gè)重要子項(xiàng)目,也是sun公司官方推薦的servlet和jsp容器。由于其技術(shù)先進(jìn)、性能穩(wěn)定,也受到越來越多軟件公司和開發(fā)者的青睞。 servlet和jsp的最新規(guī)定可以在新版tomcat中實(shí)現(xiàn)。其次,Tomcat 是完全免費(fèi)的軟件,任何人都可以從 Internet 上免費(fèi)下載。2 在 Tomcat 中部署 Web 應(yīng)用程序在Tomcat中,應(yīng)用部署很簡單,你只需要把你的WAR放到Tomcat的webapp目錄下,Tomcat就會自動(dòng)檢測到這個(gè)文件并解壓。當(dāng)你在瀏覽器中訪問這個(gè)應(yīng)用程序的Jsp時(shí),第一次通常很慢,因?yàn)門omcat必須將Jsp轉(zhuǎn)換成Servlet文件,然后編譯。

37、編譯后訪問會很快。3 系統(tǒng)分析3.1 需求分析3.1.1 目標(biāo)系統(tǒng)功能說明教務(wù)管理系統(tǒng)為客戶提供強(qiáng)大的軟件功能,主要維護(hù)日常教務(wù)管理等基本信息,可為教務(wù)教學(xué)提供更好的數(shù)據(jù)支持。軟件功能基本一般。提供系統(tǒng)用戶管理、角色管理、數(shù)據(jù)字典管理、課程管理、通用課程管理、教師薪酬管理統(tǒng)計(jì)、試卷檔案管理和生成報(bào)表Excel數(shù)據(jù)文件、查詢幫助等功能。3.1.2 用戶需求分析本教務(wù)管理系統(tǒng)基于Windows操作系統(tǒng),通過對既定數(shù)據(jù)條件的研究分析,結(jié)合學(xué)校教務(wù)管理分析。對原有教務(wù)管理系統(tǒng)的非圖形化界面操作,功能弱的數(shù)據(jù)庫系統(tǒng)不穩(wěn)定、不可擴(kuò)展、移植困難,以及原有的覆蓋面不夠廣等問題提出了一些要求。系統(tǒng)功能。1、目前

38、流行的數(shù)據(jù)庫系統(tǒng)Mysql需要作為底層數(shù)據(jù)庫,使其具有較強(qiáng)的穩(wěn)定性、可擴(kuò)展性、可移植性等優(yōu)良性能。2、系統(tǒng)要求使用功能強(qiáng)大的Windows系列操作系統(tǒng)作為操作系統(tǒng)平臺,使其具有優(yōu)秀的可視化圖形操作界面,并大力提高系統(tǒng)的可操作性和交互性,最大限度地減輕操作者的負(fù)擔(dān),使他們更加方便,更方便。更快更容易操作。3、需要擴(kuò)大系統(tǒng)功能的覆蓋面。其功能需要對圖書編目建庫、瀏覽數(shù)據(jù)、檢索統(tǒng)計(jì)數(shù)據(jù)、印刷數(shù)據(jù)等進(jìn)行綜合管理。并且可以控制每個(gè)用戶的系統(tǒng)權(quán)限,從而保證系統(tǒng)的安全性能。4、需要提高系統(tǒng)的可維護(hù)性。系統(tǒng)的數(shù)據(jù)需要隨時(shí)備份和恢復(fù)?;诩彝D書館管理系統(tǒng)的局限性,不要求數(shù)據(jù)可以與其他數(shù)據(jù)庫(和共享數(shù)據(jù))進(jìn)行通

39、信。3.2 系統(tǒng)安全計(jì)算機(jī)系統(tǒng)的安全管理是一項(xiàng)龐大、復(fù)雜、范圍廣泛的系統(tǒng)工程。安全的核心是人,安全管理必須以人為核心。采用各種先進(jìn)的安全技術(shù),保護(hù)系統(tǒng)免受非法攻擊,排除無訪問權(quán)限的用戶竊取信息,確保系統(tǒng)安全可靠運(yùn)行。根據(jù)學(xué)校教務(wù)系統(tǒng)的特點(diǎn),為加強(qiáng)其安全性,系統(tǒng)采取了一定的措施。4 系統(tǒng)設(shè)計(jì)4.1 數(shù)據(jù)庫設(shè)計(jì)4.1.1 數(shù)據(jù)庫簡介Mysql是目前主流的數(shù)據(jù)庫軟件之一。作為系統(tǒng)的后臺服務(wù),主要用于保存系統(tǒng)的各種信息。通過對數(shù)據(jù)庫表的有效管理,可以實(shí)現(xiàn)數(shù)據(jù)的永久存儲,其中存儲的數(shù)據(jù)可以通過特定的SQL語句進(jìn)行存儲。數(shù)據(jù)執(zhí)行一系列操作,如查詢、更新、刪除、添加等。1 SQL語言SQL 基礎(chǔ):SQL(S

40、tructured Query Language,結(jié)構(gòu)化查詢語言)是一種強(qiáng)大的數(shù)據(jù)庫語言。 SQL 通常用于數(shù)據(jù)庫通信。 ANSI(美國國家標(biāo)準(zhǔn)協(xié)會)聲稱 SQL 是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。 SQL語句通常用于完成一些數(shù)據(jù)庫操作任務(wù),比如更新數(shù)據(jù)庫中的數(shù)據(jù),或者從數(shù)據(jù)庫中檢索數(shù)據(jù)。使用 SQL 的常見關(guān)系數(shù)據(jù)庫管理系統(tǒng)有:Oracle、Mysql、Sybase、Microsoft SQL Server、Access、Ingress 等。雖然絕大多數(shù)數(shù)據(jù)庫系統(tǒng)都使用 SQL,但它們也有自己的系統(tǒng)額外專有擴(kuò)展。然而,諸如“Select”、“Insert”、“Update”、“Delete”、

41、“Create”和“Drop”之類的標(biāo)準(zhǔn) SQL 命令通常用于執(zhí)行大多數(shù)數(shù)據(jù)庫操作。 MS SQL Server 使用 Transact-SQL。 SQL語言具有非常突出的優(yōu)勢。非過程語言:SQL 是一種非過程語言,因?yàn)樗淮翁幚硪粭l記錄,提供數(shù)據(jù)的自動(dòng)導(dǎo)航。 SQL 內(nèi)容用戶在不操作單個(gè)記錄、操作記錄集的情況下處理高級數(shù)據(jù)結(jié)構(gòu),并且所有 SQL 語句都接受集作為輸入并返回集作為輸出。 SQL 的聚合特性內(nèi)容將一條 SQL 語句的結(jié)果用作另一條 SQL 語句的輸入。SQL 不需要用戶指定數(shù)據(jù)的存儲方式,該特性使用戶更容易專注于要獲得的結(jié)果;所有 SQL 語句都使用查詢優(yōu)化器,它是 RDBMS

42、的一部分,它決定了對指定數(shù)據(jù)的最快訪問。查詢優(yōu)化器知道存在哪些索引以及在哪里適當(dāng)?shù)厥褂盟鼈?,而用戶永遠(yuǎn)不需要知道表是否有索引以及它有什么類型的索引。統(tǒng)一語言:SQL 可用于為所有用戶建模數(shù)據(jù)庫活動(dòng),包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、應(yīng)用程序程序員、決策支持系統(tǒng)人員和許多其他類型的最終用戶。SQL 為許多任務(wù)提供命令,包括:查詢數(shù)據(jù);插入、修改和刪除表中的記錄;創(chuàng)建、修改和刪除數(shù)據(jù)對象;控制對數(shù)據(jù)和數(shù)據(jù)對象的訪問;確保數(shù)據(jù)庫的一致性和完整性;以前的數(shù)據(jù)庫管理系統(tǒng)為上述操作提供了不同的語言,而 SQL 將所有任務(wù)統(tǒng)一在一種語言中。所有關(guān)系數(shù)據(jù)庫的通用語言:由于所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持 SQL

43、 語言,因此用戶可以將使用 SQL 的技能從一個(gè) RDBMS(關(guān)系數(shù)據(jù)庫管理系統(tǒng))轉(zhuǎn)移到另一個(gè),并且所有用 SQL 編寫的程序都可以移植。SQL語句:SQL功能強(qiáng)大,是一門完整的數(shù)據(jù)處理語言。它不僅用于數(shù)據(jù)庫查詢,還用于數(shù)據(jù)庫中的數(shù)據(jù)修改和更新。總結(jié)起來,可以分為以下幾組:DML(Data Manipulation Language):用于檢索或修改數(shù)據(jù);DDL(Data Definition Language):用于定義數(shù)據(jù)的結(jié)構(gòu),如創(chuàng)建、修改或刪除數(shù)據(jù)庫對象;DCL(Data Control Language,數(shù)據(jù)控制語言):用于定義數(shù)據(jù)庫用戶的權(quán)限。DML 組可以細(xì)分為以下語句:SELE

44、CT:用于檢索數(shù)據(jù);INSERT:用于向數(shù)據(jù)庫添加數(shù)據(jù);UPDATE:用于修改數(shù)據(jù)庫中已有的數(shù)據(jù);DELETE:用于從數(shù)據(jù)庫中刪除數(shù)據(jù)。DDL 語句可用于創(chuàng)建用戶和重建數(shù)據(jù)庫對象。這是 DDL 命令:創(chuàng)建表、更改表、刪除表、創(chuàng)建索引、刪除索引DDL 和 DML:數(shù)據(jù)定義語言 DDL:用于創(chuàng)建和修改數(shù)據(jù)庫結(jié)構(gòu)的語句,包括 Create、Alter 和 Drop 語句。數(shù)據(jù)操作語言DML:包括數(shù)據(jù)查詢和數(shù)據(jù)更新。數(shù)據(jù)查詢主要由Select語句完成,不再贅述。而數(shù)據(jù)更新帶來的風(fēng)險(xiǎn)遠(yuǎn)不止數(shù)據(jù)查詢。數(shù)據(jù)庫管理系統(tǒng)必須在變更期間保護(hù)存儲數(shù)據(jù)的一致性,保證有效數(shù)據(jù)進(jìn)入數(shù)據(jù)庫,數(shù)據(jù)庫必須保持一致,DBMS還要

45、協(xié)調(diào)多個(gè)用戶的并行更新,保證用戶及其變更不會影響其他用戶的工作。用于修改數(shù)據(jù)庫內(nèi)容的主要 SQL 語句有以下三種:(1)插入,向表中添加新的數(shù)據(jù)行(2)delete,從表中刪除數(shù)據(jù)行(3)更新、更改數(shù)據(jù)庫中已經(jīng)存在的數(shù)據(jù)插入標(biāo)準(zhǔn)語法:INSERT INTO 表名 (col1, col2.) 值 (value1, value2.)插入語句還可以向目標(biāo)表中添加多行數(shù)據(jù)。在這種形式的 Insert 語句中,新行的數(shù)據(jù)值不是在語句體中顯式指定的,而是在語句中指定的數(shù)據(jù)庫查詢。附加值來自數(shù)據(jù)庫自己的行,這在某些狀態(tài)下很有用。多行Insert語句提供了一種簡潔高效的復(fù)制數(shù)據(jù)的方法,但我在自己的圖書管理系統(tǒng)

46、中并沒有使用這種方法。在系統(tǒng)中,我按照上面的用法,使用循環(huán)來完成多條記錄。插入。Update 語句用于更新單個(gè)表中選定行的一個(gè)或多個(gè)列的值。要更新的目標(biāo)表在語句中定義,Set 子句指定要更新哪些列并計(jì)算它們的值。 Update 語句總是包含 Where 語句,而 Update 語句是危險(xiǎn)的,所以你必須清楚地認(rèn)識到 Where 語句的重要性,它用于指定需要更新的行。標(biāo)準(zhǔn)語法:更新表名SET 列名 1 = 值 1,列名 2 = 值 2。 WHERE 搜索條件Delete 語句的標(biāo)準(zhǔn)語法:DELETE FROM 表名 WHERE 條件復(fù)雜操作的實(shí)現(xiàn):在信息管理系統(tǒng)中,我們經(jīng)常會遇到分類、聚合、映射、

47、索引、子查詢等復(fù)雜操作。對應(yīng)的支持和實(shí)現(xiàn)如下:GROUP BY 子句語法是:選擇第 1 列,總和(第 2 列)從“表列表”GROUP BY 列列表;GROUP BY 子句將包含指定實(shí)例數(shù)據(jù)的所有行組合在一起,以內(nèi)容聚合函數(shù)計(jì)算一列或多列。在我的系統(tǒng)中,在顯示數(shù)據(jù)的時(shí)候,我使用這個(gè)語句對查詢得到的內(nèi)容進(jìn)行排序,然后顯示出來。組合條件和布爾運(yùn)算符,以下 SQL 語句包含組合條件:選擇第 1 列,總和(第 2 列)從“表列表”其中“條件1”和“條件2”;有時(shí),要一起瀏覽多個(gè)查詢的結(jié)果并組合它們的輸出,我們可以使用 UNION 關(guān)鍵字。2 數(shù)據(jù)庫數(shù)據(jù)庫處理一直是信息系統(tǒng)研究中一個(gè)非常重要的課題。然而,

48、近年來,隨著萬維網(wǎng)(WWW)的迅猛發(fā)展和互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,數(shù)據(jù)庫技術(shù)已成為最流行的技術(shù)之一。數(shù)據(jù)庫技術(shù)可以使 Internet 應(yīng)用程序超越具有早期應(yīng)用程序特性的簡單分發(fā)。同時(shí),互聯(lián)網(wǎng)技術(shù)為向用戶發(fā)布數(shù)據(jù)庫內(nèi)容提供了標(biāo)準(zhǔn)化的訪問方式。這些技術(shù)并沒有脫離經(jīng)典數(shù)據(jù)庫技術(shù)的要求。它們只是增加了數(shù)據(jù)庫技術(shù)的重要性。數(shù)據(jù)庫設(shè)計(jì)和開發(fā),包括藝術(shù)和工程。了解用戶需求,然后將其轉(zhuǎn)化為有效的數(shù)據(jù)庫設(shè)計(jì)是一個(gè)藝術(shù)過程。將設(shè)計(jì)轉(zhuǎn)化為實(shí)際的數(shù)據(jù)庫是一個(gè)工程過程,這些數(shù)據(jù)庫具有全功能、高性能的應(yīng)用程序。數(shù)據(jù)庫的目的是幫助人們跟蹤交易。經(jīng)典的數(shù)據(jù)庫應(yīng)用程序涉及訂單、客戶、工作、員工、學(xué)生等項(xiàng)目,或其他需要密切關(guān)注的具

49、有大量數(shù)據(jù)的事務(wù)。近來,由于數(shù)據(jù)庫的普及,數(shù)據(jù)庫技術(shù)被應(yīng)用到新的領(lǐng)域,例如用于互聯(lián)網(wǎng)的數(shù)據(jù)庫或用于企業(yè)聯(lián)網(wǎng)的數(shù)據(jù)庫。數(shù)據(jù)庫也越來越多地用于生成和維護(hù)多媒體應(yīng)用程序。4.1.2 數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn)1 數(shù)據(jù)庫功能設(shè)計(jì)根據(jù)教學(xué)管理系統(tǒng)的處理要求,數(shù)據(jù)庫表的設(shè)計(jì)和功能如下:學(xué)生個(gè)人信息表:用于存儲學(xué)生的基本信息。教師個(gè)人信息表:用于存放教師的基本信息。課程信息表:用于存放課程的基本信息。學(xué)生成績單:用于存儲學(xué)生成績記錄。選課表:用于存放學(xué)生的選課記錄。消息信息表:用于存放所有的消息記錄。2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)一、實(shí)體及其關(guān)系圖:圖4.1實(shí)體及其關(guān)系圖圖4.1實(shí)體與關(guān)系2、系統(tǒng)流程圖:圖4.2系統(tǒng)流程圖圖

50、4.2系統(tǒng)流程圖3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)主要是對數(shù)據(jù)庫進(jìn)行邏輯設(shè)計(jì),即將數(shù)據(jù)按照一定的分類、分組系統(tǒng)和邏輯層次組織起來,是面向用戶的。設(shè)計(jì)數(shù)據(jù)庫時(shí),需要整合企業(yè)各部門的歸檔數(shù)據(jù)和數(shù)據(jù)需求,分析各種數(shù)據(jù)之間的關(guān)系,設(shè)計(jì)合適的規(guī)模,正確反映數(shù)據(jù)關(guān)系,減少數(shù)據(jù)冗余,提高訪問效率。 DBMS 提供的功能和描述工具??蓾M足多種查詢需求的優(yōu)質(zhì)數(shù)據(jù)模型。數(shù)據(jù)庫設(shè)計(jì)的步驟是:(1)數(shù)據(jù)庫結(jié)構(gòu)的定義:目前的數(shù)據(jù)庫管理系統(tǒng)(DBMS)有的是支持在線事務(wù)處理CLTP(負(fù)責(zé)事務(wù)數(shù)據(jù)的收集、處理和存儲)的操作型DBMS,有的支持?jǐn)?shù)據(jù)倉庫和在線分析處理 CLAP。 (指處理數(shù)據(jù)以支持決策的大型DBMS),有些數(shù)據(jù)

51、庫是關(guān)系型的,有些可以支持面向?qū)ο蟮臄?shù)據(jù)庫。對于選定的 DBMS,定義數(shù)據(jù)庫結(jié)構(gòu)。(2)數(shù)據(jù)表定義:數(shù)據(jù)表定義是指定義數(shù)據(jù)庫中數(shù)據(jù)表的結(jié)構(gòu)。數(shù)據(jù)表的邏輯結(jié)構(gòu)包括:屬性名、類型、表示、默認(rèn)值、驗(yàn)證規(guī)則、是否為關(guān)鍵字、是否可以為空等。關(guān)系數(shù)據(jù)庫應(yīng)盡可能按照關(guān)系規(guī)范的要求進(jìn)行設(shè)計(jì),但為了達(dá)到高效率,規(guī)范的程度應(yīng)根據(jù)應(yīng)用環(huán)境和條件來確定。數(shù)據(jù)表設(shè)計(jì)不僅要滿足數(shù)據(jù)存儲的要求,還要增加一些字段或臨時(shí)數(shù)據(jù)表,如反映相關(guān)信息、操作職責(zé)、中間數(shù)據(jù)等。(3)存儲設(shè)備和存儲空間組織:確定數(shù)據(jù)的存儲位置、存儲路徑、存儲設(shè)備等,備份計(jì)劃,以及如何保證多個(gè)版本的一致性和數(shù)據(jù)完整性。(4)數(shù)據(jù)使用權(quán)限設(shè)置:根據(jù)用戶不同的使

52、用需求,確定用戶對數(shù)據(jù)的使用權(quán)限,保障數(shù)據(jù)安全。(5)數(shù)據(jù)字典設(shè)計(jì):使用數(shù)據(jù)字典來描述數(shù)據(jù)庫的設(shè)計(jì),易于維護(hù)和修改。為了更好的組織數(shù)據(jù),設(shè)計(jì)實(shí)用的應(yīng)用數(shù)據(jù)庫,需要注意以下幾個(gè)問題:有規(guī)律地重組數(shù)據(jù)結(jié)構(gòu):有規(guī)律地表達(dá)數(shù)據(jù),后面會詳細(xì)討論。建立關(guān)系數(shù)據(jù)結(jié)構(gòu):在對基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)進(jìn)行標(biāo)準(zhǔn)化重組后,還必須建立整體數(shù)據(jù)的關(guān)系結(jié)構(gòu)。這一步的設(shè)計(jì)完成后,數(shù)據(jù)庫和數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)就基本完成了。系統(tǒng)實(shí)施時(shí),將數(shù)據(jù)分析和數(shù)據(jù)字典的內(nèi)容代入到設(shè)計(jì)的整體數(shù)據(jù)關(guān)系結(jié)構(gòu)中,建立起標(biāo)準(zhǔn)化的數(shù)據(jù)庫體系結(jié)構(gòu)。建立關(guān)系數(shù)據(jù)結(jié)構(gòu)涉及三個(gè)方面:確定關(guān)聯(lián)的關(guān)鍵索引項(xiàng)和建立關(guān)聯(lián)表;確定單父記錄結(jié)構(gòu);建立整個(gè)數(shù)據(jù)庫的關(guān)系結(jié)構(gòu)。根據(jù)上面的ER圖,

53、建立了6張數(shù)據(jù)庫表,其結(jié)構(gòu)如下:表4.1學(xué)生個(gè)人信息表標(biāo)簽。 4.1學(xué)生信息字段名稱數(shù)據(jù)類型是空的闡明數(shù)字varchar(20)不為空學(xué)生證(主碼)姓名varchar(20)不為空性別varchar(5)不為空性別年齡大整數(shù)不為空年齡部varchar(50)不為空專門大學(xué)varchar(50)不為空大學(xué)電話varchar(20)不為空地址varchar(50)不為空地址及時(shí)varchar(50)不為空入場時(shí)間時(shí)差varchar(50)不為空畢業(yè)時(shí)間密碼varchar(20)不為空密碼表4 。 2 教師個(gè)人信息表標(biāo)簽。 4 . 2 教師信息字段名稱數(shù)據(jù)類型是空的闡明數(shù)字varchar(20)不為

54、空員工編號(主要代碼)姓名varchar(20)不為空性別varchar(5)不為空性別年齡大整數(shù)不為空年齡部varchar(50)不為空部郵政varchar(20)不為空職稱評論varchar(100)不為空評論密碼varchar(20)不為空密碼表4 。 3 課程信息表標(biāo)簽。 4 . 3 課程信息字段名稱數(shù)據(jù)類型是空的闡明數(shù)字varchar(20)不為空課程編號(主要代碼)姓名varchar(20)不為空課程名信用大整數(shù)不為空信用老師varchar(20)不為空老師時(shí)間varchar(50)不為空上課時(shí)間地址varchar(50)不為空上課地點(diǎn)類型varchar(50)不為空課程類型表4

55、。 4 學(xué)生成績單標(biāo)簽。 4 . 4 學(xué)生表現(xiàn)字段名稱數(shù)據(jù)類型是空的闡明號碼varchar(20)不為空學(xué)生證(外碼)編號varchar(20)不為空課程編號(外碼)年varchar(50)不為空學(xué)年學(xué)期大整數(shù)不為空學(xué)期年級漂浮不為空分?jǐn)?shù)沖秀varchar(10)不為空重做標(biāo)志表4 。 5 選課表標(biāo)簽。 4 . 5 課程由學(xué)生選擇字段名稱數(shù)據(jù)類型是空的闡明斯諾varchar(20)不為空學(xué)生號碼諾varchar(20)不為空課程編號姓名varchar(20)不為空課程名稱信用大整數(shù)不為空課程學(xué)分老師varchar(20)不為空老師時(shí)間varchar(50)不為空上課時(shí)間地址varchar(50

56、)不為空上課地點(diǎn)類型varchar(50)不為空課程類型選擇varchar(20)不為空選課標(biāo)志表4 。 6 留言信息表標(biāo)簽。 4 . 6 請假詞的信息字段名稱數(shù)據(jù)類型是空的闡明標(biāo)題varchar(100)不為空主題姓名varchar(20)不為空評論者電子郵件varchar(50)無效的消息人電子郵件時(shí)間varchar(50)不為空留言時(shí)間內(nèi)容varchar(2000)不為空留言內(nèi)容4.2 功能設(shè)置4.2.1 主要模塊功能說明基于Web的教學(xué)管理系統(tǒng)主要是實(shí)現(xiàn)在線選課、信息查詢、個(gè)人信息修改等功能的系統(tǒng)。根據(jù)教學(xué)管理系統(tǒng)的基本要求以及不同角色使用系統(tǒng)的權(quán)限不同,本系統(tǒng)的具體功能設(shè)置如下:1.

57、管理員功能:實(shí)現(xiàn)學(xué)生信息查詢、教師信息查詢、添加或刪除學(xué)生、添加或刪除教師、消息管理、公告管理、課程信息錄入和修改等功能。2、教師功能:實(shí)現(xiàn)學(xué)生成績錄入和修改、個(gè)人信息查詢和修改、選修選課、在線留言、查看公告等功能。3、學(xué)生功能:實(shí)現(xiàn)在線選課、成績查詢、個(gè)人信息查詢修改、在線留言和查看公告等功能。4.2.2 系統(tǒng)功能模塊圖系統(tǒng)功能模塊如下:圖4.3系統(tǒng)功能模塊圖圖4.3系統(tǒng)功能模塊4.3 控制處理層系統(tǒng)的進(jìn)程控制主要由Servlet和Action完成。當(dāng)用戶提交相關(guān)信息時(shí),將信息致給Servlet或Action,Servlet或Action調(diào)用對應(yīng)JavaBean的相關(guān)函數(shù),執(zhí)行用戶期望的操作

58、。跳轉(zhuǎn)到對應(yīng)頁面,操作后返回結(jié)果。這個(gè)過程對用戶是透明的,用戶只能看到操作后返回的頁面信息,不需要了解整個(gè)系統(tǒng)的過程控制。5 系統(tǒng)實(shí)現(xiàn)與測試5.1 業(yè)務(wù)邏輯層的Bean函數(shù)1. 課程。爪哇:public Collection queryOperator(String hql):封裝查詢的方法。public Course getCourse(String id):返回指定id的課程。public static void addCourse(CourseForm course):添加新課程。public static void deleteCourse(String id):刪除指定id的課程。p

59、ublic Collection getCourses():返回所有課程信息。public void changeCourseInfo(String id, Course cour): 修改指定課程的信息2. 等級。爪哇:public Collection queryOperator(String hql):封裝查詢的方法。public void addGrade(GradeForm Grade):添加成績記錄。public Collection getAllGrades(String sno):返回指定學(xué)生的所有成績記錄。public Collection getYearGrades(Str

60、ing sno,String year):返回指定學(xué)生在指定學(xué)年的成績。public Collection getTermGrades(String sno,String year,Long term):返回指定學(xué)生在指定學(xué)期的成績。public static void changeGrade(String sno,Stringo,String Grade):修改指定學(xué)生指定課程的成績。3. 科學(xué)。爪哇:public Collection queryOperator(String hql):封裝查詢的方法。public static Sc getSc(String sno, Stringo):

溫馨提示

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

評論

0/150

提交評論