2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p>  題 目: 資產(chǎn)管理系統(tǒng) </p><p>  年級專業(yè): <

2、/p><p>  學(xué)生姓名: </p><p>  學(xué) 號: </p><p>  指導(dǎo)教師: </p>

3、<p>  職 稱: 講師 </p><p>  論文完成時(shí)間: 2011 年 4 月 21 日</p><p><b>  摘要</b></p><p>  【摘要】現(xiàn)代企業(yè)管理越來越強(qiáng)調(diào)利用有形資產(chǎn)來提供優(yōu)質(zhì)服務(wù)的能力,即

4、通過資產(chǎn)管理來確保有形資產(chǎn)物盡其用、安全運(yùn)行,在希望的時(shí)間和地點(diǎn)提供需要的設(shè)備,同時(shí)盡可能地降低運(yùn)行和維護(hù)成本。資產(chǎn)管理系統(tǒng)為企業(yè)提供全面、迅速的資產(chǎn)信息,方便管理者了解和操作企業(yè)內(nèi)部的資產(chǎn)管理。</p><p>  本系統(tǒng)是基于B/S的多層Web應(yīng)用,在windows 7操作系統(tǒng)下,本系統(tǒng)選擇了Myeclipse8.6開發(fā)環(huán)境、Mysql數(shù)據(jù)庫和JSP、Struts、Spring、Hibernate、AJAX技

5、術(shù),利用MVC設(shè)計(jì)模式將業(yè)務(wù)邏輯和表示邏輯分離,在表示邏輯層利用JSP技術(shù)實(shí)現(xiàn)了頁面制作、利用AJAX實(shí)現(xiàn)無刷新技術(shù),在業(yè)務(wù)邏輯層,利用Struts、Spring技術(shù)實(shí)現(xiàn)了系統(tǒng)設(shè)置、資產(chǎn)管理以及分類統(tǒng)計(jì)三個(gè)主要模塊的開發(fā),后臺使用Mysql進(jìn)行數(shù)據(jù)庫的開發(fā),并利用Hibernate技術(shù)完成對數(shù)據(jù)庫的封裝映射,實(shí)現(xiàn)了數(shù)據(jù)查詢、修改、增加、刪除等功能。</p><p>  【關(guān)鍵詞】資產(chǎn)管理,JSP,SSH,MySQ

6、L,設(shè)計(jì)模式</p><p><b>  目錄</b></p><p>  畢業(yè)設(shè)計(jì)(論文)1</p><p><b>  第一章 緒論4</b></p><p><b>  1.1選題背景4</b></p><p>  1.2問題的提出4<

7、;/p><p>  1.3系統(tǒng)的開發(fā)目標(biāo)4</p><p>  第二章 系統(tǒng)概要設(shè)計(jì)5</p><p><b>  2.1系統(tǒng)分析5</b></p><p>  2.2系統(tǒng)的可行性分析5</p><p>  2.2.1技術(shù)可行性5</p><p>  2.2.2經(jīng)濟(jì)

8、可行性5</p><p>  2.2.3管理可行性6</p><p>  2.2.4系統(tǒng)功能結(jié)構(gòu)圖6</p><p>  第三章 開發(fā)環(huán)境的說明與安裝6</p><p>  3.1開發(fā)語言的選擇6</p><p>  3.2數(shù)據(jù)庫的選擇7</p><p>  3.3開發(fā)工具的選擇

9、8</p><p>  3.4系統(tǒng)所涉及的關(guān)鍵技術(shù)9</p><p>  第四章 系統(tǒng)設(shè)計(jì)11</p><p>  第五章 數(shù)據(jù)庫設(shè)計(jì)17</p><p>  5.1 資產(chǎn)管理系統(tǒng)數(shù)據(jù)庫表結(jié)構(gòu)說明17</p><p>  第六章 主要編碼實(shí)現(xiàn)19</p><p>  6.1 公共類設(shè)

10、計(jì)19</p><p>  6.2 系統(tǒng)的實(shí)現(xiàn)21</p><p>  第七章 參考文獻(xiàn)30</p><p><b>  第八章 致謝30</b></p><p><b>  第一章 緒論</b></p><p><b>  1.1選題背景</b>

11、;</p><p>  隨著internet技術(shù)的不斷發(fā)展,應(yīng)用軟件迅速普及,大到廠礦校企,小到圖書、餐</p><p>  飲行業(yè),無不應(yīng)用了信息技術(shù),實(shí)現(xiàn)了現(xiàn)代化管理。目前我國中小企業(yè)運(yùn)用信息化等手段,開展現(xiàn)代化治理已經(jīng)具備良好的基礎(chǔ)。但是發(fā)展不平衡,從企業(yè)規(guī)模看,大型企業(yè)的信息化水平遠(yuǎn)遠(yuǎn)高于小型企業(yè),尤其是采購、生產(chǎn)、庫存和銷售的信息化程度這四項(xiàng)指標(biāo)尤為突出,中小企業(yè)的差距也最為明顯

