關鍵字:陜西企業考勤系統 陜西學??记谙到y 陜西學生考勤系統 陜西高??记?/A> 陜西學生考勤系統
摘 要:本文介紹了 MVC 設計模式以及 Struts 和 Hibernate 框架的工作原理,利用了他們的優點互補,有機地將 Struts+Hi.bernate 框架結合起來構建了一個學生考勤管理系統,利用 DAO 設計模式、業務代理模式等克服了傳統Web信息系統的缺點,提高了系統的可維護性、可擴展性,降低了系統的耦合性。通過使用 Powerdesigner 和 Myeclipse 等開發工具能夠有效的加快開發速度和效率,大大減少開發人員的手工編寫代碼的工作量。隨著本系統的應用,教師可以隨時隨地上報出勤情況,管理人員可以隨時了解每門課程每個班級和每個學生的出勤情況,本系統通過匯總功能產生因出勤率低而取消考試資格的學生名單。這對提高教務管理工作效率意義較大。
1. MVC 設計模式設計模式概述
1.1 MVC 設計模式
MVC 設計模式是一種著名的軟件開發設計模式,它是模型、視圖、控制器( Mode1.View.Controller )縮寫。模型封裝了用戶數據和處理數據的業務邏輯;視圖提供了用戶界面,將用戶輸入數據傳遞給控制器或將模型數據顯示給用戶;控制器連接了模型和視圖,判斷請求交給哪個模型,調用視圖顯示模型處理用戶請求結果。
MVC 設計模式將應用程序進行了分層,視圖和模型通過控制器連接,從而減少了用戶界面和業務邏輯之間的耦合,使程序設計更加清晰、靈活,也提高了軟件的可擴展性、可維護性。
1.2 Struts 框架
Struts 是基于的MVC模式應用框架,遵守了 J2EE 的 Servlet、JSP 等技術規范,并且根據J2EE的特點做了相應的變化和擴展,是J2EE 體系架構的一種輕量級實現。
在 Struts 框架中,控制器由 ActionServlet 和 Action 類以及 Struts.config.xml 配置文件實現。ActionServlet 是 Struts 框架的核心控制組件, 所有的用戶請求都被映射到 ActionServlet, 由 ActionServlet 根據配置文件中的定義將控制轉移到指定的 Action 類。Action 類是用戶請求與業務邏輯之間的橋梁,它執行一個 execute()方法并返回一個ActionForward對象,當 ActionServlet 接收到該對象后,根據 Struts config.xml 中的配置信息將請求轉發。Struts 框架中的視圖主要由 JSP 頁面組成。ActionForm 是 Struts 在視圖層的一個核心組件,它是專門用來在視圖層和控制層之間傳遞表單數據的 DTO(Dam Transfer Object,數據傳輸對象),它還包括了用于數據驗證的 validate()方法和用于數據復位的 reset()方法。在 Struts 應用程序中,開發人員可以選擇 JavaBean、Hibernate、EJB 等組件來實現 Struts 框架中的模型。
2.Hibernate 持久化技術
Hibernate 是一個基于 Java 的開放源代碼的 O/R Mapping (對象關系映射框架),它通過其強大的 O/R 映射功能 JAVA 對象同存于關系數據庫中的數據進行映射,并對 JDBC 進行了輕量級的對象封裝,可以使JAVA程序員方便地使用對象編程思維來操縱數據庫,它不僅提供 ORM 映射服務,還提供數據查詢和數據緩存的方法,可以提高查詢和處理數據的效率。它是一種提供面向對象的數據庫服務中間件。
3.基于 Struts 和 Hibernate 的考勤管理系統的設計
隨著教育部對在校大學生出勤的相關規定出臺,各大專院校加大了對學生考勤的管理力度,但大部份都采用手工處理的方法,工作量大且效率低。本系統能夠實現網上對學生考勤信息進行添加、刪除、修改、查詢和統計功能,管理人員能及時了解學生出勤情況和某課班級某課程的出勤情況。在開發的過程中,使用 PowerDesigner 作為 CASE 工具,采用對 Hibernate 和 Struts 提供良好支持的 Myeclipse 6.0 作為系統的開發環境,數據庫采用 MYSQL5.0,WEB 服務器采用 jakarta Tomcm6.0 并安裝了 JDK6.0。
3.1數據庫層的設計
Power Designer 是 Sybase 公司的 CASE 工具集,使用它可以方便地對管理信息系統進行分析設計。DataArchitect 模塊是Power designer 的核心工具,它采用二級數據建模方式,即概念級和物理級。在概念級,概念數據模型 (CDM) 代表業務信息需求,不考慮在數據庫上的物理實現,通過它可以繪制系統的實體聯系圖(E.R圖),即系統的靜態特征;在物理級,物理數據模型 (PDM) 指定了物理實現的目標RDBMS的特征等細節。它可以生成數據庫腳本,通過選擇 ODBC 方式則可以直接連接到數據庫,從而直接產生數據庫表以及其他數據庫對象。它與其它設計軟件相配合使用可以縮短開發時間和使系統設計更優化。
在本系統的設計過程中,我們利用 Power Designer 來完成系統數據庫概念設計和 MYSQL 數據庫表的工作。首先,在PowerDesigner 中設計系統的概念層次的數據模型,通過它的CDM 功能創建實體關系圖來描述系統的數據組織結構。通過它的“檢查模型”功能,校驗概念數據模型中實體、實體屬性、實體標識和實體間關系等是否存在問題。接著,選擇 MYSQL 作為系統的目標數據庫,生成在MYSQL 上實現的數據庫的物理數據模型 (PDM) :最后,通過“產生數據庫”功能,并選擇 ODBC 方式連接到指定的數據庫,從而直接產生MYSQL 上的數據庫表以及其他數據庫對象。
3.2 持久化層的設計
數據持久層基于 Hibernate 架構,采用了 DAO 設計模式和抽象工廠設計模式。下面以學生類 (Student) 為例進行說明。首先,把學生信息封裝為 VO(Value Object) 。VO 是一組值對象,只包含了一些屬性和 getter/setter 方法的 POJO(Plan Old Java Bean) 。然后,采用 DAO 設計模式和抽象工廠設計模式,完成 DAO 工廠和 Hibernate 數據庫操作的具體實現。最后,利用 Hibernate 的配置文件完成從應用程序到數據庫的映射。
在 Myeclipse 開發環境中,首先配置數據庫服務器的連接,然后利用 Myeclipse 的 Hibernate 的逆向工程,可以自動完成持久化層的設計任務。例如對學生表 (student) 進行逆向工程, 將會自動生成Student.iava、AbstractStudent.iava、StudentDAO.iava、Student.hbm.xml等文件。其中,Abstract Student.iava 就是一個封裝了 Student 信息的VO。Student DAO.java采用DAO模式封閉了數據庫操作。
在 hibemate.cfg.xml 配置文件中,定義了符合 SQLServer 規范的 dialect 方言,連接池訪問數據庫的 URL 資源定位地址以及數據庫名稱kq, 數據庫連接驅動程序,Hibernate管理事務、是否顯示SQL語句。在mapping映射文件配置部分,定義了教師表 (Teacher)、學生表 (Student1、考勤表(Attendance) 等對應的映射文件等。在該層的設計中,VO 的信息封裝體現了面向對象設計編程思想; DAO 的設計模式和抽象工廠模式減弱了上層調用和具體實現之間的耦合;Hibemate 配置實現了數據庫高移植性,只需要改變 Hibemate 配置文件,不用修改程序設計就可以完成不同數據庫之間的更換。
3.3 業務邏輯層設計
業務邏輯層包含了供客戶端程序調用的業務邏輯規則,以幫助客戶端完成業務操作。該層采用業務代理、DAO和抽象工廠設計模式使用業務代理、DAO 和抽象工廠設計模式,可以使業務邏輯更加靈活,如果具體業務發生變化,在表示層和數據持久化層改變很小就可以完成改變,這種設計能夠增強系統的可維護性和靈活性。
3.4 表示層設計
首先,建立用于用戶輸入和瀏覽的JSP視圖頁面和封裝用戶表單信息的 ActionForm 。接著,搭建用戶請求和業務邏輯之間的橋梁——Action 組件,該組件負責把用戶信息和具體的業務邏輯處理聯系在一起。
最后,通過 Struts 配置連接 ActionForm 和 Action,完成一個業務設計。該層設計中,采用頁面設計和表示層業務邏輯分離,提高了應用程序的可維護性。
4.總結
本文介紹了 MVC 設計模式以及 Struts 和 Hibernate 框架的工作原理,利用了他們的優點互補,有機地將 Struts+Hi.bernate 框架結合起來構建了一個學生考勤管理系統,利用 DAO 設計模式、業務代理模式等克服了傳統Web信息系統的缺點,提高了系統的可維護性、可擴展性,降低了系統的耦合性。通過使用 Powerdesigner 和 Myeclipse 等開發工具能夠有效的加快開發速度和效率,大大減少開發人員的手工編寫代碼的工作量。隨著本系統的應用,教師可以隨時隨地上報出勤情況,管理人員可以隨時了解每門課程每個班級和每個學生的出勤情況,本系統通過匯總功能產生因出勤率低而取消考試資格的學生名單。這對提高教務管理工作效率意義較大。 |