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