12、,因此加快信息化建設(shè),實(shí)現(xiàn)現(xiàn)代化管理是中小企業(yè)的必然選擇。</p><p>  企業(yè)資產(chǎn)管理的著眼點(diǎn)是幫助企業(yè)管理好有形資產(chǎn),使之物盡其用,而且要使企業(yè)資產(chǎn)的投資回報(bào)最大化。原始的企業(yè)資產(chǎn)管理體制,采用人力管理浪費(fèi)大量的時(shí)間、人力和物力,并且數(shù)據(jù)準(zhǔn)確性低,數(shù)據(jù)匯總速度慢。企業(yè)資產(chǎn)管理之所以非常重要,是因?yàn)榱己玫馁Y產(chǎn)管理能夠減少設(shè)備的故障率,縮短維修響應(yīng)和維修工作時(shí)間,延長設(shè)備壽命,提高倉庫備件儲存水平的合理性,提

13、高采購的科學(xué)性。</p><p><b>  1.2問題的提出</b></p><p>  現(xiàn)代企業(yè)管理越來越強(qiáng)調(diào)利用有形資產(chǎn)來提供優(yōu)質(zhì)服務(wù)的能力,即通過資產(chǎn)管理來確保有形資產(chǎn)物盡其用、安全運(yùn)行,在希望的時(shí)間和地點(diǎn)提供需要的設(shè)備,同時(shí)盡可能地降低運(yùn)行和維護(hù)成本。資產(chǎn)管理系統(tǒng)為企業(yè)提供全面、迅速的資產(chǎn)信息,方便管理者了解和操作企業(yè)內(nèi)部的資產(chǎn)管理。</p>

14、<h3>  1.3系統(tǒng)的開發(fā)目標(biāo)</h2><p>  開發(fā)資產(chǎn)管理系統(tǒng)目的在于解決企業(yè)資產(chǎn)管理過程中不必要的人力、物力的浪費(fèi),提高數(shù)據(jù)匯總速度,從而提高資產(chǎn)管理的合理性和科學(xué)性。</p><p>  資產(chǎn)管理系統(tǒng)具有三大功能:</p><p>  系統(tǒng)設(shè)置:可以對資產(chǎn)管理系統(tǒng)的管理員,用戶,部門,類別以及個(gè)人信息設(shè)置,即增刪、改、查的操作。</p

15、><p>  資產(chǎn)管理:企業(yè)的資產(chǎn)的增加,資產(chǎn)信息、使用人員及部門的修改,資產(chǎn)的送修,資產(chǎn)的刪除等管理操作。</p><p>  分類統(tǒng)計(jì):按照指定的日期區(qū)間查找出指定的資產(chǎn)進(jìn)行操作。</p><h2>  第二章 系統(tǒng)概要設(shè)計(jì)</h2><p><b>  2.1系統(tǒng)分析</b></p><p>

16、  為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運(yùn)行,系統(tǒng)應(yīng)該滿足以下的性能需求:</p><p>  1、 系統(tǒng)處理的準(zhǔn)確性和及時(shí)性:系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計(jì)和開發(fā)過程中,要充分考慮系統(tǒng)當(dāng)前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時(shí)間能夠滿足教師的操作以及和學(xué)生之間的快速交互的需求。</p><p>  2、 系統(tǒng)的開放性和系統(tǒng)的可擴(kuò)充性:系統(tǒng)在開發(fā)過

17、程中,應(yīng)該充分考慮以后的可擴(kuò)充性。例如數(shù)據(jù)表中用戶選擇字段方式的改變,用戶查詢的需求也會不斷的更新和完善。所有這些,都要求系統(tǒng)提供足夠的手段進(jìn)行功能的調(diào)整和擴(kuò)充。而要實(shí)現(xiàn)這一點(diǎn),應(yīng)通過系統(tǒng)的開放性來完成,既系統(tǒng)應(yīng)是一個(gè)開放系統(tǒng),只要符合一定的規(guī)范,可以簡單的加入和減少系統(tǒng)的模塊,配置系統(tǒng)的硬件。通過軟件的修補(bǔ)、替換完成系統(tǒng)的升級和更新?lián)Q代。</p><p>  3、 系統(tǒng)的易用性和易維護(hù)性:要實(shí)現(xiàn)這一點(diǎn),就要求系

18、統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語和中文信息的界面;針對用戶可能出現(xiàn)的使用問題,要提供足夠的在線幫助,縮短用戶對系統(tǒng)熟悉的過程。</p><p>  4、 系統(tǒng)的數(shù)據(jù)要求:1.數(shù)據(jù)錄入和處理的準(zhǔn)確性和實(shí)時(shí)性。2.數(shù)據(jù)的一致性與完整性。3.數(shù)據(jù)的共享與獨(dú)立性。4.對于系統(tǒng)中一些不予以公布的系統(tǒng),系統(tǒng)每個(gè)用戶有保密的權(quán)利。</p><h3>  2.2系統(tǒng)的可行性分析</h2><

19、;h4>  2.2.1技術(shù)可行性</h2><p>  運(yùn)用Sun公司開發(fā)的J2EE體系結(jié)構(gòu),采用MVC三層架構(gòu)的模式,在設(shè)計(jì)模式上,使用當(dāng)前流行的SSH框架,采用Hibernate作為ORM框架,J2EE是一種利用Java 2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),同時(shí)還提供了對 Java Servle

