中文字幕日韩一区二区不卡,亚洲av永久无码精品天堂动漫,亚洲av无码国产精品麻豆天美,最新版天堂中文在线,中文字幕视频在线看

a&s專業(yè)的自動(dòng)化&安全生態(tài)服務(wù)平臺(tái)
公眾號(hào)
安全自動(dòng)化

安全自動(dòng)化

安防知識(shí)網(wǎng)

安防知識(shí)網(wǎng)

手機(jī)站
手機(jī)站

手機(jī)站

大安防供需平臺(tái)
大安防供需平臺(tái)

大安防供需平臺(tái)

資訊頻道橫幅A1
首頁(yè) > 資訊 > 正文

基于struts和Hibernate的學(xué)生考勤系統(tǒng)設(shè)計(jì)

資訊頻道文章B

    為克服手工處理學(xué)生考勤信息的缺點(diǎn),采用JAVA環(huán)境下實(shí)現(xiàn)MVC設(shè)計(jì)模式的struts框架和實(shí)現(xiàn)數(shù)據(jù)持久化的Hibernate框架開(kāi)發(fā)基于Web的學(xué)生考勤管理系統(tǒng)。在struts和Hibernate中添加DAO設(shè)計(jì)模式和業(yè)務(wù)代理模式來(lái)進(jìn)一步提高系統(tǒng)的維護(hù)性和可擴(kuò)展性。探討了如何結(jié)合PowerDesigner和Myeclipse等工具快速開(kāi)發(fā)應(yīng)用系統(tǒng)。

1、MVC設(shè)計(jì)模式設(shè)計(jì)模式概述
1.1 MVC設(shè)計(jì)模式
    MVC設(shè)計(jì)模式是一種著名的軟件開(kāi)發(fā)設(shè)計(jì)模式,它是模型、視圖、控制器(Mode1.View.Controller)縮寫(xiě)。模型封裝了用戶數(shù)據(jù)和處理數(shù)據(jù)的業(yè)務(wù)邏輯;視圖提供了用戶界面,將用戶輸入數(shù)據(jù)傳遞給控制器或?qū)⒛P蛿?shù)據(jù)顯示給用戶;控制器連接了模型和視圖,判斷請(qǐng)求交給哪個(gè)模型,調(diào)用視圖顯示模型處理用戶請(qǐng)求結(jié)果。

    MVC設(shè)計(jì)模式將應(yīng)用程序進(jìn)行了分層,視圖和模型通過(guò)控制器連接,從而減少了用戶界面和業(yè)務(wù)邏輯之間的耦合,使程序設(shè)計(jì)更加清晰、靈活,也提高了軟件的可擴(kuò)展性、可維護(hù)性。

1.2 Struts框架
    Struts是基于的MVC模式應(yīng)用框架,遵守了J2EE的Servlet、JSP等技術(shù)規(guī)范,并且根據(jù)J2EE的特點(diǎn)做了相應(yīng)的變化和擴(kuò)展,是J2EE體系架構(gòu)的一種輕量級(jí)實(shí)現(xiàn)。

    在Struts框架中,控制器由ActionServlet和Action類以及Struts.config.xml配置文件實(shí)現(xiàn)。ActionServlet是Struts框架的核心控制組件, 所有的用戶請(qǐng)求都被映射到ActionServlet, 由ActionServlet根據(jù)配置文件中的定義將控制轉(zhuǎn)移到指定的Action類。Action類是用戶請(qǐng)求與業(yè)務(wù)邏輯之間的橋梁,它執(zhí)行一個(gè)execute()方法并返回一個(gè)ActionForward對(duì)象,當(dāng)ActionServlet接收到該對(duì)象后,根據(jù)Struts config.xml中的配置信息將請(qǐng)求轉(zhuǎn)發(fā)。Struts框架中的視圖主要由JSP頁(yè)面組成。ActionForm是Struts在視圖層的一個(gè)核心組件,它是專門用來(lái)在視圖層和控制層之間傳遞表單數(shù)據(jù)的DTO(Dam Transfer Object,數(shù)據(jù)傳輸對(duì)象),它還包括了用于數(shù)據(jù)驗(yàn)證的validate()方法和用于數(shù)據(jù)復(fù)位的reset()方法。]在Struts應(yīng)用程序中,開(kāi)發(fā)人員可以選擇JavaBean、Hibernate、EJB等組件來(lái)實(shí)現(xiàn)Struts框架中的模型。

