戴雯惠 翟高粵
[摘 要] 設(shè)備租賃管理對(duì)于使用設(shè)備較多的企業(yè)來說非常重要,本文以企業(yè)日常運(yùn)營過程中的設(shè)備租賃作為研究對(duì)象進(jìn)行了深入分析,結(jié)合租賃設(shè)備管理的實(shí)際需求,開發(fā)出一個(gè)基于Web的通用設(shè)備租賃管理信息系統(tǒng),該系統(tǒng)在企業(yè)設(shè)備租賃管理中得到具體的應(yīng)用。
[關(guān)鍵詞] 設(shè)備租賃;信息系統(tǒng); SSH2框架
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2014 . 11. 027
[中圖分類號(hào)] TP311 [文獻(xiàn)標(biāo)識(shí)碼] A [文章編號(hào)] 1673 - 0194(2014)11- 0040- 03
1 引 言
隨著市場經(jīng)濟(jì)的發(fā)展,企業(yè)之間的合作交流也越來越頻繁,一些大中型企業(yè),在產(chǎn)能得到保證和不影響生產(chǎn)的前提下,為了充分利用設(shè)備,減少閑置和折舊,提高設(shè)備的利用率,在固定的時(shí)間內(nèi),將設(shè)備出租給其他使用單位,按合同規(guī)定在租期內(nèi)收取一定租金,提高設(shè)備的投資效益。對(duì)于通過租借得到設(shè)備使用的企業(yè)來說,可運(yùn)用少量的資金使用急需的設(shè)備,提高企業(yè)的技術(shù)水平和企業(yè)競爭能力,花少錢,辦大事。據(jù)調(diào)查統(tǒng)計(jì),目前大多數(shù)企業(yè)在設(shè)備租賃的管理中大多采用人工記賬方式,不僅管理效率低而且容易出錯(cuò),隨著市場的發(fā)展和租賃需求量的增加,租賃業(yè)務(wù)也會(huì)變得越來越多,傳統(tǒng)的人工記賬方式已經(jīng)不能滿足企業(yè)的要求[1]。
本文研究的基于SSH2框架的企業(yè)設(shè)備租賃管理系統(tǒng),有助于企業(yè)對(duì)設(shè)備租賃進(jìn)行科學(xué)化管理,提高設(shè)備使用數(shù)據(jù)的準(zhǔn)確性,減少工作人員的工作量,實(shí)時(shí)觀測各種設(shè)備的租賃情況和租金變化情況,具有較高的實(shí)用價(jià)值和科研價(jià)值。
2 系統(tǒng)開發(fā)技術(shù)介紹
系統(tǒng)開發(fā)采用目前最流行的SSH2(Struts2+Spring+Hibernate)框架,框架的系統(tǒng)從職責(zé)上分為3層:表示層、中間層(業(yè)務(wù)邏輯層)、數(shù)據(jù)服務(wù)層,采用框架結(jié)構(gòu)有助于開發(fā)人員在短期內(nèi)搭建結(jié)構(gòu)清晰、可復(fù)用性好、維護(hù)方便的Web應(yīng)用程序[2]。
2.1 Struts 2
Struts 2是Struts的第二代產(chǎn)品,是在Struts1和Web Work的技術(shù)基礎(chǔ)上合并的全新的、功能性和擴(kuò)展性更強(qiáng)的框架。Struts 2以Web Work為核心,采用攔截器的機(jī)制來處理用戶的請(qǐng)求,使業(yè)務(wù)邏輯控制器能夠與Servlet API完全脫離。
2.2 Hibernate
Hibernate是一個(gè)開源的對(duì)象關(guān)系映射的持久化框架,可以用對(duì)象編程的思維來操作數(shù)據(jù)庫。通過HQL(Hibernate Query Language)語言直接操作持久化對(duì)象,由持久化對(duì)象的數(shù)據(jù)直接更新數(shù)據(jù)庫,使持久化對(duì)象的數(shù)據(jù)屬性值和數(shù)據(jù)庫中的值保持一致。
2.3 Spring
Spring 是一種多層的JavaEE應(yīng)用程序框架,為JavaEE 應(yīng)用的各層提供解決方案。Spring的核心是采用控制反轉(zhuǎn)(IOC)和面向切面編程(AOP)來管理業(yè)務(wù)對(duì)象以及它們之間的依賴關(guān)系。Spring是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的,它使用基本的JavaBean代替EJB,并提供更多的企業(yè)應(yīng)用功能。Spring的用途不僅僅限于服務(wù)器端的開發(fā),任何Java應(yīng)用都可以從Spring中受益。
2.4 SSH2框架
SSH2框架是典型的J2EE三層結(jié)構(gòu),分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗(yàn)等工作放在中間層處理??蛻舳送ㄟ^組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。
表現(xiàn)層采用JSP技術(shù),中間層采用的是Spring+Hibernate,為了將控制層和業(yè)務(wù)邏輯層分離,又可細(xì)分為以下幾個(gè)子層。
Web層(Controller):負(fù)責(zé)控制業(yè)務(wù)邏輯層與表現(xiàn)層的交互,調(diào)用業(yè)務(wù)邏輯,并將業(yè)務(wù)數(shù)據(jù)返回給表現(xiàn)層,該層可由Struts完成。
業(yè)務(wù)邏輯層(Service):負(fù)責(zé)實(shí)現(xiàn)業(yè)務(wù)邏輯,業(yè)務(wù)邏輯以DAO層為基礎(chǔ),通過對(duì)DAO組件的正面模式包裝,完成系統(tǒng)所要求的業(yè)務(wù)邏輯。
DAO層:負(fù)責(zé)與持久化對(duì)象交互,該層封裝了數(shù)據(jù)的增、刪、查、改等操作。
PO(持久化對(duì)象):通過實(shí)體關(guān)系映射工具(Hibernate)將關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)映射成對(duì)象,實(shí)現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫。
Spring貫穿了整個(gè)中間層,將Web層、業(yè)務(wù)邏輯層、DAO層及PO無縫整合。
2.5 MyEclipse開發(fā)平臺(tái)
MyEclipse 是一款優(yōu)秀的JavaEE企業(yè)級(jí)開發(fā)工作平臺(tái),它是功能豐富的JavaEE 集成開發(fā)環(huán)境,包括完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML、Struts、JSP、CSS、JavaScript、SQL、Hibernate和Spring 。
2.6 MySQL
MySQL是關(guān)系型數(shù)據(jù)庫管理系統(tǒng),被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站開發(fā)成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。
2.7 PowerDesigner
PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地對(duì)數(shù)據(jù)庫模型進(jìn)行設(shè)計(jì)。
3 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
3.1 系統(tǒng)功能介紹
企業(yè)設(shè)備租賃管理系統(tǒng)主要完成企業(yè)設(shè)備、客戶(租客)、企業(yè)員工、租賃情況、企業(yè)資金流等相關(guān)信息的管理并能夠?qū)⑦@些信息實(shí)時(shí)顯示或以報(bào)表的形式打印。系統(tǒng)的主要功能模塊如圖1所示。
各模塊說明如下:
企業(yè)新聞公告:實(shí)時(shí)發(fā)布設(shè)備租賃信息讓客戶了解企業(yè)設(shè)備租賃情況。
設(shè)備租賃業(yè)務(wù):根據(jù)設(shè)備信息管理模塊提供的設(shè)備實(shí)時(shí)動(dòng)態(tài)信息,業(yè)務(wù)員可根據(jù)客戶需要選中相應(yīng)的設(shè)備并辦理相關(guān)手續(xù),打印相關(guān)手續(xù)憑證和報(bào)表,實(shí)現(xiàn)結(jié)賬、設(shè)備信息更新、續(xù)租等功能。
客戶信息管理:實(shí)現(xiàn)客戶信息的添加、修改、刪除、查詢等功能,目的是建立客戶檔案,并可以實(shí)時(shí)查詢和修改。
設(shè)備信息管理:實(shí)現(xiàn)租賃設(shè)備信息的添加、修改、刪除、查詢等功能,目的是建立租賃設(shè)備檔案,并可以實(shí)時(shí)查詢和修改。
業(yè)務(wù)員管理:實(shí)現(xiàn)業(yè)務(wù)員信息的添加、修改、刪除、查詢等功能,目的是建立業(yè)務(wù)員檔案,并可以實(shí)時(shí)查詢和修改。
賬目管理:各種報(bào)表的查詢、統(tǒng)計(jì)及打印。
系統(tǒng)設(shè)置:系統(tǒng)環(huán)境相關(guān)的設(shè)定,查看登錄信息、修改密碼和注銷登錄。
數(shù)據(jù)統(tǒng)計(jì)與分析:能夠?qū)υO(shè)備、租賃情況、設(shè)備故障等系統(tǒng)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和分析,為合理地進(jìn)行設(shè)備租賃提供有效的數(shù)據(jù)支持。能夠?qū)ζ髽I(yè)的財(cái)務(wù)狀況進(jìn)行統(tǒng)計(jì)和分析,對(duì)現(xiàn)金流情況和盈利情況進(jìn)行統(tǒng)計(jì)和分析,為公司領(lǐng)導(dǎo)正確決策提供有效的數(shù)據(jù)支持。
3.2 系統(tǒng)功能的實(shí)現(xiàn)
整個(gè)系統(tǒng)采用SSH2框架設(shè)計(jì),對(duì)于系統(tǒng)來說,各個(gè)模塊的構(gòu)造方法基本相同。下面以客戶預(yù)訂設(shè)備模塊為例,說明用SSH2框架實(shí)現(xiàn)設(shè)備租賃管理系統(tǒng)的開發(fā)過程。
3.2.1 客戶預(yù)訂設(shè)備模塊用例分析
設(shè)備租賃系統(tǒng)主要參與者是客戶和企業(yè)員工,其中客戶用例圖如圖2所示。
3.2.2 ER實(shí)體圖設(shè)計(jì)和Hibernate模型描述
本系統(tǒng)首先使用PowerDesigner進(jìn)行數(shù)據(jù)建模并生成ER實(shí)體圖,然后將ER模型導(dǎo)入MySQL,生成物理數(shù)據(jù)表,最后,在 MyEclipse中使用導(dǎo)入物理數(shù)據(jù)表生成相對(duì)應(yīng)的持久化實(shí)體類,并創(chuàng)建用于描述數(shù)據(jù)表和持久化實(shí)體類的、以 *.hbm.xml命名的Hibernate映射文件,從而實(shí)現(xiàn)JavaBean-MySQL-Hibernate的整合。具體代碼略。
3.2.3 模塊功能的實(shí)現(xiàn)
本系統(tǒng)采用業(yè)務(wù)邏輯層、數(shù)據(jù)層和表示層三層架構(gòu),所有模塊均根據(jù)接口來設(shè)計(jì)。以客戶預(yù)訂設(shè)備為例,由圖3可以看到 EqScheduledService 接口是業(yè)務(wù)邏輯處理層的接口,EqScheduledServiceImpl 類是業(yè)務(wù)邏輯處理層的實(shí)現(xiàn)類,EqScheduledDao 接口是數(shù)據(jù)持久層的接口,EqScheduledDaoImpl 是數(shù)據(jù)持久層的實(shí)現(xiàn)類。EqScheduledAction 類是顯示層中控制層中的類,用于接收頁面請(qǐng)求以及請(qǐng)求中的數(shù)據(jù),并且對(duì)接收到的數(shù)據(jù)進(jìn)行驗(yàn)證和處理,然后以視圖或數(shù)據(jù)形式返回處理結(jié)果到客戶端。系統(tǒng)業(yè)務(wù)處理的一般過程是:用戶在頁面發(fā)出請(qǐng)求后,請(qǐng)求將被發(fā)送到Struts控制層中的一個(gè)以Action 為結(jié)尾的控制類;控制類接收到請(qǐng)求以及數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證后再調(diào)用業(yè)務(wù)邏輯處理層中以 ServiceImpl 為結(jié)尾的業(yè)務(wù)邏輯處理類進(jìn)行處理;如果需要操作數(shù)據(jù)庫,那么業(yè)務(wù)邏輯處理類會(huì)調(diào)用數(shù)據(jù)持久層中以DaoImpl 為結(jié)尾的數(shù)據(jù)持久層類對(duì)數(shù)據(jù)庫進(jìn)行操作,并且返回處理結(jié)果給業(yè)務(wù)邏輯處理類,然后業(yè)務(wù)邏輯處理類再返回結(jié)果給控制層類,最后控制層類會(huì)返回視圖或數(shù)據(jù)給頁面。具體處理流程和關(guān)系詳見圖3。