20、t API、JSP(Java Server Pages)以及XML技術(shù)的全面支持。</p><p>  開發(fā)過程中運(yùn)用MyEclipse8.6開發(fā)工具,該開發(fā)工具是Eclipse的一個(gè)插件,Eclipse本身就是一個(gè)功能非常強(qiáng)大的開發(fā)工具,而MyEclipse在功能上與Tomcat進(jìn)行了集成,并且能做到自動打包,并將包自動部署到服務(wù)器上。這從很大程度上提高了開發(fā)的效率,節(jié)約了開發(fā)的時(shí)間。</p>&

21、lt;h4>  2.2.2經(jīng)濟(jì)可行性</h2><p>  系統(tǒng)在硬件和軟件方面需求都不是很大,數(shù)據(jù)庫目前采用mysql數(shù)據(jù)庫,在維護(hù)方面非常便捷,如果以后數(shù)據(jù)量很大的情況下,可以轉(zhuǎn)移為Oracle數(shù)據(jù)庫替代mysql,系統(tǒng)只需設(shè)置一個(gè)服務(wù)器,使用者通過IE瀏覽器登陸系統(tǒng),操作賦予自己的系統(tǒng)操作功能,總體上經(jīng)濟(jì)不會超過5000元,所以說在經(jīng)濟(jì)上本系統(tǒng)完全可行。</p><h4>  

22、2.2.3管理可行性</h2><p>  本系統(tǒng)只有2個(gè)角色可以登錄進(jìn)行操作:管理員與超級管理員。</p><p>  系統(tǒng)中有用戶這個(gè)角色,此角色不能登錄到系統(tǒng),僅僅作為資產(chǎn)擁有者而存在,用戶的信息由管理員錄入。</p><p>  管理員可以管理用戶、部門、類別、資產(chǎn)。</p><p>  超級管理員除了擁有管理員的權(quán)限外,還可以管理管

23、理員。</p><h4>  2.2.4系統(tǒng)功能結(jié)構(gòu)圖</h2><h2>  第三章 開發(fā)環(huán)境的說明與安裝</h2><h3>  3.1開發(fā)語言的選擇</h2><p>  Java是一種簡單的,面向?qū)ο蟮模植际降?,解釋型的,健壯安全的,結(jié)構(gòu)中立的,可移植的,性能優(yōu)異、多線程的動態(tài)語言。</p><p>  1

24、、Java語言是簡單的。Java語言的語法與C語言和C++語言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用Java。另一方面,Java丟棄了C++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強(qiáng)制類型轉(zhuǎn)換。特別地,Java語言不使用指針,并提供了自動的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。  2、Java語言是一個(gè)面向?qū)ο蟮?。Java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持

25、接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為implements)。Java語言全面支持動態(tài)綁定,而C++ 語言只對虛函數(shù)使用動態(tài)綁定。總之,Java語言是一個(gè)純的面向?qū)ο蟪绦蛟O(shè)計(jì)語言?!?、Java語言是分布式的。Java語言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(java.net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL、 URLConnection、Socket、 S

26、erverSocket等。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)分布式應(yīng)用的重要手段?!?、Java語言是健壯</p><p>  本系采用Java語言,結(jié)合當(dāng)今比較主流的SSH(struts2、hibernate3、spring.5)框架、Ajax、jQuery、JavaScript、CSS、spring2.5注解、dwr等技術(shù)。開發(fā)語言采用JSP語言。</p><p><

27、b>  3.2數(shù)據(jù)庫的選擇</b></p><p>  本系統(tǒng)采用MySQL小型數(shù)據(jù)庫,如果以后系統(tǒng)數(shù)據(jù)量大以及需要大量維護(hù),可以轉(zhuǎn)移到Oracle大型數(shù)據(jù)庫上。</p><p>  MySQL是一個(gè)真正的多用戶、多線程SQL數(shù)據(jù)庫服務(wù)器。SQL(結(jié)構(gòu)化查詢語言)是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫語言。MySQL是以一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),它由一個(gè)服務(wù)器守護(hù)程序mys

28、qld和很多不同的客戶程序和庫組成?! QL是一種標(biāo)準(zhǔn)化的語言,它使得存儲、更新和存取信息更容易。例如,你能用SQL語言為一個(gè)網(wǎng)站檢索產(chǎn)品信息及存儲顧客信息,同時(shí)MySQL也足夠快和靈活以允許你存儲記錄文件和圖像?! ySQL 主要目標(biāo)是快速、健壯和易用。最初是因?yàn)槲覀冃枰@樣一個(gè)SQL服務(wù)器,它能處理與任何可不昂貴硬件平臺上提供數(shù)據(jù)庫的廠家在一個(gè)數(shù)量級上的大型數(shù)據(jù)庫,但速度更快,MySQL就開發(fā)出來。自1996年以來,我們一直

29、都在使用MySQL,其環(huán)境有超過 40 個(gè)數(shù)據(jù)庫,包含 10,000個(gè)表,其中500多個(gè)表超過7百萬行,這大約有100 個(gè)吉字節(jié)(GB)的關(guān)鍵應(yīng)用數(shù)據(jù)?! ySQL建立的基礎(chǔ)是業(yè)已用在高要求的生產(chǎn)環(huán)境多年的一套實(shí)用例程。盡管MySQL仍在開發(fā)中,但它已經(jīng)提供一個(gè)豐富和極其有用的功能集。</p><p>  接下來我將對兩個(gè)數(shù)據(jù)庫作簡單的比較:</p><p>  1、安全性:不管是My