2、Hibernate持久化技術(shù)
    Hibernate是一個(gè)基于Java的開(kāi)放源代碼的O/R Mapping(對(duì)象關(guān)系映射框架),它通過(guò)其強(qiáng)大的O/R映射功能JAVA對(duì)象同存于關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行映射,并對(duì)JDBC進(jìn)行了輕量級(jí)的對(duì)象封裝,可以使JAVA程序員方便地使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù),它不僅提供ORM映射服務(wù),還提供數(shù)據(jù)查詢和數(shù)據(jù)緩存的方法,可以提高查詢和處理數(shù)據(jù)的效率。它是一種提供面向?qū)ο蟮臄?shù)據(jù)庫(kù)服務(wù)中間件。

3、基于Struts和Hibernate的考勤管理系統(tǒng)的設(shè)計(jì)
    隨著教育部對(duì)在校大學(xué)生出勤的相關(guān)規(guī)定出臺(tái),各大專院校加大了對(duì)學(xué)生考勤的管理力度,但大部份都采用手工處理的方法,工作量大且效率低。本系統(tǒng)能夠?qū)崿F(xiàn)網(wǎng)上對(duì)學(xué)生考勤信息進(jìn)行添加、刪除、修改、查詢和統(tǒng)計(jì)功能,管理人員能及時(shí)了解學(xué)生出勤情況和某課班級(jí)某課程的出勤情況。在開(kāi)發(fā)的過(guò)程中,使用PowerDesigner作為CASE工具,采用對(duì)Hibernate和Struts提供良好支持的Myeclipse 6.0作為系統(tǒng)的開(kāi)發(fā)環(huán)境,數(shù)據(jù)庫(kù)采用MYSQL5.0,WEB服務(wù)器采用jakarta Tomcm6.0并安裝了JDK6.0。[nextpage]

3.1數(shù)據(jù)庫(kù)層的設(shè)計(jì)
    PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地對(duì)管理信息系統(tǒng)進(jìn)行分析設(shè)計(jì)。DataArchitect模塊是Powerdesigner的核心工具,它采用二級(jí)數(shù)據(jù)建模方式,即概念級(jí)和物理級(jí)。在概念級(jí),概念數(shù)據(jù)模型(CDM)代表業(yè)務(wù)信息需求,不考慮在數(shù)據(jù)庫(kù)上的物理實(shí)現(xiàn),通過(guò)它可以繪制系統(tǒng)的實(shí)體聯(lián)系圖(E.R圖),即系統(tǒng)的靜態(tài)特征;在物理級(jí),物理數(shù)據(jù)模型(PDM)指定了物理實(shí)現(xiàn)的目標(biāo)RDBMS的特征等細(xì)節(jié)。它可以生成數(shù)據(jù)庫(kù)腳本,通過(guò)選擇ODBC方式則可以直接連接到數(shù)據(jù)庫(kù),從而直接產(chǎn)生數(shù)據(jù)庫(kù)表以及其他數(shù)據(jù)庫(kù)對(duì)象。它與其它設(shè)計(jì)軟件相配合使用可以縮短開(kāi)發(fā)時(shí)間和使系統(tǒng)設(shè)計(jì)更優(yōu)化。

    在本系統(tǒng)的設(shè)計(jì)過(guò)程中,我們利用PowerDesigner來(lái)完成系統(tǒng)數(shù)據(jù)庫(kù)概念設(shè)計(jì)和MYSQL數(shù)據(jù)庫(kù)表的工作。首先,在PowerDesigner中設(shè)計(jì)系統(tǒng)的概念層次的數(shù)據(jù)模型,通過(guò)它的CDM 功能創(chuàng)建實(shí)體關(guān)系圖來(lái)描述系統(tǒng)的數(shù)據(jù)組織結(jié)構(gòu)。通過(guò)它的“檢查模型”功能,校驗(yàn)概念數(shù)據(jù)模型中實(shí)體、實(shí)體屬性、實(shí)體標(biāo)識(shí)和實(shí)體間關(guān)系等是否存在問(wèn)題。接著,選擇MYSQL作為系統(tǒng)的目標(biāo)數(shù)據(jù)庫(kù),生成在MYSQL上實(shí)現(xiàn)的數(shù)據(jù)庫(kù)的物理數(shù)據(jù)模型(PDM):最后,通過(guò)“產(chǎn)生數(shù)據(jù)庫(kù)”功能,并選擇ODBC方式連接到指定的數(shù)據(jù)庫(kù),從而直接產(chǎn)生MYSQL上的數(shù)據(jù)庫(kù)表以及其他數(shù)據(jù)庫(kù)對(duì)象。

