《基于Java EE體系的高校教務管理系統(tǒng)的設(shè)計開發(fā)》由會員分享,可在線閱讀,更多相關(guān)《基于Java EE體系的高校教務管理系統(tǒng)的設(shè)計開發(fā)(3頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、基于Java EE體系的高校教務管理系統(tǒng)的設(shè)計開發(fā)
高校教務管理系統(tǒng)是一個復雜的信息管理系統(tǒng),它的用戶不僅涉及教師、學生還包含了整個高校中的所有部門、院系、管理員等,這些都是構(gòu)成高校教務系統(tǒng)的關(guān)鍵要素。而本文所設(shè)計的系統(tǒng)是基于Java EE體系結(jié)構(gòu)和分布式應用模型,在這種體系架構(gòu)下,可以讓系統(tǒng)用戶不必考慮使用的時間和地點,用戶可以通過任何一臺與高校校園網(wǎng)相連的計算機完成相應的應用功能,極大的方便了用戶使用的過程,同時也節(jié)約了高校的人力和物力。
在本系統(tǒng)的設(shè)計中,程序、數(shù)據(jù)庫和其他的一些中間件都集中在系統(tǒng)的服務器上,而用戶所使用的客戶端只需要安裝有瀏覽器和必要的上網(wǎng)裝置之外,不需要使用
2、其他任何的組件和插件,這就極大的方便了用戶的使用。另外,本系統(tǒng)整合了校園內(nèi)分散的數(shù)據(jù)資源,統(tǒng)一搭建了數(shù)據(jù)平臺,所有用戶使用和查詢的數(shù)據(jù)都來源于同一個數(shù)據(jù)源,這就保證了數(shù)據(jù)的及時性和完整性。同時,由于系統(tǒng)是在Java EE體系架構(gòu)下設(shè)計的,當有新的業(yè)務邏輯或者原有的業(yè)務邏輯發(fā)生變化時,只需要修改服務器端的對應的個別程序組件即可,對于控制器或其他的組件,特別對于用戶的使用沒有任何的影響,這就極大的提高了系統(tǒng)維護和擴展功能。
本文主要對系統(tǒng)的關(guān)鍵部分進行了詳細的設(shè)計,并對持久化層的實現(xiàn)進行了詳細的說明。
一、系統(tǒng)持久化層的設(shè)計與實現(xiàn)
1 持久化對象模型的設(shè)計
本系統(tǒng)運用了Hi
3、bernate實現(xiàn)對象的持久化。Hibernate是為了避免使用傳統(tǒng)而繁雜的JDBC操作數(shù)據(jù)庫的方式,采用了對象/關(guān)系映射機制來支持數(shù)據(jù)庫的開發(fā),從而實現(xiàn)了以面向?qū)ο蟮姆绞絹聿倏v數(shù)據(jù)庫,保證了系統(tǒng)面向?qū)ο蟮奶匦院烷_發(fā)方式,體現(xiàn)了面向?qū)ο蟮姆治?、設(shè)計和開發(fā)流程。在系統(tǒng)利用面向?qū)ο蟮姆椒ú倏v數(shù)據(jù)庫時需要從數(shù)據(jù)庫的二維表中抽象出其特性,并進行封裝,定義出相應的對象,把這些對象抽象成對應的類,之后在服務器運行時,這些對象被持久化的保存形成了持久化對象PO。本節(jié)以學生選課系統(tǒng)為例來說明持久化對象的建立過程和方法。
選課系統(tǒng)的主要功能是為學生、選修課程和教師之間建立一個交互平臺,教師通過該系統(tǒng)可以開
4、設(shè)各種選修課程,學生可以通過該系統(tǒng)選擇自己感興趣的課程。當選課過程結(jié)束后,系統(tǒng)會將選擇同一門課的學生編入同一個臨時班級從而方便排課系統(tǒng)對開設(shè)的選修課程進行課表編排操作。
根據(jù)以上的分析,可以將整個選課系統(tǒng)的持久化類設(shè)計為以下幾種:Admin 系統(tǒng)管理員對象、Course 選修課程對象、Student 學生對象、Teacher 教師對象、LsBj臨時班級對象、Bj班級對象、Xk選課對象。
在輕量級的Java EE框架下SSH的設(shè)計中,系統(tǒng)所定義的PO對象都是以獨立對象的形式進行定義的,也就是任何模塊都可以使用這些定義好的PO對象,但其實這些PO對象隱含這復雜的相互關(guān)系,分析這些對象的
5、關(guān)系也是建立Hibernate中持久化對象操作的前提,下面就對選課系統(tǒng)的持久化對象進行分析。
課程對象Course、學生對象Student、教師對象Teacher、選課對象Xk、班級對象Bj和臨時班級對象LsBj,這些PO對象看似獨立,卻存在著復雜的聯(lián)系,他們之間的類關(guān)系如圖1所示,當選修課程開設(shè)時,一位教師可以開設(shè)多門選修課程,而一門課程也可以由多位教師來授課,因此Teacher與Course對象存在著多對多的關(guān)系。
另外,課程開設(shè)后,學生可以參與選課操作,一個學生可以選修一門或多門課程,而一門課程也可以由多個學生選修,因此Student與Course之間也是多對多的關(guān)系。高校的
6、學生入學后會被編入班級中,一個班級可以包含多個學生對象,而一個學生只能從屬于唯一的一個班級對象,因此學生與班級對象之間是多對一的關(guān)系。
通過上述的業(yè)務分析,對選課系統(tǒng)的PO對象和他們之間的關(guān)聯(lián)進行分析,建立選課系統(tǒng)的持久化對象的關(guān)系類圖,如圖1所示。
2 持久化對象的創(chuàng)建
從以上的類關(guān)系圖中可以看出,選課系統(tǒng)的持久化對象的關(guān)聯(lián)關(guān)系是通過PO對象的內(nèi)部屬性的方式表現(xiàn)出來的,這些屬性與其他屬性類似,賦值和取值操作都是通過set和get方法進行定義。同時,這些PO對象將來會于數(shù)據(jù)庫中表的字段相對應,Hibernate框架會將數(shù)據(jù)庫的表結(jié)構(gòu)進行反轉(zhuǎn)映射,與PO對象映射起來,這樣上層應
7、用系統(tǒng)就可以用面向?qū)ο蟮某绦蚍椒▉碓L問數(shù)據(jù)庫的關(guān)系表。
Hibernate對于持久化對象沒有特殊的要求,只需要持久化對象提供下無參數(shù)的構(gòu)造函數(shù)即可,當持久化對象之間的關(guān)系有多方出現(xiàn)是,需要在PO對象中重新定義一個集合屬性來表示多方的狀態(tài),下面就以"Teacher教師持久化對象";部分實現(xiàn)代碼為例:
public class Teacher implements java.io.Serializable {
private String teacherBh;//教師編號
private String teacherName;//教師姓名
private String
8、 szYx; //教師所在院系
private Date teacherBirthday; //教師出生年月
private Date teacherWorkTime; //教師參加工作時間
private Set courses=new HashSet();//教師開設(shè)的選修課程集合
public String getTeacherBh() {
return teacherBh;
}
public void setTeacherBh(String teacherBh) {
this.teacherBh = teacherBh;
}
9、二、 持久化對象模型與關(guān)系模型的轉(zhuǎn)換
通過上面的分析與設(shè)計,可以得到選課系統(tǒng)的關(guān)鍵持久化對象類,按照Hibernate框架的對象到關(guān)系的映射規(guī)定,可以將這些定義的持久化對象反轉(zhuǎn)映射成對應的關(guān)系表,其對應關(guān)系為:持久化對象類數(shù)據(jù)庫關(guān)系表,類屬性關(guān)系表字段,持久化對象關(guān)系表記錄。下面以"課程表";的轉(zhuǎn)換表為例(見表1)。
三、對象-關(guān)系映射文件的建立
在Hibernate的框架中,以對象/關(guān)系映射技術(shù)來實現(xiàn)從持久化對象到關(guān)系對象的轉(zhuǎn)換,該技術(shù)的核心思想就是將獨立的對象模型和關(guān)系模型之間用對象-關(guān)系映射文件來一一對應起來。在本文前面的敘述中,我們已經(jīng)完成了數(shù)據(jù)庫中關(guān)系模型和應用系統(tǒng)
10、中持久化對象的建立,這樣使應用系統(tǒng)只需要訪問java對象來完成對數(shù)據(jù)庫表的訪問,而不需要直接訪問數(shù)據(jù)庫,但他們直接的映射需要借助于配置文件*.hbm.xml來實現(xiàn)。
在Hibernate框架中,*.hbm.xml配置文件中定義了Java對象和數(shù)據(jù)庫關(guān)系表的對應關(guān)系,主要包括:Java類數(shù)據(jù)庫表,Java對象表中的記錄,Java類的屬性關(guān)系表字。之后框架將持久化對象傳送給數(shù)據(jù)訪問對象,由數(shù)據(jù)訪問對象來實現(xiàn)系統(tǒng)業(yè)務邏輯操作,從而良好的的實現(xiàn)了業(yè)務邏輯對象和數(shù)據(jù)對象的分離。
在Hibernate中定義PO時,每一個PO對象都會定義一個相應同名的*.hbm.xml文件,用來描述PO對象和數(shù)
11、據(jù)庫表或者其他的對象之間的關(guān)聯(lián)關(guān)系,這樣對于PO對象來說都是獨立定義的,但在*.hbm.xml文件的定義中,這些獨立的組件就會產(chǎn)生復雜的關(guān)聯(lián)。下面我們就根據(jù)前面章節(jié)對選課系統(tǒng)的分析和PO對象的建立,為每個對象創(chuàng)建其相應的*.hbm.xml文件,分別是:Teacher.hbm.xml、Student.hbm.xml、Course.hbm.xml、Xk.hbm.xml、Bj.hbm.xml、LsBj.hbm.xml、Admin.hbm.xml。
由于各個映射文件的結(jié)構(gòu)相似,因此我們下面只對課程Course.hbm.xml映射文件的部分實現(xiàn)代碼舉例:
Mapping file autogenerated by MyEclipse Persistence Tools
結(jié)語
本文主要根據(jù)教務管理系統(tǒng)的特點,利用輕量級Java EE對系統(tǒng)進行詳細的設(shè)計和實現(xiàn),并且詳細介紹了系統(tǒng)關(guān)鍵部分持久化層的實現(xiàn),描述了系統(tǒng)持久化對象的建模過程和PO的建立的過程,并給出了相應的代碼。最后,利用對象-關(guān)系映射原則將PO對象轉(zhuǎn)換成了數(shù)據(jù)庫的關(guān)系表,給出了數(shù)據(jù)庫表的邏輯結(jié)構(gòu)。
參考文獻
【1】李磊.基于J2EE構(gòu)建的遠程教學平臺的設(shè)計與實現(xiàn).大連海事大學,2004.