30、SQL,還是MySQL,在外部網(wǎng)絡(luò)中,都受到相當(dāng)大的威脅。相比而言,MySQL受到的威脅甚至要更大些,最近2年來,MySQL暴露出了多個(gè)遠(yuǎn)程溢出漏洞。如果配置的比較好的話,我認(rèn)為,Oracle要比MySQL安全一些,因?yàn)殡S時(shí)會爆發(fā)的新溢出漏洞是防不勝防的,而且能夠執(zhí)行系統(tǒng)命令的sql注入攻擊也非??膳隆?2、易用性:毫無疑問,Oracle和MySQL的易用性比較差,入門的門檻高了點(diǎn),特別是Oracle;MySQL相對比較容易,微軟

31、的東西不管性能怎么樣,易用性都做得不錯。 3、開發(fā)環(huán)境:Eclipse和Tomcat本身對數(shù)據(jù)庫都沒有什么要求,只要你有JDBC驅(qū)動,連接都差不多,穩(wěn)定性和性能也沒多大區(qū)別。從開發(fā)的角度來講,中小型項(xiàng)目Oracle和MySQL都是不錯的選擇。</p><h3>  3.3開發(fā)工具的選擇</h2><p>  IDE工具:MyEclipse8.6</p><p>

32、;  MyEclipse是在IBM開發(fā)的IDE工具Eclipse基礎(chǔ)上集合了一系列插件的代碼編寫工具,利用它我們可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。</p><p>  數(shù)據(jù)庫可視化

33、操作工具:SQLyog Enterprise</p><p>  SQLyog是業(yè)界著名的Webyog公司出品的一款簡潔高效、功能強(qiáng)大的圖形化MySQL數(shù)據(jù)庫管理工具。使用SQLyog可以快速直觀地讓您從世界的任何角落通過網(wǎng)絡(luò)來維護(hù)遠(yuǎn)端的MySQL數(shù)據(jù)庫。它具有易用的數(shù)據(jù)庫、數(shù)據(jù)表備份與還原功能,支持導(dǎo)入與導(dǎo)出XML、HTML、CSV等多種格式的數(shù)據(jù),直接運(yùn)行批量SQL腳本文件,速度極快等優(yōu)點(diǎn)。</p>

34、;<p>  WEB容器:Tomcat6.0</p><p>  Tomcat 服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web 應(yīng)用服務(wù)器,也是一個(gè)小型的輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對于一個(gè)初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對HTML 頁面的訪問請求。實(shí)際上Tomcat 部分是Apache

35、 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。</p><h3>  3.4系統(tǒng)所涉及的關(guān)鍵技術(shù)</h2><p>  MVC(Model-View-Controller,“模式-視圖-控制器”)模式的結(jié)構(gòu)由以下三種部分組</p><p>  成:模型(Model)、視圖(View)和控制器(C

36、ontroller)。如下圖所示:</p><p>  通知變化狀態(tài)變化</p><p><b>  通知變化</b></p><p><b>  用戶請求</b></p><p><b>  查看變化</b></p><p>  MVC模式的功能示

37、意圖</p><p>  模型層中的模型就是指業(yè)務(wù)邏輯模型和數(shù)據(jù)模型。模型接收視圖請求的數(shù)據(jù),并返</p><p>  回最終的處理結(jié)果。這里只所以把模型層單獨(dú)抽取出來,是為了應(yīng)對業(yè)務(wù)規(guī)則的變化,</p><p>  也是判斷開發(fā)人員是否優(yōu)秀的設(shè)計(jì)依據(jù)。MVC并沒有提供模型的設(shè)計(jì)方法,而只告</p><p>  訴開發(fā)人員應(yīng)該組織管理這些模型

38、,以便于模型的重構(gòu)和提高重用性。</p><p>  視圖層主要是用來展現(xiàn)用戶所需要的數(shù)據(jù),它是用戶和系統(tǒng)進(jìn)行交互的界面,</p><p>  可以采用HTML、XML、Servlet等技術(shù)。一般來說,視圖只接收來自模型的數(shù)據(jù)并顯</p><p>  示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請求傳遞給控制和模型[6,7]。MVC設(shè)計(jì)模式對</p><

39、p>  于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請求,而不包括在視圖上業(yè)</p><p>  務(wù)流程的處理,業(yè)務(wù)流程的處理和狀態(tài)的改變則交給模型層處理。視圖部分的大致處理</p><p>  流程是:頁面模板定義頁面布局,頁面配置文件定義視圖標(biāo)簽的具體內(nèi)容,由頁面布局</p><p>  策略類初始化并加載頁面,每個(gè)用戶部件根據(jù)自己的配置進(jìn)行初始化

