已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
面向校企合作的學(xué)生信息管理系統(tǒng)摘 要本論文系統(tǒng)地闡述了學(xué)生管理系統(tǒng)的功能及實(shí)現(xiàn)。實(shí)現(xiàn)了學(xué)生管理、班級管理、科目管理、成績管理等功能。本系統(tǒng)界面簡單直觀,易于操作和使用,交互性強(qiáng)。經(jīng)過分析,我們使用 sun公司的jsp開發(fā)工具, 強(qiáng)大的sql查詢語言實(shí)現(xiàn)建立關(guān)系數(shù)據(jù)庫,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具,尤其是數(shù)據(jù)窗口這一能方便而簡潔操縱數(shù)據(jù)庫的智能化對象,首先在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型,然后,對初始原型系統(tǒng)進(jìn)行需求迭代,不斷修正和改進(jìn),直到形成滿意的可行系統(tǒng)。關(guān)鍵詞:學(xué)生管理系統(tǒng);系統(tǒng)開發(fā);信息管理abstractthe present paper elaborated systematically the student management system management systems function and realizes. realized the student to manage, the class and grade to manage, functions and so on subject management, result management. this system contact surface simple direct-viewing, simplify operation and use, interactive is strong. after the analysis, we use sun corporations jsp development kit, the formidable sql query language realizes the establishment relational database, uses each kind of object-oriented development kit which it provides, particularly the data window this can convenient and the succinct operation database intellectualized object, first establishes the system application prototype in a short time, then, carries on the demand iteration to the initial prototype system, revises unceasingly and improves, until forms the satisfied feasible system.key words: student management system management system; system development; information management目 錄第1章 引言31.1 課題研究的目的31.2 課題研究的意義4第2章 項(xiàng)目概述52.1 課題簡要說明52.2 可行性研究5第3章 需求分析63.1 用戶業(yè)務(wù)需求63.2 性能需求7第4章 相關(guān)技術(shù)簡介74.1 jsp技術(shù)簡介74.2 jsp工作原理84.3 jsp體系結(jié)構(gòu)84.4 jsp的特點(diǎn)94.5 sqlserver 2000 數(shù)據(jù)庫104.6 系統(tǒng)數(shù)據(jù)庫連接104.6 ajax技術(shù)簡介15第5章 系統(tǒng)分析175.1 功能模塊圖175.2 處理流程設(shè)計(jì)173.2.1 系統(tǒng)操作流程175.2.2 數(shù)據(jù)增加流程185.2.3 數(shù)據(jù)修改流程195.2.4 數(shù)據(jù)刪除流程205.3 系統(tǒng)e-r圖21第6章 系統(tǒng)詳細(xì)設(shè)計(jì)216.1 管理員登陸216.2 學(xué)生管理236.3 班級信息管理266.4 成績管理28第7章 系統(tǒng)調(diào)試與測試317.1 程序調(diào)試317.2 程序的測試317.2.1 測試的重要性及目的317.2.2 測試的步驟337.2.3 測試的主要內(nèi)容33第8章 結(jié)論358.1 系統(tǒng)評價(jià)358.2 安全性問題35致謝37參考文獻(xiàn)38第1章 引言1.1 課題研究的目的現(xiàn)今我國還有許多的學(xué)校采用傳統(tǒng)的紙介質(zhì)的管理模式,還主要依賴于人力手工的操作,并歸檔編號保存,事后如需查閱,則要人工從浩瀚的資料中查找,既費(fèi)時(shí)費(fèi)力又容易出錯(cuò)。作為保存資料的介質(zhì)-紙張,又有容易被火燒毀,易被蟲蛀,易發(fā)霉變質(zhì)等等缺點(diǎn)。這就急需有一套全新的高效的管理系統(tǒng),由計(jì)算機(jī)來代替手工完成學(xué)生信息的管理。21世紀(jì)以來,計(jì)算機(jī)技術(shù)的迅猛發(fā)展,特別是隨著網(wǎng)絡(luò)技術(shù)的出現(xiàn)標(biāo)志著信息時(shí)代已經(jīng)來臨。信息化浪潮、網(wǎng)絡(luò)革命在給社會帶來沖擊的同時(shí),也使學(xué)生信息管理受到了強(qiáng)烈的沖擊,管理傳統(tǒng)的管理方式已不能適應(yīng)人們對日益增長的信息的需求,建設(shè)網(wǎng)絡(luò)系統(tǒng),是現(xiàn)代化建設(shè)的客觀要求。建設(shè)以計(jì)算機(jī)為核心的信息網(wǎng)絡(luò),實(shí)現(xiàn)信息管理的自動化,更好地為工作服務(wù)?;谶@此問題,我認(rèn)為有必要建立一個(gè)學(xué)生信息管理系統(tǒng),使學(xué)生信息管理工作規(guī)范化,系統(tǒng)化,程序化,避免學(xué)生信息管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改學(xué)生信息情況。 1.2 課題研究的意義計(jì)算機(jī)已經(jīng)成為我們學(xué)習(xí)和工作的得力助手:今天,計(jì)算機(jī)的價(jià)格已經(jīng)十分低廉,性能卻有了長足的進(jìn)步。它已經(jīng)被應(yīng)用于許多領(lǐng)域,計(jì)算機(jī)之所以如此流行的原因主要有以下幾個(gè)方面:首先,計(jì)算機(jī)可以代替人工進(jìn)行許多繁雜的勞動;其次,計(jì)算機(jī)可以節(jié)省許多資源;第三,計(jì)算機(jī)可以大大的提高人們的工作效率;第四,計(jì)算機(jī)可以使敏感信息更加安全。現(xiàn)在,我們已經(jīng)進(jìn)入到internet時(shí)代了,學(xué)生信息管理也要隨之更新,隨著無紙化辦公的一步步實(shí)現(xiàn),讓計(jì)算機(jī)來管理學(xué)生信息是現(xiàn)在各個(gè)高校都在積極進(jìn)行的工作之一,也是高校教學(xué)管理工作的重要內(nèi)容之一。學(xué)生信息管理系統(tǒng)必然會在以后的信息管理系統(tǒng)中大放異彩。第2章 項(xiàng)目概述2.1 課題簡要說明 隨著學(xué)生信息量的不斷擴(kuò)大,有關(guān)學(xué)生信息管理的各種信息也成倍增長。面對龐大的信息量,有必要開發(fā)學(xué)生信息管理系統(tǒng)來提高管理工作的效率。今天我們使用計(jì)算機(jī)對學(xué)生信息進(jìn)行管理,具有手工管理所無法比擬的優(yōu)點(diǎn)。通過這樣的系統(tǒng),可以做到信息的規(guī)范管理、科學(xué)統(tǒng)計(jì)和快速查詢,從而減少管理方面的工作量,有效地提高學(xué)生信息管理的工作效率。2.2 可行性研究該階段通過對系統(tǒng)目標(biāo)的初步調(diào)研和分析,提出可行性方案并進(jìn)行論證。我們在這里主要從技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性等方面進(jìn)行分析。2.2.1 經(jīng)濟(jì)可行性開發(fā)該系統(tǒng)所需的相關(guān)資料可以通過已存在的相關(guān)系統(tǒng)進(jìn)行調(diào)查采集,所需的其他應(yīng)用軟件、硬件系統(tǒng)也易于獲得.因此,開發(fā)成本較低。而引進(jìn)使用本系統(tǒng)后,與傳統(tǒng)方式相比,具有高效率、低成本、高質(zhì)量的特點(diǎn),可以節(jié)省不少人力、物力及財(cái)力。所以,從經(jīng)濟(jì)的角度來看,該系統(tǒng)可行。2.2.2 技術(shù)可行性技術(shù)可行性要考慮現(xiàn)有的技術(shù)條件是否能夠順利完成開發(fā)工作,軟硬件配置是否滿足開發(fā)的需求等。本網(wǎng)站用的是jsp開發(fā)語言,調(diào)試相對簡單,當(dāng)前的計(jì)算機(jī)硬件配置也完全能滿足開發(fā)的需求,因此在技術(shù)上是絕對可行的。軟件方面:由于目前單機(jī)模式相對發(fā)展成熟,故軟件的開發(fā)平臺成熟可行,它們速度快、容量大、可靠性能高、價(jià)格低,完全能滿足系統(tǒng)的需求。2.2.3運(yùn)行可行性運(yùn)行可行性是對組織結(jié)構(gòu)的影響,現(xiàn)有人員和機(jī)構(gòu)和環(huán)境對系統(tǒng)的適應(yīng)性及人員培訓(xùn)補(bǔ)充計(jì)劃的可行性。當(dāng)前信息化技術(shù)已經(jīng)相當(dāng)普及,各類操作人員水平都有相當(dāng)?shù)母叨龋栽谶\(yùn)行上是可行性的。本系統(tǒng)的開發(fā),是典型的mis開發(fā),主要是對數(shù)據(jù)的處理,包括數(shù)據(jù)的收集,數(shù)據(jù)的變換,及數(shù)據(jù)的各種報(bào)表形式的輸出。采用流行的jsp+sqlserver 2000體系,已無技術(shù)上的問題。2.2.4 時(shí)間可行性從時(shí)間上看,在兩個(gè)月的時(shí)間里學(xué)習(xí)相關(guān)知識,并開發(fā)本學(xué)生信息管理系統(tǒng),時(shí)間上是有點(diǎn)緊,但是不是不可能實(shí)現(xiàn),通過兩個(gè)多月的努力功能基本實(shí)現(xiàn)。2.2.5 法律可行性 所有技術(shù)資料都為合法。 開發(fā)過程中不存在知識產(chǎn)權(quán)問題。 未抄襲任何學(xué)生信息管理系統(tǒng),不存在侵犯版權(quán)問題。 開發(fā)過程中未涉及任何法律責(zé)任。綜上所述,本系統(tǒng)的開發(fā)從技術(shù)上、從經(jīng)濟(jì)上、從法律上都是完全可靠的。第3章 需求分析3.1 用戶業(yè)務(wù)需求學(xué)生學(xué)籍管理。(1)添加學(xué)生:以班級為單位,進(jìn)行學(xué)生入庫。(2)刪除學(xué)生:當(dāng)學(xué)生畢業(yè)后,學(xué)生信息轉(zhuǎn)移備份數(shù)據(jù)庫中,系統(tǒng)的基本數(shù)據(jù)庫中需要刪除學(xué)生信息。該功能主要進(jìn)行成批地刪除學(xué)生信息,如連續(xù)學(xué)號區(qū)段的多位學(xué)生信息刪除,整個(gè)班級的刪除,所有學(xué)生信息的刪除。(3)新生管理:本部分的功能主要有新生導(dǎo)入及設(shè)置學(xué)號。學(xué)生成績錄入,查詢,統(tǒng)計(jì)分析。(1)分?jǐn)?shù)錄入:以班級為單位,錄入各科目的期中、期末、總評成績。(2)總分及名次:計(jì)算指定班級學(xué)生的總分及名次。(3)補(bǔ)考成績錄入:修改總評成績,以決定最終補(bǔ)考人數(shù)。學(xué)生信息管理系統(tǒng)將采用jsp技術(shù),結(jié)合microsoft公司的sqlserver2000數(shù)據(jù)庫,用無論安全性還是穩(wěn)定性都比較優(yōu)秀的mvc(model-view-control)模式進(jìn)行系統(tǒng)開發(fā)。3.2 性能需求系統(tǒng)對環(huán)境的要求服務(wù)起端的最低配置是由建立站點(diǎn)所需要的軟件來決定的,在最底配置的情況下,服務(wù)器的性能往往不進(jìn)人意,現(xiàn)在硬件性能已經(jīng)相當(dāng)出色,而且價(jià)格也很便宜,因此通常應(yīng)給服務(wù)器端配置高性能硬件。本機(jī)器的配置如下:處理器:inter pentium 41.6hz或更高。內(nèi)存:512mb硬件空間:160gb題目主要采用的技術(shù)數(shù)據(jù)庫:microsoft sql server 2000。編程語言 jsp服務(wù)器:tomcat5.5,jdk1.6開發(fā)環(huán)境:windowsxp第4章 相關(guān)技術(shù)簡介4.1 jsp技術(shù)簡介jsp(java server page服務(wù)器網(wǎng)頁)是從1998年開始出現(xiàn)的新技術(shù)。由sun公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),是基于javaservlet以及整個(gè)java體系的web開發(fā)技術(shù)。在傳統(tǒng)的網(wǎng)頁html文件(*.htm,*.html)中加入腳本片段和jsp標(biāo)記(tag),構(gòu)成jsp網(wǎng)頁(*.jsp)。jsp技術(shù)為創(chuàng)建顯示動態(tài)生成內(nèi)容的web頁面提供了簡便的方法。jsp作為java家族的一員,承襲了java的特點(diǎn),即跨平臺的特性,也即一次編譯,到處運(yùn)行。在國外,己經(jīng)大量使用jsp作為網(wǎng)絡(luò)應(yīng)用程序的開發(fā)工具,而在國內(nèi),盡管jsp還不是主流開發(fā)技術(shù),但是由于jsp的強(qiáng)大優(yōu)勢,許多網(wǎng)站都已經(jīng)準(zhǔn)備轉(zhuǎn)向jsp,利用jsp來開發(fā)動態(tài)網(wǎng)站。 4.2 jsp工作原理jsp是面向服務(wù)器的,因此支持任何瀏覽器。當(dāng)web服務(wù)器和jsp引擎遇到訪問jsp網(wǎng)頁的請求時(shí),jsp引擎將請求對象發(fā)送給服務(wù)器端的相關(guān)組件,比如javabean組件、servlet或ejb等,然后由服務(wù)器端組件處理這些請示,可能需要從數(shù)據(jù)庫或數(shù)據(jù)存儲中檢索信息,然后服務(wù)器端組件再將響應(yīng)對象返回jsp引擎。jsp引擎將響應(yīng)對象傳遞給jsp頁面,根據(jù)jsp頁面的html格式完成數(shù)據(jù)編排,最后web服務(wù)器和jsp引擎將格式化后的jsp頁面以html格式返回客戶瀏覽器。這就是當(dāng)前網(wǎng)站構(gòu)建中廣泛采用的瀏覽器web服務(wù)器后臺數(shù)據(jù)庫的三層架構(gòu)模式。因?yàn)閖sp所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果。4.3 jsp體系結(jié)構(gòu)jsp網(wǎng)站開發(fā)標(biāo)準(zhǔn)給出了兩種使用jsp的技術(shù),可以歸納為模式一、模式二。模式一:jsp+javabeans技術(shù)在這種模式中,jsp頁面獨(dú)自響應(yīng)請求并將處理結(jié)果返回給客戶。bean處理所有數(shù)據(jù)訪問,jsp實(shí)現(xiàn)頁面的表現(xiàn),以實(shí)現(xiàn)內(nèi)容生成與顯示相分離。當(dāng)處理復(fù)雜的大型應(yīng)用時(shí),頁面被嵌入大量的腳本或java代碼段,當(dāng)需要處理的商業(yè)邏輯復(fù)雜時(shí),這種情況會變得非常糟糕,大量的內(nèi)嵌代碼使得頁面程序變得復(fù)雜,對于前端界面設(shè)計(jì)人員,這是不可思議的事情。所以模式一可用于小型應(yīng)用,不能夠滿足大型應(yīng)用的需要。模式二:jsp+servlet+javabeans技術(shù)servlet技術(shù)是一種采用java技術(shù)來實(shí)現(xiàn)cgi功能的一種技術(shù),servlet技術(shù)非常適于服務(wù)器端的處理和編程,并且servlet會長期駐留在內(nèi)存。從開發(fā)的觀點(diǎn)看,模式二具有更清晰的頁面表現(xiàn),清楚的開發(fā)者角色劃分,在大規(guī)模項(xiàng)目開發(fā)中,模式二更被采用,模式二也更符合當(dāng)前流行的mvc結(jié)構(gòu)(model/view/controller),其中servlet對應(yīng)controller,處于控制者的位置,處理http請求,負(fù)責(zé)生成jsp中使用的beans組件或?qū)ο?,并判斷?yīng)將請求傳遞給哪個(gè)jsp等,jsp對應(yīng)view,負(fù)責(zé)生成最終的動態(tài)網(wǎng)頁并返回給瀏覽器。而javabeans對應(yīng)的是model,實(shí)現(xiàn)各個(gè)具體的應(yīng)用邏輯與功能。4.4 jsp的特點(diǎn)1. 簡化的頁面生成技術(shù)。jsp頁面用標(biāo)準(zhǔn)的html或xml命令來處理頁面的格式化和布局設(shè)計(jì),而用類似html、xml的標(biāo)記和java語言編寫的腳本程序生成頁面內(nèi)容。這使得頁面形式與頁面內(nèi)容互相獨(dú)立,非常有利于大型項(xiàng)目的分工合作。2. 與java平臺有機(jī)集成。jsp技術(shù)是java 2平臺的重要組成部分,jsp使用java語言作為它的腳本語言。在jsp頁面中可以使用幾乎所有的java組件和java api,這就能充分發(fā)揮出java語言的強(qiáng)大功能。使用jsp技術(shù)可以創(chuàng)建具有高度可伸縮性和可靠性的web應(yīng)用程序。3. 硬件平臺器無關(guān)性。jsp作為java家族的一員,秉承了java技術(shù)的“一次編寫,隨處可用(write once,rum anywhere)”的特性,可以運(yùn)行于大多數(shù)流行的操作系統(tǒng)平臺及web服務(wù)器,這種與服務(wù)器硬件和操作系統(tǒng)平臺的無關(guān)性是jsp相對于其它動態(tài)網(wǎng)頁技術(shù)最大的一個(gè)優(yōu)點(diǎn)。4. 功能可擴(kuò)展性。如同microsoft的jsp技術(shù)可以通過activex/com組件來擴(kuò)展功能一樣,jsp可以通過javabean和ejb(enterprise javabean)以及自定義的標(biāo)記來擴(kuò)展功能。jsp可以通過jdbc,與諸如oracle、sql server這樣的大型關(guān)系數(shù)據(jù)庫進(jìn)行連接。jsp提供了一些隱含對象。這些隱含對象在jsp頁面中可以直接引用,而不必首先聲明。利用jsp提供的這些隱含對象,可以使腳本功能更加強(qiáng)大,并且編程更加容易、方便。例如,利用request對象,可以很容易地接收用戶在html表單中提交的信息。4.5 sqlserver 2000 數(shù)據(jù)庫sql server是由microsoft開發(fā)和推廣的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(dbms),它最初是由microsoft、sybase和ashton-tate三家公司共同開發(fā)的,并于1988年推出了第一個(gè)os/2版本。 sql server近年來不斷更新版本,1996年,microsoft 推出了sql server 6.5版本;1998年,sql server 7.0版本和用戶見面;sql server 2000是microsoft公司于2000年推出的最新版本。 sql server 特點(diǎn):1真正的客戶機(jī)/服務(wù)器體系結(jié)構(gòu)。 2圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡單。 3豐富的編程接口工具,為用戶進(jìn)行程序設(shè)計(jì)提供了更大的選擇余地。 4sql server與windows nt完全集成,利用了nt的許多功能,如發(fā)送和接受消息,管理登錄安全性等。sql server也可以很好地與microsoft backoffice產(chǎn)品集成。 5具有很好的伸縮性,可跨越從運(yùn)行windows 95/98的膝上型電腦到運(yùn)行windows 2000的大型多處理器等多種平臺使用。 6對web技術(shù)的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到web頁面上。 7sql server提供數(shù)據(jù)倉庫功能,這個(gè)功能只在oracle和其他更昂貴的dbms中才有。4.6 系統(tǒng)數(shù)據(jù)庫連接jdbc技術(shù)是java database connectivity的縮寫,它是sun公司提供的一種支持基本sql功能的通用的應(yīng)用程序接口(application programming interface)。它由一組用java語言編寫的類和接口組成。通過這些類和接口,程序開發(fā)人員可以在java語言中方便地建立與數(shù)據(jù)庫的鏈接,通過執(zhí)行相應(yīng)sql語句,完成對不同數(shù)據(jù)庫的訪問。因此,開發(fā)人員使用jdbc api可以不必編寫一個(gè)應(yīng)用程序來訪問sybase數(shù)據(jù)庫,又另外編寫一個(gè)應(yīng)用程序去訪問oracle數(shù)據(jù)庫,再寫一個(gè)應(yīng)用程序訪問microsoft的sql server。不但如此,使用java語言編寫的應(yīng)用程序可以在任何支持java的平臺上運(yùn)行,不必在不同的平臺上開發(fā)不同的應(yīng)用程序。簡單地說,jdbc能完成下列三件事:1. 同一個(gè)數(shù)據(jù)庫建立連接;2. 向數(shù)據(jù)庫建立連接;3. 處理數(shù)據(jù)庫返回的結(jié)果。jdbc是一種通用低層的應(yīng)用程序編程接口,它在不同的數(shù)據(jù)庫功能模塊的層次上提供一個(gè)統(tǒng)一的用戶界面。說jdbc是一處低級的api,是指它直接調(diào)用sql命令,它比其他的一些數(shù)據(jù)庫連接api要容易使用些,但它有同樣可以作為更高級的,用戶辦面更友好的api或開發(fā)工具基礎(chǔ)。很多可視化的java開發(fā)工具,如visual age for java、visual caf、j+等都提供了基于jdbc的更面向用戶的類和包,直接將關(guān)系數(shù)據(jù)庫的表或視圖映射為java類,程序員通過可視化工具直接對java對象進(jìn)行操作,而真正需要的sql調(diào)用則根據(jù)程序員發(fā)出的對對象的各種屬性、方法的操作來自動產(chǎn)生。另一種使用jdbc api 的方式為,用戶程序可以提供一個(gè)界面(如菜單等)讓用戶選擇對數(shù)據(jù)庫進(jìn)行的操作,選中一個(gè)任務(wù)后,提示用戶輸入一些必要的信息,然后根據(jù)用戶的輸入產(chǎn)生相應(yīng)的sql命令以及java程序。通過這處方式,用戶可以完成對數(shù)據(jù)庫的操作,即使他并不了解sql語法以及jdbc編程。數(shù)據(jù)庫訪問的三層結(jié)構(gòu)如圖5.1所示,瀏覽器端程序要訪問數(shù)據(jù)庫,首先通過中間件,然后由中間件對數(shù)據(jù)庫操作權(quán)限進(jìn)行認(rèn)證,認(rèn)證通過才能對數(shù)據(jù)庫進(jìn)行操作。圖5.1 使用中間件的數(shù)據(jù)庫訪問三層結(jié)構(gòu)用戶對數(shù)據(jù)庫的存取權(quán)限認(rèn)證是中間件中完成,對數(shù)據(jù)庫的查詢、插入、更新和刪除操作等都封裝在中間件中,該中間件位于服務(wù)器端,中間件對數(shù)據(jù)庫進(jìn)行操作后,再將處理結(jié)果通過web服務(wù)器返回到瀏覽器端用戶。這樣,在用戶端輸入的用戶名和密碼,可以通過加密算法進(jìn)行加密后在網(wǎng)絡(luò)上傳輸,在中間件中進(jìn)行解密認(rèn)證,然后再進(jìn)行數(shù)據(jù)庫的存取操作,數(shù)據(jù)庫存取權(quán)限的用戶名和密碼出現(xiàn)在位于服務(wù)器端的中間件中,這樣就更加安全。本系統(tǒng)采用的正是這樣的三層結(jié)構(gòu)的數(shù)據(jù)庫訪問模式。在三層模型中,命令將被發(fā)送到服務(wù)的”中間層”,而”中間層”將sql語句發(fā)送到數(shù)據(jù)庫。數(shù)據(jù)庫處理sql語句并將結(jié)果返回”中間層”,然后”中間層”將它們返回用戶。其模型如圖5.2所示。圖5.2 jdbc的三層模型因?yàn)椤敝虚g層”可以進(jìn)行對訪問的控制并協(xié)同數(shù)據(jù)庫的更新,并且可以使用一個(gè)易用的高層api,這個(gè)api可以由“中間層”進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成低層的調(diào)用。所以在許多種情況下,三層模型可以提供更好的性能,本系統(tǒng)中所采用的就是此種模型。jdbc是java應(yīng)用程序與數(shù)據(jù)庫的溝通橋梁。它提供了三項(xiàng)服務(wù)功能:一、與數(shù)據(jù)庫建立連接。二、將sql語句傳遞給數(shù)據(jù)庫。三、從數(shù)據(jù)庫取得sql語句的執(zhí)行結(jié)果。當(dāng)jdbc要與數(shù)據(jù)庫建立連接前,首先,它必須先取得連接此數(shù)據(jù)庫的jdbc驅(qū)動程序,class.forname()即是在執(zhí)行此項(xiàng)工作。建立數(shù)據(jù)庫連接的第一步驟就是將jdbc驅(qū)動程序的類載入至jvm(java virtuall machine)中,本系統(tǒng)中利用java.lang.class類內(nèi)的forname()靜態(tài)函數(shù)依據(jù)指定的類名稱,將jdbc驅(qū)動程序載入進(jìn)來。完成載入驅(qū)動程序的步驟后,必須使用java.sal.drivermanager類所提供的getconnection()靜態(tài)函數(shù),取得與數(shù)據(jù)庫間的連接對象。此連接對象的類類型為java.sal.connection,必須通過它才能將sql指令傳遞給數(shù)據(jù)庫,而執(zhí)行結(jié)果也需要通過連接對象來取得。當(dāng)取得連接對象后,還必須取得statement對象才能對數(shù)據(jù)庫執(zhí)行sql指令。statement主要實(shí)現(xiàn)兩個(gè)功能:執(zhí)行sql語句以及取得執(zhí)行結(jié)果。在java.sql.statement的sql對象中執(zhí)行查詢或修改命令的函數(shù)后傳回的是一個(gè)resultset 對象,這個(gè)對象提供了一個(gè)存取sql執(zhí)行結(jié)果的管道,以便通過它將表格數(shù)據(jù)從數(shù)據(jù)庫中取出。每個(gè)statement對象只能產(chǎn)生一個(gè)resultset 對象。數(shù)據(jù)庫連接如圖5.3所示:圖5.3 數(shù)據(jù)庫的連接處理數(shù)據(jù)庫的連接處理具體實(shí)現(xiàn)如下:/建立jdbcodbc橋sun.jdbc.odbc.jdbcodbcdriver;/橋建立不成功時(shí)的錯(cuò)誤處理catch(classnotfoundexception event)/建立與數(shù)據(jù)庫的連接,并發(fā)送sql查詢語句,將結(jié)果保存到rs對象中con=建立jdbcodbc橋sql=sql查詢語句執(zhí)行查詢r(jià)s=返回結(jié)果/sql出錯(cuò)處理 catch(sqlexception e1)有了jdbc,向各種關(guān)系數(shù)據(jù)發(fā)送sql語句就是一件很容易的事。換言之,有了jdbc api,就不必為訪問sybase數(shù)據(jù)庫專門寫一個(gè)程序,為訪問oracle數(shù)據(jù)庫又專門寫一個(gè)程序,或?yàn)樵L問informix數(shù)據(jù)庫又編寫另一個(gè)程序等等,程序員只需用jdbc api寫一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫發(fā)送sql調(diào)用。同時(shí),將java語言和jdbc結(jié)合起來使程序員不必為不同的平臺編寫不同的應(yīng)用程序,只須寫一遍程序就可以讓它在任何平臺上運(yùn)行,這也是java語言“編寫一次,處處運(yùn)行”的優(yōu)勢。java數(shù)據(jù)庫連接體系結(jié)構(gòu)是用于java應(yīng)用程序連接數(shù)據(jù)庫的標(biāo)準(zhǔn)方法。jdbc對java程序員而言是api,對實(shí)現(xiàn)與數(shù)據(jù)庫連接的服務(wù)提供商而言是接口模型。作為api,jdbc為程序開發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫廠商及第三方中間件廠商實(shí)現(xiàn)與數(shù)據(jù)庫的連接提供了標(biāo)準(zhǔn)方法。jdbc使用已有的sql標(biāo)準(zhǔn)并支持與其它數(shù)據(jù)庫連接標(biāo)準(zhǔn),如odbc之間的橋接。jdbc實(shí)現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡單、嚴(yán)格類型定義且高性能實(shí)現(xiàn)的接口。java 具有堅(jiān)固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動下載等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是 java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進(jìn)行對話的方法。而 jdbc 正是作為此種用途的機(jī)制。 jdbc 擴(kuò)展了 java 的功能。例如,用 java 和 jdbc api 可以發(fā)布含有 applet 的網(wǎng)頁,而該 applet 使用的信息可能來自遠(yuǎn)程數(shù)據(jù)庫企業(yè)也可以用 jdbc 通過 intranet 將所有職員連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫中(即使這些職員所用的計(jì)算機(jī)有 windows、 macintosh 和unix 等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用java 編程語言,對從 java 中便捷地訪問數(shù)據(jù)庫的要求也在日益增加。 mis 管理員們都喜歡 java 和 jdbc 的結(jié)合,因?yàn)樗剐畔鞑プ兊萌菀缀徒?jīng)濟(jì)。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是儲存在不同數(shù)據(jù)庫管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序。對于商務(wù)上的銷售信息服務(wù), java 和jdbc 可為外部客戶提供獲取信息更新的更好方法。簡單地說,jdbc 可做三件事:與數(shù)據(jù)庫建立連接、發(fā)送 sql 語句并處理結(jié)果。下列代碼段給出了以上三步的基本示例: connection con = drivermanager.getconnection(jdbc:odbc:wombat,login, password); statement stmt = con.createstatement(); resultset rs = stmt.executequery(select a, b, c from table1); while (rs.next() int x = rs.getint(a); string s = rs.getstring(b); float f = rs.getfloat(c); 上述代碼對基于jdbc的數(shù)據(jù)庫訪問做了經(jīng)典的總結(jié)。4.6 ajax技術(shù)簡介ajax全稱為“asynchronous javascript and xml”(異步j(luò)avascript和xml),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。ajax(asynchronous javascript + xml)的定義 :基于web標(biāo)準(zhǔn)(standards-based presentation)xhtml+css的表示; 使用 dom(document object model)進(jìn)行動態(tài)顯示及交互; 使用 xml 和 xslt 進(jìn)行數(shù)據(jù)交換及相關(guān)操作; 使用 xmlhttprequest 進(jìn)行異步數(shù)據(jù)查詢、檢索; 使用 javascript 將所有的東西綁定在一起。英文參見ajax的提出者jesse james garrett的原文,原文題目(ajax: a new approach to web applications)。類似于dhtml或lamp,ajax不是指一種單一的技術(shù),而是有機(jī)地利用了一系列相關(guān)的技術(shù)。事實(shí)上,一些基于ajax的“派生/合成”式(derivative/composite)的技術(shù)正在出現(xiàn),如“aflax”。 ajax的應(yīng)用使用支持以上技術(shù)的web瀏覽器作為運(yùn)行平臺。第5章 系統(tǒng)分析5.1 功能模塊圖學(xué)生信息管理系統(tǒng)班級管理成績管理學(xué)生管理科目管理修改密碼5.2 處理流程設(shè)計(jì)3.2.1 系統(tǒng)操作流程錯(cuò)誤信息系統(tǒng)主界面系統(tǒng)登錄界面系統(tǒng)管理輸入操作員及密碼數(shù)據(jù)庫檢查密碼錯(cuò)誤密碼正確功能界面功能處理5.2.2 數(shù)據(jù)增加流程添加信息時(shí),編號字段由系統(tǒng)自動生成,且不能修改,其他信息由用戶輸入,之后對數(shù)據(jù)進(jìn)行合法判斷,合法則寫入保存至數(shù)據(jù)庫,不合法則重新輸入數(shù)據(jù)。數(shù)據(jù)增加流程圖:開始自動生成編號輸入數(shù)據(jù)是否合法寫入數(shù)據(jù)庫結(jié)束圖3.2 數(shù)據(jù)增加流程圖5.2.3 數(shù)據(jù)修改流程在修改信息時(shí),先選中一條待修改的記錄,然后直接輸入數(shù)據(jù),判斷合法性,合法則保存至數(shù)據(jù)庫,不合法重新輸入。數(shù)據(jù)修改流程圖如圖3.3所示。開始選擇需要修改記錄輸入數(shù)據(jù)是否合法寫入數(shù)據(jù)庫結(jié)束圖3.3 數(shù)據(jù)修改流程圖5.2.4 數(shù)據(jù)刪除流程當(dāng)用戶選定一條記錄時(shí),單擊刪除按鈕,會提示用戶是否確定刪除,然后刪除數(shù)據(jù)庫相關(guān)內(nèi)容。數(shù)據(jù)刪除流程圖如圖3.4所示。開始選擇需要刪除記錄是否刪除更新數(shù)據(jù)庫圖3.4 數(shù)據(jù)刪除流程圖5.3 系統(tǒng)e-r圖密碼用戶名用戶管理信息學(xué)生管理班級管理科目管理成績修改第6章 系統(tǒng)詳細(xì)設(shè)計(jì)6.1 管理員登陸當(dāng)系統(tǒng)登陸時(shí),首先出現(xiàn)的是一個(gè)用戶權(quán)限登陸的界面, 權(quán)限設(shè)置主要是維護(hù)系統(tǒng)的安全性和完整性。擁有管理員權(quán)限的操作員能進(jìn)行相應(yīng)的權(quán)限設(shè)置。如下圖所示:主要代碼如下:package util;import java.sql.*;public class dbconn static try class.forname(com.microsoft.jdbc.sqlserver.sqlserverdriver);/ class.forname(com.mysql.jdbc.driver); / class.forname(sun.jdbc.odbc.jdbcodbcdriver); catch(exception ex) ex.printstacktrace(); public static connection getconn() try connection conn=drivermanager.getconnection(jdbc:microsoft:sqlserver:/localhost:1433;databasename=hshygl,sa,123);/ conn = drivermanager.getconnection(jdbc:mysql:/localhost/fzshop,root,123);/ connection conn=drivermanager.getconnection(jdbc:odbc:temp); return conn; catch(exception ex) ex.printstacktrace(); return null; public static void close(connection conn,statement st,resultset rs) if(rs!=null) try rs.close(); catch(sqlexception ex) if(st!=null) try st.close(); catch(exception ex) if(conn!=null) try conn.close(); catch(exception ex) 6.2 學(xué)生管理此模塊下可以對學(xué)生進(jìn)行添加,刪除的功能。界面如下圖所示:主要代碼如下:package util;import java.io.unsupportedencodingexception;import java.text.simpledateformat;import java.util.date;public class validate /* * 是否為數(shù)字和英文驗(yàn)證 * */public int getintandchar(string str)char c;int i;for (i = 0; i=0 & c=a & c=a & c=z)break;/判斷字符是否在某個(gè)區(qū)間if(i str.length()return -1;elsereturn 0;/* * 是否為整數(shù)驗(yàn)證 * */public int getint(string str)char c;int i;for (i = 0; i=0 & c=9)break;/判斷字符是否在某個(gè)區(qū)間if(i str.length()return -1;elsereturn 0;/* * 是否為非法字符驗(yàn)證 * */public boolean getlawlesschar(string str)boolean flag = false;char c;for(int i = 0;i str.length();i+)c = str.charat(i);switch(c)case : flag = true; break;case : flag = true; break;case & : flag = true; break;case : flag = true; break;return flag;6.3 班級信息管理此模塊下可以對班級信息進(jìn)行添加,修改,刪除的功能。界面如下圖所示:主要代碼如下:package servlet;import java.io.ioexception;import java.io.printwriter;import java.text.simpledateformat;import java.util.calendar;import java.util.date;import javax.servlet.requestdispatcher;import javax.servlet.servletexception;import javax.servlet.http.httpservlet;import javax.servlet.http.httpservletrequest;import javax.servlet.http.httpservletresponse;import util.validate;import bean.insertupdatedelbean;public class amountservlet extends httpservlet /* * constructor of the object. */public amountservlet() super();/* * destruction of the servlet. */public void destroy() super.destroy(); / just puts destroy string in log/ put your code here/* * the doget method of the servlet. * * this method is called when a form has its tag value method equals to get. * * param request the request send by the client to the server * param response the response send by the server to the client * throws servletexception if an error occurred * throws ioexception if an error occurred */public void doget(httpservletrequest request, httpservletresponse response)throws servletexception, ioexception dopost(request, response);/* * the dopost method of the servlet. * * this method is called when a form has its tag value method equals to post. * * param request the request send by the client to the server * param response the response send by the server to the client * throws servletexception if an error occurred * throws ioexception if an error occurred */public void dopost(httpservletrequest request, httpservletresponse response)throws servletexception, ioexception response.setcontenttype(text/html;charset=gb2312);request.setcharacterencoding(gb2312);string id = request.getparameter(id);string amount = request.getparameter(amount);string sql = update users set amount=amount+amount+ where id=+id;insertupdatedelbean ib = new insertupdatedelbean();ib.insertandupdateanddel(sql);sql = insert into payment(usersid,name,price) values(+id+,學(xué)生信息管理,+amount+);ib.insertandupdateanddel(sql);request.setattribute(message, 操作成功!);requestdispatcher rd=request.getrequestdispatcher(/admin/users_amount.jsp);rd.forward(request,response);6.4 成績管理此模塊下可以對成績進(jìn)行管理,包括對學(xué)生成績的添加、修改、刪除。界面如下圖所示:主要代碼如下:package servlet;import java.io.ioexception;import java.util.arraylist;import javax.servlet.requestdispatcher;import javax.servlet.servletexception;import javax.servlet.http.httpservlet;import javax.servlet.http.httpservletrequest;import javax.servlet.http.httpservletresponse;import util.validate;import bean.allbean;import bean.insertupdatedelbean;import bean.selectbean;public class begindateservlet extends httpservlet /* * constructor of the object. */public begindateservlet() super();/* * destruction of the servlet. */public void destroy() super.destroy(); / just puts destroy string in log/ put your code here/* * the doget method of the servlet. * * this method is called when a for
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年北師大版九年級歷史下冊階段測試試卷含答案
- 2025年華師大新版一年級語文下冊階段測試試卷含答案
- 2025年人教A新版九年級歷史下冊月考試卷含答案
- 2025年粵教新版高三英語上冊月考試卷含答案
- 2025年北師大版選擇性必修3歷史下冊階段測試試卷含答案
- 公民教育理論與實(shí)踐知到智慧樹章節(jié)測試課后答案2024年秋西華大學(xué)
- 2025年度定制衣柜設(shè)計(jì)制作合同樣本4篇
- 技術(shù)部合同范本(2篇)
- 房建工程監(jiān)理合同(2篇)
- 承包商安全環(huán)保管理合同(2篇)
- 定額〔2025〕1號文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價(jià)格水平調(diào)整的通知
- 2024年城市軌道交通設(shè)備維保及安全檢查合同3篇
- 【教案】+同一直線上二力的合成(教學(xué)設(shè)計(jì))(人教版2024)八年級物理下冊
- 湖北省武漢市青山區(qū)2023-2024學(xué)年七年級上學(xué)期期末質(zhì)量檢測數(shù)學(xué)試卷(含解析)
- 單位往個(gè)人轉(zhuǎn)賬的合同(2篇)
- 電梯操作證及電梯維修人員資格(特種作業(yè))考試題及答案
- 科研倫理審查與違規(guī)處理考核試卷
- GB/T 44101-2024中國式摔跤課程學(xué)生運(yùn)動能力測評規(guī)范
- 鍋爐本體安裝單位工程驗(yàn)收表格
- 高危妊娠的評估和護(hù)理
- 2024年山東鐵投集團(tuán)招聘筆試參考題庫含答案解析
評論
0/150
提交評論