3.2 持久化層的設(shè)計(jì)
    數(shù)據(jù)持久層基于Hibernate架構(gòu),采用了DAO設(shè)計(jì)模式和抽象工廠設(shè)計(jì)模式。下面以學(xué)生類(Student)為例進(jìn)行說(shuō)明。首先,把學(xué)生信息封裝為VO(Value Object)。VO是一組值對(duì)象,只包含了一些屬性和getter/setter方法的POJO(Plan Old Java Bean) 。然后,采用DAO設(shè)計(jì)模式和抽象工廠設(shè)計(jì)模式,完成DAO工廠和Hibernate數(shù)據(jù)庫(kù)操作的具體實(shí)現(xiàn)。最后,利用Hibernate的配置文件完成從應(yīng)用程序到數(shù)據(jù)庫(kù)的映射。

    在Myeclipse開(kāi)發(fā)環(huán)境中,首先配置數(shù)據(jù)庫(kù)服務(wù)器的連接,然后利用Myeclipse的Hibernate的逆向工程,可以自動(dòng)完成持久化層的設(shè)計(jì)任務(wù)。例如對(duì)學(xué)生表(student)進(jìn)行逆向工程, 將會(huì)自動(dòng)生成Student.iava、AbstractStudent.iava、StudentDAO.iava、Student.hbm.xml等文件。其中,Abstract Student.iava就是一個(gè)封裝了Student信息的VO。Student DAO.java采用DAO模式封閉了數(shù)據(jù)庫(kù)操作。

    在hibemate.cfg.xml配置文件中,定義了符合SQLServer規(guī)范的dialect方言,連接池訪問(wèn)數(shù)據(jù)庫(kù)的URL資源定位地址以及數(shù)據(jù)庫(kù)名稱kq, 數(shù)據(jù)庫(kù)連接驅(qū)動(dòng)程序,Hibernate管理事務(wù)、是否顯示SQL語(yǔ)句。在mapping映射文件配置部分,定義了教師表(Teacher)、學(xué)生表(Student1、考勤表(Attendance)等對(duì)應(yīng)的映射文件等。在該層的設(shè)計(jì)中,VO的信息封裝體現(xiàn)了面向?qū)ο笤O(shè)計(jì)編程思想;DAO的設(shè)計(jì)模式和抽象工廠模式減弱了上層調(diào)用和具體實(shí)現(xiàn)之間的耦合;Hibemate配置實(shí)現(xiàn)了數(shù)據(jù)庫(kù)高移植性,只需要改變Hibemate配置文件,不用修改程序設(shè)計(jì)就可以完成不同數(shù)據(jù)庫(kù)之間的更換。

3.3 業(yè)務(wù)邏輯層設(shè)計(jì)
    業(yè)務(wù)邏輯層包含了供客戶端程序調(diào)用的業(yè)務(wù)邏輯規(guī)則,以幫助客戶端完成業(yè)務(wù)操作。該層采用業(yè)務(wù)代理、DAO和抽象工廠設(shè)計(jì)模式使用業(yè)務(wù)代理、DAO和抽象工廠設(shè)計(jì)模式,可以使業(yè)務(wù)邏輯更加靈活,如果具體業(yè)務(wù)發(fā)生變化,在表示層和數(shù)據(jù)持久化層改變很小就可以完成改變,這種設(shè)計(jì)能夠增強(qiáng)系統(tǒng)的可維護(hù)性和靈活性。 [nextpage]