40、,加載校驗(yàn)器并設(shè)</p><p>  置參數(shù),以及事件的委托等,用戶提交后,通過了表示層的校驗(yàn),用戶部件把數(shù)據(jù)自動</p><p>  提交給業(yè)務(wù)實(shí)體即模型。</p><p>  控制層就像一個(gè)中轉(zhuǎn)站,它從用戶那里接收請求,并根據(jù)用戶的請求,將模型與視</p><p>  圖匹配在一起,共同完成用戶的請求。在實(shí)現(xiàn)上,為了能夠控制和協(xié)調(diào)每個(gè)用戶

41、跨越多個(gè)請求的處理,控制機(jī)制應(yīng)該以集中的方式進(jìn)行管理[8]。用戶提交一個(gè)表單或者單擊一個(gè)鏈接,控制層接收請求后,它本身并不處理業(yè)務(wù)信息,而是根據(jù)用戶的請求類型,把用戶的信息傳遞給相對應(yīng)的模型,告訴模型做什么,等模型處理完畢后,再把模型處理后的數(shù)據(jù)選擇符合要求的視圖返回給用戶。</p><p>  通過將模型、視圖和控制器分離,使得一個(gè)模型可以對應(yīng)多個(gè)視圖,一個(gè)視圖可能</p><p>  

42、對應(yīng)多個(gè)模型。如果用戶通過某個(gè)視圖的控制改變了模型的數(shù)據(jù),所有其他依賴于這些</p><p>  數(shù)據(jù)的視圖都反映到這些變化。因此,無論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會將變</p><p>  化通知多有的視圖,導(dǎo)致顯示的更新。</p><p>  Struts是一個(gè)MVC框架(Framework),能夠?qū)崿F(xiàn)JavaWeb應(yīng)用的快速開發(fā)。Struts實(shí)現(xiàn)的重點(diǎn)在C

43、(Controller),包括 ActionServlet/RequestProcessor和我們定制的Action,也為V(View)提供了一系列定制標(biāo)簽 (CustomTag)。但Struts幾乎沒有涉及M(Model),所以Struts可以采用JAVA實(shí)現(xiàn)的任何形式的商業(yè)邏輯。Spring是一個(gè)輕型容器(light-weightcontainer),其核心是Bean工廠(BeanFactory),用以構(gòu)造我們所需要 的M(Mode

44、l)。在此基礎(chǔ)之上,Spring提供了AOP(Aspect-OrientedProgramming,面向?qū)用娴木幊蹋┑膶?shí)現(xiàn),用它來提供非管理環(huán)境下申明方式的事務(wù)、安全等服務(wù);對Bean工廠的擴(kuò)展ApplicationContext更加方便我們實(shí)現(xiàn)J2EE的應(yīng)用;WebMVC和SpringWeb提供了JavaWeb應(yīng)用的框架或與其他流行的Web框架進(jìn)行集成。就是說可將兩者一起使用,達(dá)到將兩者自身的特點(diǎn)進(jìn)行互補(bǔ)。</p>&l

45、t;p>  Hibernate是一個(gè)和JDBC密切關(guān)聯(lián)的框架,是JDBC的輕量級的對象封裝,所以Hibernate的兼容性和JDBC驅(qū)動,和數(shù)據(jù)庫都有一定的關(guān)系,但是和使用它的Java程序,和App Server沒有任何關(guān)系,也不存在兼容性問題。Hibernate是一個(gè)獨(dú)立的對象持久層框架,和App Server,和EJB沒有什么必然的聯(lián)系。Hibernate可以用在任何JDBC可以使用的場合,例如Java應(yīng)用程序的數(shù)據(jù)庫訪問代碼

46、,DAO接口的實(shí)現(xiàn)類,甚至可以是BMP里面的訪問數(shù)據(jù)庫的代碼。從這個(gè)意義上來說,Hibernate和EB不是一個(gè)范疇的東西,也不存在非此即彼的關(guān)系。</p><p>  本系統(tǒng)的設(shè)計(jì)方案采用MVC設(shè)計(jì)模式下的Struts+Spring+Hibernate的架構(gòu)。SSH架構(gòu)是典型的J2EE三層結(jié)構(gòu),分為表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗(yàn)等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫

47、交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。具體架構(gòu)如圖3.2所示:</p><p>  Service locatorDAO</p><p><b>  SSH架構(gòu)圖</b></p><p><b>  第四章 系統(tǒng)設(shè)計(jì)</b></p><p><b>  4.1部分

48、序列圖</b></p><p><b>  登錄</b></p><p>  用戶在登陸界面輸入賬號、密碼,選擇角色登陸成功跳轉(zhuǎn)到主頁面(home.jsp)登錄則返回index.jsp頁面。</p><p><b>  個(gè)人設(shè)置</b></p><p>  管理員登錄成功之后可以修改個(gè)人

49、詳細(xì)信息以及密碼信息。頁面通過AJAX顯示服務(wù)器傳遞回來的信息。</p><p><b>  添加用戶</b></p><p>  管理員登錄成功之后可以添加用戶。用戶只是資產(chǎn)的擁有者,并不具有登錄系統(tǒng)的權(quán)限。</p><p><b>  修改用戶</b></p><p>  管理員登錄成功之后可以

50、對用戶詳細(xì)信息修改,如Email,聯(lián)系方式,部門等。</p><p><b>  部門添加</b></p><p>  管理員登錄成功之后添加部門。</p><p><b>  部門信息修改</b></p><p>  管理員登錄成功之后可以修改部門信息,如部門名,部門描述等。</p>

