錢玉環(huán)
遼寧廣播電視大學(xué)( 沈陽(yáng) 110034 )
隨著數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用的迅速發(fā)展,數(shù)據(jù)庫(kù)的教學(xué)也隨之受到了廣泛的重視,但目前的數(shù)據(jù)庫(kù)教學(xué)系統(tǒng)卻越來(lái)越不適應(yīng)當(dāng)代數(shù)據(jù)庫(kù)教學(xué)的發(fā)展, 教學(xué)功能不齊全,現(xiàn)有功能不規(guī)范,使用不廣泛, 使用對(duì)象比較單一。以前的系統(tǒng)只是用于教師組卷、上成績(jī)等,很少有學(xué)生在線學(xué)習(xí),不普遍,也不是很方便,學(xué)生有這樣的需求,但系統(tǒng)不提供, 教師的試題不能及時(shí)傳達(dá)給學(xué)生,而學(xué)生的錯(cuò)誤信息也不能及時(shí)的反饋給老師,這給教學(xué)效果帶來(lái)了很大的影響,不能引發(fā)學(xué)生自主學(xué)習(xí)的興趣,只是運(yùn)用傳統(tǒng)的教學(xué)方法,學(xué)生和教師的積極性都不夠。學(xué)習(xí)效果不明顯。
數(shù)據(jù)庫(kù)教學(xué)系統(tǒng)就是為了充分利用現(xiàn)有計(jì)算機(jī)資源,實(shí)現(xiàn)教學(xué)、考試分離以及考試工作的全自動(dòng)化管理,有效利用校園網(wǎng)的軟硬件資源,使其發(fā)揮最大效力,更好的為數(shù)據(jù)庫(kù)教學(xué)、科研、管理服務(wù),同時(shí)可以進(jìn)行大規(guī)模的學(xué)生自發(fā)考試,實(shí)現(xiàn)考試的客觀性、自動(dòng)性;自動(dòng)化組卷可以減輕教師的工作強(qiáng)度。而傳統(tǒng)考試則是一個(gè)漫長(zhǎng)而復(fù)雜的過(guò)程,已經(jīng)越來(lái)越不適應(yīng)現(xiàn)代教學(xué)的需要。數(shù)據(jù)庫(kù)教學(xué)系統(tǒng)是傳統(tǒng)考試的延伸,它可以利用網(wǎng)絡(luò)的無(wú)限廣闊空間,隨時(shí)隨地的對(duì)自己進(jìn)行測(cè)試,并且可根據(jù)自己的多次成績(jī)對(duì)自己近期的學(xué)習(xí)作出相應(yīng)的學(xué)習(xí)效果評(píng)價(jià)。為教學(xué)工作者提供方便、提高數(shù)據(jù)庫(kù)教學(xué)工作的效率、準(zhǔn)確性和便利性,進(jìn)而提高整個(gè)教學(xué)工作的辦公自動(dòng)化水平。
Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序?qū)嵱?,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以完成數(shù)據(jù)持久化的重任。簡(jiǎn)而言之,就是把數(shù)據(jù)庫(kù)中的字符串封裝成JAVA類中的一個(gè)變量,這就是持久化。
Spring 是一個(gè)開(kāi)源框架,是為了解決企業(yè)應(yīng)用程序開(kāi)發(fā)復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個(gè)組件,同時(shí)為 J2EE 應(yīng)用程序開(kāi)發(fā)提供集成的框架。
Spring框架是一個(gè)分層架構(gòu),由 7 個(gè)定義良好的模塊組成。Spring模塊構(gòu)建在核心容器之上,核心容器定義了創(chuàng)建、配置和管理bean的方式。
其中系統(tǒng)主要用到了Core模塊,功能如下。
MVC框架是一個(gè)全功能的構(gòu)建Web應(yīng)用程序的MVC實(shí)現(xiàn)。通過(guò)策略接口,MVC框架變成為高度可配置的,MVC容納了大量視圖技術(shù),其中包括 JSP、Velocity、Tiles、iText和POI。在我的系統(tǒng)中主要是JSP。
Core又叫核心容器,它提供Spring框架的基本功能。它的主要組件是BeanFactory,它是工廠模式的實(shí)現(xiàn)。BeanFactory使用控制反轉(zhuǎn)(IOC)模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開(kāi),以此來(lái)減少代碼和代碼之間的偶合行。
Struts 2的體系與Struts 1體系的差別非常大,因?yàn)镾truts 2使用了WebWork的設(shè)計(jì)核心,而不是使用Struts 1的設(shè)計(jì)核心。Struts 2大量使用攔截器來(lái)處理用戶請(qǐng)求,從而允許用戶的業(yè)務(wù)邏輯控制器與Servlet API分離。它是一種來(lái)源于WebWork 2,可擴(kuò)展的,用來(lái)建立企業(yè)級(jí)Java Web應(yīng)用程序的框架,不但注重程序的開(kāi)發(fā)過(guò)程,更注重部署和后期維護(hù)。而且使用非常容易,最大可能的保留了和Strut 1.x的相似行。
(1)JSP(Java Server Pages)是一種開(kāi)發(fā)Web程序的技術(shù),是基于Java Servlet及整個(gè)Java體系的Web開(kāi)發(fā)技術(shù),秉承了Java語(yǔ)言的優(yōu)勢(shì),實(shí)現(xiàn)了真正的與平臺(tái)無(wú)關(guān)性。它是一種在HTML中嵌入Java語(yǔ)言的技術(shù),不過(guò)JSP文件使用jsp后綴,是編寫(xiě)Servlet的一種不同方式,JSP源文件由安裝在Web服務(wù)器上的JSP擎編譯成一個(gè)Servlet類字節(jié)代碼文件,交由Servlet引擎處理。JSP原則上能實(shí)現(xiàn)Servlet所有功能,具有它的優(yōu)點(diǎn)。JSP技術(shù)為創(chuàng)建動(dòng)態(tài)的Web頁(yè)面提供一種簡(jiǎn)化、快速的方式,JSP規(guī)范定義了服務(wù)器和JSP頁(yè)面之間的交互,并且描述頁(yè)面的格式和語(yǔ)法。
(2)JSP與ASP的簡(jiǎn)單比較:JSP與Microsoft的ASP技術(shù)非常相似。兩者都提供在HTML代碼中混合某種程序代碼、由語(yǔ)言引擎解釋執(zhí)行程序代碼的能力。在ASP或JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來(lái)描述處理邏輯。普通的HTML頁(yè)面只依賴于Web服務(wù)器,而ASP和JSP頁(yè)面需要附加的語(yǔ)言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。ASP和JSP都是面向Web服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。
傳統(tǒng)的web應(yīng)用允許用戶填寫(xiě)表單(form),當(dāng)提交表單時(shí)就向web服務(wù)器發(fā)送一個(gè)請(qǐng)求。服務(wù)器接收并處理傳來(lái)的表單,然后返回一個(gè)新的網(wǎng)頁(yè)。這個(gè)做法浪費(fèi)了許多帶寬,因?yàn)樵谇昂髢蓚€(gè)頁(yè)面中的大部分HTML代碼往往是相同的。由于每次應(yīng)用的交互都需要向服務(wù)器發(fā)送請(qǐng)求,應(yīng)用的響應(yīng)時(shí)間就依賴于服務(wù)器的響應(yīng)時(shí)間。這導(dǎo)致了用戶界面的響應(yīng)比本地應(yīng)用慢得多。 與此不同,AJAX應(yīng)用可以僅向服務(wù)器發(fā)送并取回必需的數(shù)據(jù),它使用SOAP或其它一些基于XML的web service接口,并在客戶端采用JavaScript處理來(lái)自服務(wù)器的響應(yīng)。因?yàn)樵诜?wù)器和瀏覽器之間交換的數(shù)據(jù)大量減少,結(jié)果我們就能看到響應(yīng)更快的應(yīng)用。同時(shí)很多的處理工作可以在發(fā)出請(qǐng)求的客戶端機(jī)器上完成,所以Web服務(wù)器的處理時(shí)間也減少了。
Ajax應(yīng)用程序的優(yōu)勢(shì)在于:(1)通過(guò)異步模式,提升了用戶體驗(yàn)。(1)優(yōu)化了瀏覽器和服務(wù)器之間的傳輸,減少不必要的數(shù)據(jù)往返,減少了帶寬占用。(3)Ajax引擎在客戶端運(yùn)行,承擔(dān)了一部分本來(lái)由服務(wù)器承擔(dān)的工作,從而減少了大用戶量下的服務(wù)器負(fù)載。
在傳統(tǒng)的Web開(kāi)發(fā)模式中,JavaScript是一種點(diǎn)綴的作用,完成很有限的功能,諸如表單驗(yàn)證之類。其語(yǔ)言本身也一直被當(dāng)作過(guò)程化的語(yǔ)言使用,很難完成復(fù)雜的功能。而Ajax的出現(xiàn)使得復(fù)雜腳本成為必需的組成部分,Ajax是web2.0的一種框架,這就對(duì)JavaScript程序設(shè)計(jì)提出了新的要求,很多Ajax應(yīng)用開(kāi)始利用JavaScript 面向?qū)ο蟮男再|(zhì)進(jìn)行開(kāi)發(fā)。事實(shí)上,Ajax提供了完善的機(jī)制來(lái)實(shí)現(xiàn)面向?qū)ο蟮拈_(kāi)發(fā)思想。在我的系統(tǒng)中我用到了這樣兩個(gè)框架分別是dwr,jque,用來(lái)實(shí)現(xiàn)答題后自動(dòng)跳出答案功能。
MySQL是一個(gè)真正的多用戶、多線程SQL數(shù)據(jù)可服務(wù)器。SQL是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫(kù)語(yǔ)言。MySQL是以一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)實(shí)現(xiàn)的,是有一個(gè)服務(wù)器守護(hù)程序mysqld和很多不同的客戶程序和庫(kù)組成的。
SQL是一種標(biāo)準(zhǔn)化語(yǔ)言,它使得存儲(chǔ)、更新和存取信息更容易。如果您想用SQL語(yǔ)言為一個(gè)網(wǎng)站檢索產(chǎn)品信息及存儲(chǔ)顧客信息,那么,MySQL能夠以足夠快的速度和靈活來(lái)允許您存儲(chǔ)紀(jì)錄文件和圖像。 盡管MySQL還在不斷的開(kāi)發(fā)中,但它已經(jīng)提供了一個(gè)豐富的和極其有用的功能集。
該系統(tǒng)不但能實(shí)現(xiàn)學(xué)生自測(cè),教師組卷,而且能實(shí)現(xiàn)學(xué)生自我學(xué)習(xí)效果評(píng)價(jià)的功能,其意義深遠(yuǎn)。
[1]薩師煊,王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論. 高等教育出版社,2006.
[2]王冠.SQL查詢語(yǔ)言及應(yīng)用.科學(xué)出版社,2002.
[3]李國(guó),馬玉書(shū).Web數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用.科學(xué)技術(shù)出版社,2006.
[4]馮玉才.數(shù)據(jù)庫(kù)基礎(chǔ)(第二版).華中理工大學(xué)出版社,2006.