3.4 表示層設(shè)計(jì)
    首先,建立用于用戶輸入和瀏覽的JSP視圖頁(yè)面和封裝用戶表單信息的ActionForm。接著,搭建用戶請(qǐng)求和業(yè)務(wù)邏輯之間的橋梁——Action組件,該組件負(fù)責(zé)把用戶信息和具體的業(yè)務(wù)邏輯處理聯(lián)系在一起。

    最后,通過(guò)Struts配置連接ActionForm和Action,完成一個(gè)業(yè)務(wù)設(shè)計(jì)。該層設(shè)計(jì)中,采用頁(yè)面設(shè)計(jì)和表示層業(yè)務(wù)邏輯分離,提高了應(yīng)用程序的可維護(hù)性。

4.總結(jié)
    本文介紹了MVC設(shè)計(jì)模式以及Struts和Hibernate框架的工作原理,利用了他們的優(yōu)點(diǎn)互補(bǔ),有機(jī)地將Struts+Hi.bernate框架結(jié)合起來(lái)構(gòu)建了一個(gè)學(xué)生考勤管理系統(tǒng),利用DAO設(shè)計(jì)模式、業(yè)務(wù)代理模式等克服了傳統(tǒng)Web信息系統(tǒng)的缺點(diǎn),提高了系統(tǒng)的可維護(hù)性、可擴(kuò)展性,降低了系統(tǒng)的耦合性。通過(guò)使用Powerdesigner和Myeclipse等開(kāi)發(fā)工具能夠有效的加快開(kāi)發(fā)速度和效率,大大減少開(kāi)發(fā)人員的手工編寫(xiě)代碼的工作量。隨著本系統(tǒng)的應(yīng)用,教師可以隨時(shí)隨地上報(bào)出勤情況,管理人員可以隨時(shí)了解每門課程每個(gè)班級(jí)和每個(gè)學(xué)生的出勤情況,本系統(tǒng)通過(guò)匯總功能產(chǎn)生因出勤率低而取消考試資格的學(xué)生名單。這對(duì)提高教務(wù)管理工作效率意義較大。

參與評(píng)論
回復(fù):
0/300
文明上網(wǎng)理性發(fā)言,評(píng)論區(qū)僅供其表達(dá)個(gè)人看法,并不表明a&s觀點(diǎn)。
0
關(guān)于我們

a&s傳媒是全球知名展覽公司法蘭克福展覽集團(tuán)旗下的專業(yè)媒體平臺(tái),自1994年品牌成立以來(lái),一直專注于安全&自動(dòng)化產(chǎn)業(yè)前沿產(chǎn)品、技術(shù)及市場(chǎng)趨勢(shì)的專業(yè)媒體傳播和品牌服務(wù)。從安全管理到產(chǎn)業(yè)數(shù)字化,a&s傳媒擁有首屈一指的國(guó)際行業(yè)展覽會(huì)資源以及豐富的媒體經(jīng)驗(yàn),提供媒體、活動(dòng)、展會(huì)等整合營(yíng)銷服務(wù)。

免責(zé)聲明:本站所使用的字體和圖片文字等素材部分來(lái)源于互聯(lián)網(wǎng)共享平臺(tái)。如使用任何字體和圖片文字有冒犯其版權(quán)所有方的,皆為無(wú)意。如您是字體廠商、圖片文字廠商等版權(quán)方,且不允許本站使用您的字體和圖片文字等素材,請(qǐng)聯(lián)系我們,本站核實(shí)后將立即刪除!任何版權(quán)方從未通知聯(lián)系本站管理者停止使用,并索要賠償或上訴法院的,均視為新型網(wǎng)絡(luò)碰瓷及敲詐勒索,將不予任何的法律和經(jīng)濟(jì)賠償!敬請(qǐng)諒解!
? 2024 - 2030 Messe Frankfurt (Shenzhen) Co., Ltd, All rights reserved.
法蘭克福展覽(深圳)有限公司版權(quán)所有 粵ICP備12072668號(hào) 粵公網(wǎng)安備 44030402000264號(hào)
用戶
反饋