51、<p><b>  資產(chǎn)添加</b></p><p>  管理員登錄成功之后可以添加資產(chǎn),管理員可以填寫資產(chǎn)編號,資產(chǎn)名,資產(chǎn)類別,生產(chǎn)日期,購買日期是否折舊等。系統(tǒng)根據(jù)管理員選擇的使用情況選項(xiàng)自動增加或刪除使用部門與使用人員兩項(xiàng)。</p><p><b>  資產(chǎn)查詢</b></p><p>  管理員登錄成

52、功之后可以查詢資產(chǎn),查詢完畢之后可以對資產(chǎn)進(jìn)行修改、刪除、送修操作,也可以點(diǎn)擊資產(chǎn)名查看資產(chǎn)的詳細(xì)信息。</p><p><b>  資產(chǎn)送修</b></p><p>  管理員登錄成功之后可以對需要送修的資產(chǎn)進(jìn)行送修操作,管理員需要填寫送修日期,花費(fèi),送修人員等信息。</p><p><b>  資產(chǎn)修改</b><

53、/p><p>  管理員登錄成功之后可以修改資產(chǎn)的詳細(xì)信息以及使用人員。</p><p><b>  分類統(tǒng)計(jì)</b></p><p>  管理員登錄成功之后可以按照日期區(qū)間來查詢資產(chǎn)。</p><p><b>  第五章 數(shù)據(jù)庫設(shè)計(jì)</b></p><h4>  5.1 資產(chǎn)管

54、理系統(tǒng)數(shù)據(jù)庫表結(jié)構(gòu)說明</h2><p>  Assets(資產(chǎn))</p><p>  admin(管理員)</p><p>  bsend(送修記錄)</p><p><b>  User(用戶)</b></p><p>  department(部門)</p><p>

55、<b>  Type(類別)</b></p><h2>  第六章 主要編碼實(shí)現(xiàn)</h2><p><b>  6.1 公共類設(shè)計(jì)</b></p><p>  6.1.1 數(shù)據(jù)庫操作工具類 HibernateUtil.java</p><p>  @Service @Transactional<

56、;/p><p>  public class HibernateUtil {</p><p>  @Resource private SessionFactory sessionFactory;</p><p>  //獲取Session</p><p>  public Session getSession(){</p><

57、p>  return sessionFactory.openSession();</p><p><b>  }</b></p><p><b>  //添加一條數(shù)據(jù)</b></p><p>  public void add(Object obj){</p><p>  sessionFac

58、tory.getCurrentSession().save(obj);</p><p><b>  }</b></p><p><b>  //更新一條數(shù)據(jù)</b></p><p>  public void update(Object obj){</p><p>  sessionFactory.

59、getCurrentSession().update(obj);</p><p><b>  }</b></p><p><b>  //刪除多個(gè)數(shù)據(jù)</b></p><p>  public void delete(Object... objs){</p><p>  for(Object obj

60、 : objs)</p><p>  sessionFactory.getCurrentSession().delete(obj);</p><p><b>  }</b></p><p>  //根據(jù)ID獲取一條數(shù)據(jù)</p><p>  @Transactional(propagation=Propagation.NO

61、T_SUPPORTED)</p><p>  public Object get(Class clazz, Serializable id){</p><p>  return sessionFactory.openSession().get(clazz, id);</p><p><b>  }</b></p><p>

62、;<b>  //獲取Query</b></p><p>  public Query getQuery(String hql){</p><p>  return sessionFactory.openSession().createQuery(hql);</p><p><b>  }</b></p>&

63、lt;p><b>  }</b></p><p>  6.1.2 Struts攔截器,驗(yàn)證是否登錄CheckLoginInterceptor.java</p><p>  @Controller</p><p>  public class CheckLoginInterceptor extends AbstractInterceptor

