宋國(guó)偉 薛益鴿
摘 要: 本文論述了Java以及SQL Server的技術(shù)簡(jiǎn)介,分析了Java以及SQL Server的發(fā)展歷程。針對(duì)應(yīng)用需求,研究選擇Java語(yǔ)言作為整個(gè)系統(tǒng)的開發(fā)語(yǔ)言,SQL Server 2008作為系統(tǒng)數(shù)據(jù)庫(kù),通過運(yùn)用SQL語(yǔ)句對(duì)數(shù)據(jù)進(jìn)行增、刪、改、查,實(shí)現(xiàn)了按條件查詢相對(duì)應(yīng)信息、智能選課、人員信息的增、刪、改、查。并通過JDBC接口鏈接數(shù)據(jù)庫(kù),使用Java語(yǔ)言實(shí)現(xiàn)所有的功能模塊的界面,更為全面的實(shí)現(xiàn)了學(xué)生選課評(píng)分系統(tǒng),其中全面包括教師對(duì)學(xué)生課程的增刪改查,學(xué)生退選課的操作以及教師對(duì)學(xué)生的評(píng)分操作。
關(guān)鍵詞: 學(xué)生選課評(píng)分系統(tǒng);Java;SQL Server
Abstract:The paper discusses the Java and SQL Server technology profiles and analyzes the development process of Java and SQL Server. According to the application requirements the research chooses Java as the development language of the whole system and SQL Server 2008 as the system database and uses SQL statements to add or delete data for achieving the query of the corresponding information according to the conditions intelligent course selection additions and deletions of personnel information search. Meanwhile through the JDBC interface to link the database Java language is adopted to achieve all the interfaces of functional modules. Therefore the student selective scoring system is more comprehensively realized which includes a systematic examination of teachers' additions and deletions of student classes students' retirement class operations and teachers' scoring operation.
Key words: the student selective scoring system;Java;SQL Server
引言
Java是一種高級(jí)的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,同時(shí)也是一種跨平臺(tái)語(yǔ)言。從PC端到手機(jī)應(yīng)用都有Java開發(fā)的程序和游戲,Java程序可以運(yùn)行在任何設(shè)備和平臺(tái)上,不論是任何計(jì)算機(jī)、操作系統(tǒng)、或是支持Java的硬件設(shè)備[1]。
Java語(yǔ)言的語(yǔ)法規(guī)則與C++類似,但同時(shí)也簡(jiǎn)潔許多,去除了C語(yǔ)言中的指針類型,大大提高了可靠性,并且還具備更高的安全性,堪稱時(shí)下在使用中最為廣泛的優(yōu)秀程序編程語(yǔ)言。
發(fā)展至今,Java依據(jù)應(yīng)用范圍可劃分為3個(gè)版本,即Java SE、Java EE、Java ME,也就是Sun ONE(Open Net Environment)體系。其中,Java SE是Java的標(biāo)準(zhǔn)版,適用于Java桌面應(yīng)用的開發(fā),設(shè)計(jì)中包含著Java語(yǔ)言基礎(chǔ)、JDBC(Java 數(shù)據(jù)庫(kù)連接性)操作、I/O(輸入/輸出)、網(wǎng)絡(luò)通信、多線程等技術(shù)。Java EE是指Java enterprise edition,也就是Java企業(yè)版,多用于企業(yè)級(jí)開發(fā),包括Web開發(fā)等諸多組件內(nèi)容在內(nèi)。Java ME則可為在移動(dòng)設(shè)備和嵌入式設(shè)備(比如手機(jī)、PDA、電視機(jī)頂盒和打印機(jī))上運(yùn)行的應(yīng)用程序提供一個(gè)綜合強(qiáng)大的背景環(huán)境。Java ME 包括靈活的用戶界面、健壯的安全模型、多組內(nèi)置網(wǎng)絡(luò)協(xié)議以及對(duì)可以動(dòng)態(tài)下載的連網(wǎng)和離線應(yīng)用程序的豐富支持[2]。
在運(yùn)行中,Java設(shè)計(jì)配置了三大框架,也就是:Struts+Hibernate+Spring。Java三大框架主要用來研發(fā)Web應(yīng)用。其中,Struts主要提供層的顯示,Spring利用內(nèi)置的IOC和AOP來處理控制業(yè)務(wù)(重點(diǎn)用于對(duì)數(shù)據(jù)庫(kù)的操作),Hibernate主要是將數(shù)據(jù)持久化到數(shù)據(jù)庫(kù)中。
在已有的研究工作中,Java語(yǔ)言呈現(xiàn)出如下特性:簡(jiǎn)單、面向?qū)ο蟆⒎植夹浴⒖梢浦残浴⒔忉屝浴踩浴⒔研浴⒍嗑€程、高性能、動(dòng)態(tài)。
SQL Server是一種關(guān)系數(shù)據(jù)管理系統(tǒng)。2008年,SQL Server 2008 簡(jiǎn)體中文版即已在中國(guó)正式發(fā)行。SQL Server 2008 版本可以將結(jié)構(gòu)化、半結(jié)構(gòu)化,非結(jié)構(gòu)化文檔的數(shù)據(jù)直接存儲(chǔ)到數(shù)據(jù)庫(kù)中。可以通過SQL語(yǔ)句對(duì)數(shù)據(jù)進(jìn)行增、刪、改、查等各類操作。
SQL Server2008除了繼承SQL Server 2005的優(yōu)點(diǎn)外,還提供許多的新特性、新功能,具備數(shù)據(jù)壓縮,基于策略的管理和集成全文檢索功能[3]。此外,SQL Server 2008 允許在Microsoft.Net和Visual Studio 開發(fā)的自定義應(yīng)用程序中使用數(shù)據(jù),在面向服務(wù)的框架(SOA)和基于Microsoft Biz Talk Server展開的業(yè)務(wù)流程中使用數(shù)據(jù)。
2012年的SQL Server 2012是在原有SQL Server 2008的基礎(chǔ)上又加入了重大改進(jìn),除了保留SQL Server 2008的風(fēng)格外,還在管理、安全,以及多維數(shù)據(jù)分析、報(bào)表分析等方面做出了進(jìn)一步的優(yōu)化提升。
1 開發(fā)工具
MyEclipse(MyEclipse Enterprise Workbench,簡(jiǎn)稱MyEclipse)是對(duì)Eclipse IDE的擴(kuò)展,可以利用MyEclipse在數(shù)據(jù)庫(kù)和Java程序開發(fā)中高效提升研發(fā)的效率。這是JavaEE的集成開發(fā)環(huán)境,包括編碼、調(diào)試、測(cè)試和發(fā)布功能,全方面支持HTML、Struts、JSP、CSS、Javascript、Spring、SQL和Hibernate。
究其實(shí)質(zhì),MyEclipse 就是一個(gè)巨大的插件集合,可以將其視作Eclipse,但卻是經(jīng)過擴(kuò)展后的Eclipse,也就是在最初的Eclipse中高度集成了大量的其它插件,并經(jīng)過優(yōu)化,從而能夠個(gè)性化定制設(shè)計(jì)基本的Java代碼編寫、Web開發(fā),以及各種主流框架和數(shù)據(jù)庫(kù)開發(fā)。
JDBC是一種鏈接Java與SQL語(yǔ)句的API,是由Java編寫的類和接口組成。使用JDBC,在Java中調(diào)取SQL語(yǔ)句極為方便,不必再重寫一個(gè)鏈接數(shù)據(jù)庫(kù)的程序,因?yàn)镴ava和JDBC結(jié)合起來使用就無需考慮不同平臺(tái)的問題,這也是Java語(yǔ)言“編寫一次,處處運(yùn)行”的特點(diǎn)優(yōu)勢(shì)之所在。JDBC不僅可以用于桌面應(yīng)用開發(fā),而且還可用于網(wǎng)頁(yè)開發(fā)。隨著Java語(yǔ)言的推廣,對(duì)數(shù)據(jù)庫(kù)的應(yīng)用也日益增加,JDBC就尤顯得完備與重要。
2 學(xué)生選課評(píng)分系統(tǒng)的應(yīng)用實(shí)例設(shè)計(jì)分析
2.1 SQL部分設(shè)計(jì)
2.1.1 關(guān)系模型設(shè)計(jì)
如圖1所示,數(shù)據(jù)庫(kù)關(guān)系模型設(shè)計(jì)內(nèi)容表述如下:
管理員(用戶名[TXX-],密碼)
學(xué)生表(學(xué)號(hào)[TXX-],姓名,密碼,系部名稱)
選課表(學(xué)號(hào)[TXX=],課程號(hào)[TXX=],志愿號(hào),報(bào)名狀態(tài))
成績(jī)表(學(xué)號(hào)[TXX=],課程號(hào)[TXX=],教師號(hào)[TXX=],成績(jī))
教師表(教師號(hào)[TXX-],教師名,密碼)
課程表(課程號(hào)[TXX-],課程名,最大報(bào)名人數(shù),當(dāng)前報(bào)名人數(shù),學(xué)分,上課時(shí)間,教師號(hào))
課程候選(課程號(hào)[TXX-],課程名,最大報(bào)名人數(shù),當(dāng)前報(bào)名人數(shù),學(xué)分,上課時(shí)間,教師號(hào)
2.1.2 關(guān)系結(jié)構(gòu)設(shè)計(jì)
(1)實(shí)體完整性。所有實(shí)體的主碼不能為空。即管理員的“用戶名”和“密碼”都不能為空;學(xué)生表中的“學(xué)號(hào)”、“密碼”不能為空;選課表中的“學(xué)號(hào)”、“課程號(hào)”不能為空;成績(jī)表中的“學(xué)號(hào)”、“課程號(hào)”、“教師號(hào)”不能為空;教師表中的主碼“教師號(hào)”、課程表中的主碼“課程號(hào)”、上報(bào)課程中的主碼“課程號(hào)”均不能為空;課程表中的“學(xué)分”必須“>0”;成績(jī)表中的“成績(jī)”必須在“0-100”之間;選課表中的“狀態(tài)”只能為“1”或“0”;當(dāng)課程表“當(dāng)前報(bào)名人數(shù)=最大報(bào)名人數(shù)”時(shí),則選課表該課程不能插入。
(2)參照完整性。參照關(guān)系“選課表”中的“學(xué)號(hào)”的值必須是被參照關(guān)系“學(xué)生表”中“學(xué)號(hào)”的值,并且是被參照關(guān)系“學(xué)生表”的外碼。參照關(guān)系“選課表”中的“課程號(hào)”的值必須是被參照關(guān)系“課程表”中“學(xué)號(hào)”的值,并且是被參照關(guān)系“課程表”的外碼。參照關(guān)系“成績(jī)表”中的“學(xué)號(hào)”的值必須是被參照關(guān)系“學(xué)生表”中“學(xué)號(hào)”的值,并且是被參照關(guān)系“學(xué)生表”的外碼。參照關(guān)系“成績(jī)表”中的“課程號(hào)”的值必須是被參照關(guān)系“課程表”中“學(xué)號(hào)”的值,并且是被參照關(guān)系“課程表”的外碼。參照關(guān)系“成績(jī)表”中的“教師號(hào)”的值必須是被參照關(guān)系“教師表”中“教師號(hào)”的值,并且是被參照關(guān)系“教師表”的外碼。參照關(guān)系“教師表”中的“課程號(hào)”的值是被參照關(guān)系“課程表”的外碼。
綜上研究可得,學(xué)生選課評(píng)分系統(tǒng)數(shù)據(jù)庫(kù)關(guān)系結(jié)構(gòu)描述可見表1。
2.2 Java部分設(shè)計(jì)
Java模塊設(shè)計(jì)流程如圖2所示。
3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
3.1 登錄及主界面功能模塊實(shí)現(xiàn)
如圖3所示,登錄頁(yè)面中,依據(jù)權(quán)限來區(qū)分登錄賬戶,具體就是:學(xué)生、教師、管理員。然后進(jìn)入不同的界面,實(shí)現(xiàn)不同的功能。
當(dāng)選擇“管理員”權(quán)限時(shí),只能以管理員的賬號(hào)密碼登入,并跳轉(zhuǎn)到管理員主界面。管理員權(quán)限可以對(duì)學(xué)生/教師進(jìn)行增、刪、改、查,并且允許新開課程,對(duì)課程做出刪除與修改。當(dāng)選擇“學(xué)生”權(quán)限時(shí),只能以學(xué)生的賬號(hào)密碼登入,并跳轉(zhuǎn)到學(xué)生主界面。學(xué)生權(quán)限可以查看所有課程信息以及自身的成績(jī)信息,而且可以開展選課以及退選課程的操作。當(dāng)選擇“教師”權(quán)限時(shí),只能以教師的賬號(hào)密碼登入,再跳轉(zhuǎn)到教師主界面。教師權(quán)限可以查看所有課程信息,上報(bào)欲開設(shè)課程,再對(duì)選課學(xué)生設(shè)置評(píng)分操作。
3.2 管理員功能模塊實(shí)現(xiàn)
選擇管理員權(quán)限,用管理員號(hào)和密碼登錄進(jìn)入教師的功能模塊界面。
3.2.1 教師添加界面
如圖4所示,在輸入框內(nèi)輸入一個(gè)新的教師號(hào)和教師姓名,就能把一名新教師加入到數(shù)據(jù)庫(kù)中,并且可設(shè)置新教師的默認(rèn)登入密碼為“123456”。由于新增教師尚未開設(shè)課程,課程號(hào)為空,課程名為空,表單中不能顯示,就可以讀取到課程表中默認(rèn)的課程號(hào)和課程名的值,賦予新教師默認(rèn)課程號(hào)為999,默認(rèn)課程為暫定。
3.2.2 教師管理
如圖5所示,可以查詢所有在系統(tǒng)庫(kù)里的教師,并且可以通過教師號(hào)實(shí)現(xiàn)精準(zhǔn)查詢,同時(shí)會(huì)在表單中顯示教師對(duì)應(yīng)的課程號(hào)和課程。選取表單中課程時(shí),會(huì)獲取到該條記錄的所有信息,可以對(duì)得到的記錄進(jìn)行刪除和修改操作,并刷新表單顯示新的數(shù)據(jù)。
3.2.3 課程上報(bào)管理
教師開設(shè)一門新課程就會(huì)將上報(bào)的課程提交到課程候選表中,并在該界面提供效果顯示,具體如圖6所示。當(dāng)獲準(zhǔn)開設(shè)一門課程時(shí),該課程會(huì)加入到課程表中,隨即在課程候選表中刪除該課程;當(dāng)否決設(shè)置一門課程時(shí),就直接將該門課程從候選表中刪除。
對(duì)學(xué)生和課程的修改和刪除操作的原理基本與教師相同,同樣可以在文本框中獲取到表單中選中的學(xué)生或者課程信息并對(duì)其執(zhí)行修改和刪除處理,每次操作都會(huì)重新刷新獲取到、以及表單中的信息。
3.3 學(xué)生功能模塊實(shí)現(xiàn)
選擇學(xué)生權(quán)限,用學(xué)生號(hào)和密碼登錄進(jìn)入學(xué)生的功能模塊界面。學(xué)生功能主要包括學(xué)生查詢所有課程信息,以及可供學(xué)生選取的退選課操作,功能布局設(shè)計(jì)則如圖7所示。
由圖7可知,學(xué)生可以通過課程名稱、教師姓名、以及上課時(shí)間分別展開更為快捷的查詢。學(xué)生可以選取中意的課程進(jìn)行報(bào)名,該門課程信息會(huì)自動(dòng)加入選課表并在已選課程中顯示出來,同時(shí)隨即將更新增加當(dāng)前報(bào)名人數(shù)。若當(dāng)前報(bào)名人數(shù)等于最大報(bào)名人數(shù)時(shí),將不能再申報(bào)該門課程。而學(xué)生進(jìn)行退選操作時(shí),已選課程中刪除這名學(xué)生的信息,并且當(dāng)前報(bào)名人數(shù)也將發(fā)生跳減變化。
此外,學(xué)生還能查詢自己的成績(jī)信息,加載查詢成績(jī)界面時(shí)就會(huì)獲取到當(dāng)前登錄的學(xué)生學(xué)號(hào),但僅會(huì)顯示登錄學(xué)生本人的成績(jī)。
3.4 教師功能模塊實(shí)現(xiàn)
選擇教師權(quán)限,用教師號(hào)和密碼登錄進(jìn)入教師的功能模塊界面。
(1)教師查詢課程。如圖8所示,教師可以查詢所有課程,同樣可以通過課程號(hào)精準(zhǔn)查詢出對(duì)應(yīng)的課程信息。
(2)教師上報(bào)課程。如圖9所示,教師首開一門課程時(shí),必須通過上報(bào)課程功能提交到管理員的課程候選表,經(jīng)由管理員同意后加入課程表。教師上報(bào)課程界面會(huì)自動(dòng)獲取到登錄的教師號(hào)。
(3)成績(jī)?cè)u(píng)定。如圖10所示,教師登錄會(huì)獲取到選擇這名教師所開課程的學(xué)生,教師可以選中學(xué)生信息對(duì)學(xué)生成績(jī)給出評(píng)定,評(píng)定成績(jī)會(huì)刷新學(xué)生成績(jī)表的記錄,同時(shí)學(xué)生登錄查看成績(jī)也會(huì)查詢到教師評(píng)定的新數(shù)據(jù)。
4 結(jié)束語(yǔ)
本次研究中,經(jīng)過不斷的改進(jìn)、測(cè)試與完善,基本實(shí)現(xiàn)了學(xué)生選課評(píng)分的所有功能。在項(xiàng)目推進(jìn)過程中,由于對(duì)需求功能未能臻至系統(tǒng)、明確,對(duì)數(shù)據(jù)庫(kù)進(jìn)行了多次修改,這大大降低了研發(fā)速度,這一經(jīng)驗(yàn)歷練對(duì)日后的研究開展也將不無裨益。研究中更進(jìn)一步加深了對(duì)數(shù)據(jù)庫(kù)的高端認(rèn)知與了解,并且還對(duì)Java與數(shù)據(jù)庫(kù)的鏈接運(yùn)用也更趨于靈活與熟練。同時(shí),在PC端系統(tǒng)的探討設(shè)計(jì)后,將繼續(xù)著眼于手機(jī)端App的綜合打造,使該系統(tǒng)的應(yīng)用性更加廣泛,且更為時(shí)尚便捷。希望該系統(tǒng)能夠?qū)χ行∫?guī)模的校園選課評(píng)分系統(tǒng)發(fā)揮應(yīng)有的技術(shù)支持作用。
參考文獻(xiàn)
[1] 谷慶華 李成貴. 基于Java語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問[J]. 計(jì)算機(jī)技術(shù)與發(fā)展 2008 18(2):13-16.
[2] 王雷春. 基于Java的媒體框架(JMF)研究[J]. 福建電腦 2003(8):47.
[3] 陽(yáng)國(guó)貴 昌月樓 高洪奎. 發(fā)展中的SQL語(yǔ)言[J]. 計(jì)算機(jī)工程與應(yīng)用 1995(4):1-3.
[4] 李巖. hibernate詳解[EB/OL].[2013-04-24]. http://liyanblog.cn/articles/2012/09/17/1347848802900.html.