64、 {</p><p>  private static final long serialVersionUID = 1L;</p><p>  @SuppressWarnings("unchecked")</p><p>  public String intercept(ActionInvocation ai) throws Exception

65、 {</p><p>  Object action = ai.getAction();</p><p>  //如果是loginAction,則攔截器不生效</p><p>  if (action instanceof LoginAction) {</p><p>  return ai.invoke();</p><

66、p><b>  }</b></p><p>  Map session = ai.getInvocationContext().getSession();</p><p>  Object admin = session.get("admin");</p><p>  //如果用戶沒有登錄,則返回到登錄界面</p

67、><p>  if(admin != null){</p><p>  return ai.invoke();</p><p><b>  }</b></p><p><b>  else{</b></p><p>  return "login";</

68、p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  6.1.3 Struts攔截器,驗(yàn)證權(quán)限CheckPermissionInterceptor.java</p><p> 

69、 @Controller</p><p>  public class CheckPermissionInterceptor extends AbstractInterceptor {</p><p>  private static final long serialVersionUID = 1L;</p><p>  @SuppressWarnings(&quo

70、t;unchecked")</p><p>  public String intercept(ActionInvocation ai) throws Exception {</p><p>  Map session = ai.getInvocationContext().getSession();</p><p>  if(session.get(&q

71、uot;admin") == null)</p><p>  return "login";</p><p>  Admin admin = (Admin)session.get("admin");</p><p>  if(admin.getPermission() == 0){</p><p&

72、gt;  return ai.invoke();</p><p><b>  }</b></p><p><b>  else{</b></p><p>  return "permission";</p><p><b>  }</b></p>

73、<p><b>  }</b></p><p><b>  }</b></p><p><b>  6.2 系統(tǒng)的實(shí)現(xiàn)</b></p><p>  6.2.1 登錄 LoginDao.java</p><p><b>  @Service</b&g

74、t;</p><p>  public class LoginDao {</p><p>  @Resource private HibernateUtil util;</p><p>  public Admin login(Admin admin){</p><p>  Session session = util.getSession(

75、);</p><p>  Criteria criteria = session.createCriteria(Admin.class);</p><p>  criteria.add(Restrictions.eq("username", admin.getUsername()));</p><p>  criteria.add(Restric

76、tions.eq("password", admin.getPassword()));</p><p>  Admin u = (Admin) criteria.uniqueResult();</p><p><b>  return u;</b></p><p><b>  }</b></p&g

77、t;<p>  //設(shè)置登錄次數(shù)以及最后登錄時(shí)間</p><p>  public void update(Admin admin){</p><p>  admin.setLogincount(admin.getLogincount() + 1);</p><p>  admin.setLasttime(new Timestamp(System.cu

78、rrentTimeMillis()));</p><p>  util.update(admin);</p><p><b>  }</b></p><p><b>  }</b></p><p>  6.2.2 個(gè)人設(shè)置 PersonDao.java</p><p><

79、;b>  @Service</b></p><p>  public class PersonDao {</p><p>  @Resource private HibernateUtil util;</p><p><b>  //修改密碼</b></p><p>  public void upda

80、te(Admin admin){</p><p>  util.update(admin);</p><p><b>  }</b></p><p><b>  //修改個(gè)人信息</b></p><p>  public Admin update(Integer dp, String email,

81、String wp, String mp, Admin admin){</p><p>  admin.setEmail(email);</p><p>  admin.setWorkphone(wp);</p><p>  admin.setMobilephone(mp);</p><p>  Department depart = (De

82、partment)util.get(Department.class, dp);</p><p>  admin.setDepartment(depart);</p><p>  util.update(admin);</p><p>  return admin;</p><p><b>  }</b></p&g

83、t;<p><b>  }</b></p><p>  6.2.3 部門設(shè)置DepartmentDao.java</p><p><b>  @Service</b></p><p>  public class DepartmentDao {</p><p>  @Resource

84、private HibernateUtil util;</p><p><b>  //添加新部門</b></p><p>  public void add(Department dp){</p><p>  util.add(dp);</p><p><b>  }</b></p>

85、<p><b>  //刪除部門</b></p><p>  public void delete(Integer id){</p><p>  util.delete(util.get(Department.class, id));</p><p><b>  }</b></p><p&g

86、t;<b>  //修改部門</b></p><p>  public void update(Department dp){</p><p>  util.update(dp);</p><p><b>  }</b></p><p><b>  //查詢部門</b><

87、/p><p>  @SuppressWarnings("unchecked")</p><p>  public List search(String str){</p><p>  String hql = "from Department d where d.dpname like ?";</p><p&g

88、t;  Session session = util.getSession();</p><p>  Query query = session.createQuery(hql);</p><p>  query.setString(0, "%"+str+"%");</p><p>  return query.list();

89、</p><p><b>  }</b></p><p><b>  }</b></p><p>  6.2.4 類別設(shè)置TypeDao.java</p><p><b>  @Service</b></p><p>  public class Typ

90、eDao {</p><p>  @Resource private HibernateUtil util;</p><p><b>  //增加類別</b></p><p>  public void add(Type tp){</p><p>  util.add(tp);</p><p>&

91、lt;b>  }</b></p><p><b>  //刪除類別</b></p><p>  public void delete(Integer id){</p><p>  util.delete(util.get(Type.class, id));</p><p><b>  }<

92、;/b></p><p><b>  //修改類別</b></p><p>  public void update(Type tp){</p><p>  util.update(tp);</p><p><b>  }</b></p><p><b>  

93、//查詢類別</b></p><p>  @SuppressWarnings("unchecked")</p><p>  public List search(String str){</p><p>  String hql = "from Type t where t.typename like ?";<

94、;/p><p>  Session session = util.getSession();</p><p>  Query query = session.createQuery(hql);</p><p>  query.setString(0, "%"+str+"%");</p><p>  retu

95、rn query.list();</p><p><b>  }</b></p><p><b>  }</b></p><p>  6.2.5 用戶設(shè)置UserDao.java</p><p><b>  @Service</b></p><p>  

96、public class UserDao {</p><p>  @Resource private HibernateUtil util;</p><p><b>  //添加用戶</b></p><p>  public void add(User user, Integer did){</p><p>  user

97、.setDepartment((Department)util.get(Department.class, did));</p><p>  util.add(user);</p><p><b>  }</b></p><p><b>  //刪除用戶</b></p><p>  public v

98、oid delete(Integer id){</p><p>  util.delete(util.get(User.class, id));</p><p><b>  }</b></p><p><b>  //修改用戶</b></p><p>  public void update(Use

99、r user, Integer did){</p><p>  user.setDepartment((Department)util.get(Department.class, did));</p><p>  util.update(user);</p><p><b>  }</b></p><p>  @Supp

100、ressWarnings("unchecked")</p><p><b>  //按姓名查找用戶</b></p><p>  public List searchByName(String str1, String str2){</p><p>  String hql = "from User u where

101、u.name like ? and u.department=?";</p><p>  if(str2 == null || str2.equals("") || str2.equals("0"))</p><p>  hql = "from User u where u.name like ?";</p>

102、<p>  return this.search(hql, str1, str2);</p><p><b>  }</b></p><p>  @SuppressWarnings("unchecked")</p><p>  //按姓名郵箱地址用戶</p><p>  public L

103、ist searchByEmail(String str1, String str2){</p><p>  String hql = "from User u where u.email like ? and u.department=?";</p><p>  if(str2 == null || str2.equals("") || str2.

104、equals("0"))</p><p>  hql = "from User u where u.email like ?";</p><p>  return this.search(hql, str1, str2);</p><p><b>  }</b></p><p> 

105、 @SuppressWarnings("unchecked")</p><p>  public List search(String hql, String str1, String str2){</p><p>  Session session = util.getSession();</p><p>  Query query = ses

106、sion.createQuery(hql);</p><p>  query.setString(0, "%"+str1+"%");</p><p>  if(hql.split("[?]").length > 1)</p><p>  query.setInteger(1, Integer.valu

107、eOf(str2));</p><p>  return query.list();</p><p><b>  }</b></p><p><b>  }</b></p><p>  6.2.6 管理員設(shè)置AdminDao.java</p><p><b>  @

108、Service</b></p><p>  public class AdminDao {</p><p>  @Resource private HibernateUtil util;</p><p><b>  //添加管理員</b></p><p>  public void add(Admin adm

109、in, Integer did){</p><p>  admin.setDepartment((Department)util.get(Department.class, did));</p><p>  util.add(admin);</p><p><b>  }</b></p><p><b>  /

110、/刪除管理員</b></p><p>  public void delete(Integer id){</p><p>  util.delete(util.get(Admin.class, id));</p><p><b>  }</b></p><p>  //按姓名查找管理員</p>

111、<p>  @SuppressWarnings("unchecked")</p><p>  public List searchByName(String str1, String str2){</p><p>  String hql = "from Admin a where a.name like ? and a.department=?&q

112、uot;;</p><p>  if(str2 == null || str2.equals("") || str2.equals("0"))</p><p>  hql = "from Admin a where a.name like ?";</p><p>  return this.search(h

113、ql, str1, str2);</p><p><b>  }</b></p><p>  //按郵箱地址查找管理員</p><p>  @SuppressWarnings("unchecked")</p><p>  public List searchByEmail(String str1, S

114、tring str2){</p><p>  String hql = "from Admin a where a.email like ? and a.department=?";</p><p>  if(str2 == null || str2.equals("") || str2.equals("0"))</p>

115、;<p>  hql = "from Admin a where a.email like ?";</p><p>  return this.search(hql, str1, str2);</p><p><b>  }</b></p><p>  @SuppressWarnings("unche

116、cked")</p><p>  public List search(String hql, String str1, String str2){</p><p>  Session session = util.getSession();</p><p>  Query query = session.createQuery(hql);</p&g

117、t;<p>  query.setString(0, "%"+str1+"%");</p><p>  if(hql.split("[?]").length > 1)</p><p>  query.setInteger(1, Integer.valueOf(str2));</p><p&g

118、t;  return query.list();</p><p><b>  }</b></p><p><b>  }</b></p><p>  6.2.7 資產(chǎn)設(shè)置AssetDao.java</p><p><b>  @Service</b></p>&l

119、t;p>  public class AssetDao {</p><p>  @Resource private HibernateUtil util;</p><p><b>  //按id獲取資產(chǎn)</b></p><p>  public Assets get(Integer id){</p><p>  r

120、eturn (Assets)util.get(Assets.class, id);</p><p><b>  }</b></p><p><b>  //資產(chǎn)送修</b></p><p>  public void bsend(Integer id, Bsend bsend, Integer uid){</p>

121、;<p>  Assets asset = (Assets)util.get(Assets.class, id);</p><p>  bsend.setAssets(asset);</p><p>  bsend.setBsendperson(uid);</p><p>  bsend.setState(1);</p><p>

122、;  asset.setUsestate(3);</p><p>  util.update(asset);</p><p>  util.add(bsend);</p><p><b>  }</b></p><p><b>  //刪除一個(gè)資產(chǎn)</b></p><p> 

123、 public void delete(Integer id){</p><p>  util.delete(util.get(Assets.class, id));</p><p><b>  }</b></p><p><b>  //送修完畢</b></p><p>  @SuppressWa

124、rnings("unchecked")</p><p>  public void sxwb(Integer id){</p><p>  Session session = util.getSession();</p><p>  Assets asset = (Assets) util.get(Assets.class, id);</p

125、><p>  Query query = session.createQuery("from Bsend b where b.assets=?");</p><p>  query.setEntity(0, asset);</p><p>  List list = query.list();</p><p>  Bsend

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論