版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 畢業(yè)設計(論文)</b></p><p> 題 目: 資產管理系統(tǒng) </p><p> 年級專業(yè): <
2、/p><p> 學生姓名: </p><p> 學 號: </p><p> 指導教師: </p>
3、<p> 職 稱: 講師 </p><p> 論文完成時間: 2011 年 4 月 21 日</p><p><b> 摘要</b></p><p> 【摘要】現代企業(yè)管理越來越強調利用有形資產來提供優(yōu)質服務的能力,即
4、通過資產管理來確保有形資產物盡其用、安全運行,在希望的時間和地點提供需要的設備,同時盡可能地降低運行和維護成本。資產管理系統(tǒng)為企業(yè)提供全面、迅速的資產信息,方便管理者了解和操作企業(yè)內部的資產管理。</p><p> 本系統(tǒng)是基于B/S的多層Web應用,在windows 7操作系統(tǒng)下,本系統(tǒng)選擇了Myeclipse8.6開發(fā)環(huán)境、Mysql數據庫和JSP、Struts、Spring、Hibernate、AJAX技
5、術,利用MVC設計模式將業(yè)務邏輯和表示邏輯分離,在表示邏輯層利用JSP技術實現了頁面制作、利用AJAX實現無刷新技術,在業(yè)務邏輯層,利用Struts、Spring技術實現了系統(tǒng)設置、資產管理以及分類統(tǒng)計三個主要模塊的開發(fā),后臺使用Mysql進行數據庫的開發(fā),并利用Hibernate技術完成對數據庫的封裝映射,實現了數據查詢、修改、增加、刪除等功能。</p><p> 【關鍵詞】資產管理,JSP,SSH,MySQ
6、L,設計模式</p><p><b> 目錄</b></p><p> 畢業(yè)設計(論文)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ā)目標4</p><p> 第二章 系統(tǒng)概要設計5</p><p><b> 2.1系統(tǒng)分析5</b></p><p> 2.2系統(tǒng)的可行性分析5</p><p> 2.2.1技術可行性5</p><p> 2.2.2經濟
8、可行性5</p><p> 2.2.3管理可行性6</p><p> 2.2.4系統(tǒng)功能結構圖6</p><p> 第三章 開發(fā)環(huán)境的說明與安裝6</p><p> 3.1開發(fā)語言的選擇6</p><p> 3.2數據庫的選擇7</p><p> 3.3開發(fā)工具的選擇
9、8</p><p> 3.4系統(tǒng)所涉及的關鍵技術9</p><p> 第四章 系統(tǒng)設計11</p><p> 第五章 數據庫設計17</p><p> 5.1 資產管理系統(tǒng)數據庫表結構說明17</p><p> 第六章 主要編碼實現19</p><p> 6.1 公共類設
10、計19</p><p> 6.2 系統(tǒng)的實現21</p><p> 第七章 參考文獻30</p><p><b> 第八章 致謝30</b></p><p><b> 第一章 緒論</b></p><p><b> 1.1選題背景</b>
11、;</p><p> 隨著internet技術的不斷發(fā)展,應用軟件迅速普及,大到廠礦校企,小到圖書、餐</p><p> 飲行業(yè),無不應用了信息技術,實現了現代化管理。目前我國中小企業(yè)運用信息化等手段,開展現代化治理已經具備良好的基礎。但是發(fā)展不平衡,從企業(yè)規(guī)??矗笮推髽I(yè)的信息化水平遠遠高于小型企業(yè),尤其是采購、生產、庫存和銷售的信息化程度這四項指標尤為突出,中小企業(yè)的差距也最為明顯
12、,因此加快信息化建設,實現現代化管理是中小企業(yè)的必然選擇。</p><p> 企業(yè)資產管理的著眼點是幫助企業(yè)管理好有形資產,使之物盡其用,而且要使企業(yè)資產的投資回報最大化。原始的企業(yè)資產管理體制,采用人力管理浪費大量的時間、人力和物力,并且數據準確性低,數據匯總速度慢。企業(yè)資產管理之所以非常重要,是因為良好的資產管理能夠減少設備的故障率,縮短維修響應和維修工作時間,延長設備壽命,提高倉庫備件儲存水平的合理性,提
13、高采購的科學性。</p><p><b> 1.2問題的提出</b></p><p> 現代企業(yè)管理越來越強調利用有形資產來提供優(yōu)質服務的能力,即通過資產管理來確保有形資產物盡其用、安全運行,在希望的時間和地點提供需要的設備,同時盡可能地降低運行和維護成本。資產管理系統(tǒng)為企業(yè)提供全面、迅速的資產信息,方便管理者了解和操作企業(yè)內部的資產管理。</p>
14、<h3> 1.3系統(tǒng)的開發(fā)目標</h2><p> 開發(fā)資產管理系統(tǒng)目的在于解決企業(yè)資產管理過程中不必要的人力、物力的浪費,提高數據匯總速度,從而提高資產管理的合理性和科學性。</p><p> 資產管理系統(tǒng)具有三大功能:</p><p> 系統(tǒng)設置:可以對資產管理系統(tǒng)的管理員,用戶,部門,類別以及個人信息設置,即增刪、改、查的操作。</p
15、><p> 資產管理:企業(yè)的資產的增加,資產信息、使用人員及部門的修改,資產的送修,資產的刪除等管理操作。</p><p> 分類統(tǒng)計:按照指定的日期區(qū)間查找出指定的資產進行操作。</p><h2> 第二章 系統(tǒng)概要設計</h2><p><b> 2.1系統(tǒng)分析</b></p><p>
16、 為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運行,系統(tǒng)應該滿足以下的性能需求:</p><p> 1、 系統(tǒng)處理的準確性和及時性:系統(tǒng)處理的準確性和及時性是系統(tǒng)的必要性能。在系統(tǒng)設計和開發(fā)過程中,要充分考慮系統(tǒng)當前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應時間能夠滿足教師的操作以及和學生之間的快速交互的需求。</p><p> 2、 系統(tǒng)的開放性和系統(tǒng)的可擴充性:系統(tǒng)在開發(fā)過
17、程中,應該充分考慮以后的可擴充性。例如數據表中用戶選擇字段方式的改變,用戶查詢的需求也會不斷的更新和完善。所有這些,都要求系統(tǒng)提供足夠的手段進行功能的調整和擴充。而要實現這一點,應通過系統(tǒng)的開放性來完成,既系統(tǒng)應是一個開放系統(tǒng),只要符合一定的規(guī)范,可以簡單的加入和減少系統(tǒng)的模塊,配置系統(tǒng)的硬件。通過軟件的修補、替換完成系統(tǒng)的升級和更新換代。</p><p> 3、 系統(tǒng)的易用性和易維護性:要實現這一點,就要求系
18、統(tǒng)應該盡量使用用戶熟悉的術語和中文信息的界面;針對用戶可能出現的使用問題,要提供足夠的在線幫助,縮短用戶對系統(tǒng)熟悉的過程。</p><p> 4、 系統(tǒng)的數據要求:1.數據錄入和處理的準確性和實時性。2.數據的一致性與完整性。3.數據的共享與獨立性。4.對于系統(tǒng)中一些不予以公布的系統(tǒng),系統(tǒng)每個用戶有保密的權利。</p><h3> 2.2系統(tǒng)的可行性分析</h2><
19、;h4> 2.2.1技術可行性</h2><p> 運用Sun公司開發(fā)的J2EE體系結構,采用MVC三層架構的模式,在設計模式上,使用當前流行的SSH框架,采用Hibernate作為ORM框架,J2EE是一種利用Java 2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關的復雜問題的體系結構。J2EE技術的基礎就是核心Java平臺,J2EE不僅鞏固了標準版中的許多優(yōu)點,同時還提供了對 Java Servle
20、t API、JSP(Java Server Pages)以及XML技術的全面支持。</p><p> 開發(fā)過程中運用MyEclipse8.6開發(fā)工具,該開發(fā)工具是Eclipse的一個插件,Eclipse本身就是一個功能非常強大的開發(fā)工具,而MyEclipse在功能上與Tomcat進行了集成,并且能做到自動打包,并將包自動部署到服務器上。這從很大程度上提高了開發(fā)的效率,節(jié)約了開發(fā)的時間。</p>&
21、lt;h4> 2.2.2經濟可行性</h2><p> 系統(tǒng)在硬件和軟件方面需求都不是很大,數據庫目前采用mysql數據庫,在維護方面非常便捷,如果以后數據量很大的情況下,可以轉移為Oracle數據庫替代mysql,系統(tǒng)只需設置一個服務器,使用者通過IE瀏覽器登陸系統(tǒng),操作賦予自己的系統(tǒng)操作功能,總體上經濟不會超過5000元,所以說在經濟上本系統(tǒng)完全可行。</p><h4>
22、2.2.3管理可行性</h2><p> 本系統(tǒng)只有2個角色可以登錄進行操作:管理員與超級管理員。</p><p> 系統(tǒng)中有用戶這個角色,此角色不能登錄到系統(tǒng),僅僅作為資產擁有者而存在,用戶的信息由管理員錄入。</p><p> 管理員可以管理用戶、部門、類別、資產。</p><p> 超級管理員除了擁有管理員的權限外,還可以管理管
23、理員。</p><h4> 2.2.4系統(tǒng)功能結構圖</h2><h2> 第三章 開發(fā)環(huán)境的說明與安裝</h2><h3> 3.1開發(fā)語言的選擇</h2><p> Java是一種簡單的,面向對象的,分布式的,解釋型的,健壯安全的,結構中立的,可移植的,性能優(yōu)異、多線程的動態(tài)語言。</p><p> 1
24、、Java語言是簡單的。Java語言的語法與C語言和C++語言很接近,使得大多數程序員很容易學習和使用Java。另一方面,Java丟棄了C++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉換。特別地,Java語言不使用指針,并提供了自動的廢料收集,使得程序員不必為內存管理而擔憂。 2、Java語言是一個面向對象的。Java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持
25、接口之間的多繼承,并支持類與接口之間的實現機制(關鍵字為implements)。Java語言全面支持動態(tài)綁定,而C++ 語言只對虛函數使用動態(tài)綁定。總之,Java語言是一個純的面向對象程序設計語言?!?、Java語言是分布式的。Java語言支持Internet應用的開發(fā),在基本的Java應用編程接口中有一個網絡應用編程接口(java.net),它提供了用于網絡應用編程的類庫,包括URL、 URLConnection、Socket、 S
26、erverSocket等。Java的RMI(遠程方法激活)機制也是開發(fā)分布式應用的重要手段。 4、Java語言是健壯</p><p> 本系采用Java語言,結合當今比較主流的SSH(struts2、hibernate3、spring.5)框架、Ajax、jQuery、JavaScript、CSS、spring2.5注解、dwr等技術。開發(fā)語言采用JSP語言。</p><p><
27、b> 3.2數據庫的選擇</b></p><p> 本系統(tǒng)采用MySQL小型數據庫,如果以后系統(tǒng)數據量大以及需要大量維護,可以轉移到Oracle大型數據庫上。</p><p> MySQL是一個真正的多用戶、多線程SQL數據庫服務器。SQL(結構化查詢語言)是世界上最流行的和標準化的數據庫語言。MySQL是以一個客戶機/服務器結構的實現,它由一個服務器守護程序mys
28、qld和很多不同的客戶程序和庫組成。 SQL是一種標準化的語言,它使得存儲、更新和存取信息更容易。例如,你能用SQL語言為一個網站檢索產品信息及存儲顧客信息,同時MySQL也足夠快和靈活以允許你存儲記錄文件和圖像?! ySQL 主要目標是快速、健壯和易用。最初是因為我們需要這樣一個SQL服務器,它能處理與任何可不昂貴硬件平臺上提供數據庫的廠家在一個數量級上的大型數據庫,但速度更快,MySQL就開發(fā)出來。自1996年以來,我們一直
29、都在使用MySQL,其環(huán)境有超過 40 個數據庫,包含 10,000個表,其中500多個表超過7百萬行,這大約有100 個吉字節(jié)(GB)的關鍵應用數據。 MySQL建立的基礎是業(yè)已用在高要求的生產環(huán)境多年的一套實用例程。盡管MySQL仍在開發(fā)中,但它已經提供一個豐富和極其有用的功能集。</p><p> 接下來我將對兩個數據庫作簡單的比較:</p><p> 1、安全性:不管是My
30、SQL,還是MySQL,在外部網絡中,都受到相當大的威脅。相比而言,MySQL受到的威脅甚至要更大些,最近2年來,MySQL暴露出了多個遠程溢出漏洞。如果配置的比較好的話,我認為,Oracle要比MySQL安全一些,因為隨時會爆發(fā)的新溢出漏洞是防不勝防的,而且能夠執(zhí)行系統(tǒng)命令的sql注入攻擊也非常可怕。 2、易用性:毫無疑問,Oracle和MySQL的易用性比較差,入門的門檻高了點,特別是Oracle;MySQL相對比較容易,微軟
31、的東西不管性能怎么樣,易用性都做得不錯。 3、開發(fā)環(huán)境:Eclipse和Tomcat本身對數據庫都沒有什么要求,只要你有JDBC驅動,連接都差不多,穩(wěn)定性和性能也沒多大區(qū)別。從開發(fā)的角度來講,中小型項目Oracle和MySQL都是不錯的選擇。</p><h3> 3.3開發(fā)工具的選擇</h2><p> IDE工具:MyEclipse8.6</p><p>
32、; MyEclipse是在IBM開發(fā)的IDE工具Eclipse基礎上集合了一系列插件的代碼編寫工具,利用它我們可以在數據庫和J2EE的開發(fā)、發(fā)布,以及應用程序服務器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調試、測試和發(fā)布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。</p><p> 數據庫可視化
33、操作工具:SQLyog Enterprise</p><p> SQLyog是業(yè)界著名的Webyog公司出品的一款簡潔高效、功能強大的圖形化MySQL數據庫管理工具。使用SQLyog可以快速直觀地讓您從世界的任何角落通過網絡來維護遠端的MySQL數據庫。它具有易用的數據庫、數據表備份與還原功能,支持導入與導出XML、HTML、CSV等多種格式的數據,直接運行批量SQL腳本文件,速度極快等優(yōu)點。</p>
34、;<p> WEB容器:Tomcat6.0</p><p> Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,也是一個小型的輕量級應用服務器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調試JSP 程序的首選。對于一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache 服務器,可利用它響應對HTML 頁面的訪問請求。實際上Tomcat 部分是Apache
35、 服務器的擴展,但它是獨立運行的,所以當你運行tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。</p><h3> 3.4系統(tǒng)所涉及的關鍵技術</h2><p> MVC(Model-View-Controller,“模式-視圖-控制器”)模式的結構由以下三種部分組</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è)務邏輯模型和數據模型。模型接收視圖請求的數據,并返</p><p> 回最終的處理結果。這里只所以把模型層單獨抽取出來,是為了應對業(yè)務規(guī)則的變化,</p><p> 也是判斷開發(fā)人員是否優(yōu)秀的設計依據。MVC并沒有提供模型的設計方法,而只告</p><p> 訴開發(fā)人員應該組織管理這些模型
38、,以便于模型的重構和提高重用性。</p><p> 視圖層主要是用來展現用戶所需要的數據,它是用戶和系統(tǒng)進行交互的界面,</p><p> 可以采用HTML、XML、Servlet等技術。一般來說,視圖只接收來自模型的數據并顯</p><p> 示給用戶,以及將用戶界面的輸入數據和請求傳遞給控制和模型[6,7]。MVC設計模式對</p><
39、p> 于視圖的處理僅限于視圖上數據的采集和處理,以及用戶的請求,而不包括在視圖上業(yè)</p><p> 務流程的處理,業(yè)務流程的處理和狀態(tài)的改變則交給模型層處理。視圖部分的大致處理</p><p> 流程是:頁面模板定義頁面布局,頁面配置文件定義視圖標簽的具體內容,由頁面布局</p><p> 策略類初始化并加載頁面,每個用戶部件根據自己的配置進行初始化
40、,加載校驗器并設</p><p> 置參數,以及事件的委托等,用戶提交后,通過了表示層的校驗,用戶部件把數據自動</p><p> 提交給業(yè)務實體即模型。</p><p> 控制層就像一個中轉站,它從用戶那里接收請求,并根據用戶的請求,將模型與視</p><p> 圖匹配在一起,共同完成用戶的請求。在實現上,為了能夠控制和協(xié)調每個用戶
41、跨越多個請求的處理,控制機制應該以集中的方式進行管理[8]。用戶提交一個表單或者單擊一個鏈接,控制層接收請求后,它本身并不處理業(yè)務信息,而是根據用戶的請求類型,把用戶的信息傳遞給相對應的模型,告訴模型做什么,等模型處理完畢后,再把模型處理后的數據選擇符合要求的視圖返回給用戶。</p><p> 通過將模型、視圖和控制器分離,使得一個模型可以對應多個視圖,一個視圖可能</p><p>
42、對應多個模型。如果用戶通過某個視圖的控制改變了模型的數據,所有其他依賴于這些</p><p> 數據的視圖都反映到這些變化。因此,無論何時發(fā)生了何種數據變化,控制器都會將變</p><p> 化通知多有的視圖,導致顯示的更新。</p><p> Struts是一個MVC框架(Framework),能夠實現JavaWeb應用的快速開發(fā)。Struts實現的重點在C
43、(Controller),包括 ActionServlet/RequestProcessor和我們定制的Action,也為V(View)提供了一系列定制標簽 (CustomTag)。但Struts幾乎沒有涉及M(Model),所以Struts可以采用JAVA實現的任何形式的商業(yè)邏輯。Spring是一個輕型容器(light-weightcontainer),其核心是Bean工廠(BeanFactory),用以構造我們所需要 的M(Mode
44、l)。在此基礎之上,Spring提供了AOP(Aspect-OrientedProgramming,面向層面的編程)的實現,用它來提供非管理環(huán)境下申明方式的事務、安全等服務;對Bean工廠的擴展ApplicationContext更加方便我們實現J2EE的應用;WebMVC和SpringWeb提供了JavaWeb應用的框架或與其他流行的Web框架進行集成。就是說可將兩者一起使用,達到將兩者自身的特點進行互補。</p>&l
45、t;p> Hibernate是一個和JDBC密切關聯的框架,是JDBC的輕量級的對象封裝,所以Hibernate的兼容性和JDBC驅動,和數據庫都有一定的關系,但是和使用它的Java程序,和App Server沒有任何關系,也不存在兼容性問題。Hibernate是一個獨立的對象持久層框架,和App Server,和EJB沒有什么必然的聯系。Hibernate可以用在任何JDBC可以使用的場合,例如Java應用程序的數據庫訪問代碼
46、,DAO接口的實現類,甚至可以是BMP里面的訪問數據庫的代碼。從這個意義上來說,Hibernate和EB不是一個范疇的東西,也不存在非此即彼的關系。</p><p> 本系統(tǒng)的設計方案采用MVC設計模式下的Struts+Spring+Hibernate的架構。SSH架構是典型的J2EE三層結構,分為表現層、業(yè)務邏輯層和數據持久層。三層體系將業(yè)務規(guī)則、數據訪問及合法性校驗等工作放在中間層處理??蛻舳瞬恢苯优c數據庫
47、交互,而是通過組件與中間層建立連接,再由中間層與數據庫交互。具體架構如圖3.2所示:</p><p> Service locatorDAO</p><p><b> SSH架構圖</b></p><p><b> 第四章 系統(tǒng)設計</b></p><p><b> 4.1部分
48、序列圖</b></p><p><b> 登錄</b></p><p> 用戶在登陸界面輸入賬號、密碼,選擇角色登陸成功跳轉到主頁面(home.jsp)登錄則返回index.jsp頁面。</p><p><b> 個人設置</b></p><p> 管理員登錄成功之后可以修改個人
49、詳細信息以及密碼信息。頁面通過AJAX顯示服務器傳遞回來的信息。</p><p><b> 添加用戶</b></p><p> 管理員登錄成功之后可以添加用戶。用戶只是資產的擁有者,并不具有登錄系統(tǒng)的權限。</p><p><b> 修改用戶</b></p><p> 管理員登錄成功之后可以
50、對用戶詳細信息修改,如Email,聯系方式,部門等。</p><p><b> 部門添加</b></p><p> 管理員登錄成功之后添加部門。</p><p><b> 部門信息修改</b></p><p> 管理員登錄成功之后可以修改部門信息,如部門名,部門描述等。</p>
51、<p><b> 資產添加</b></p><p> 管理員登錄成功之后可以添加資產,管理員可以填寫資產編號,資產名,資產類別,生產日期,購買日期是否折舊等。系統(tǒng)根據管理員選擇的使用情況選項自動增加或刪除使用部門與使用人員兩項。</p><p><b> 資產查詢</b></p><p> 管理員登錄成
52、功之后可以查詢資產,查詢完畢之后可以對資產進行修改、刪除、送修操作,也可以點擊資產名查看資產的詳細信息。</p><p><b> 資產送修</b></p><p> 管理員登錄成功之后可以對需要送修的資產進行送修操作,管理員需要填寫送修日期,花費,送修人員等信息。</p><p><b> 資產修改</b><
53、/p><p> 管理員登錄成功之后可以修改資產的詳細信息以及使用人員。</p><p><b> 分類統(tǒng)計</b></p><p> 管理員登錄成功之后可以按照日期區(qū)間來查詢資產。</p><p><b> 第五章 數據庫設計</b></p><h4> 5.1 資產管
54、理系統(tǒng)數據庫表結構說明</h2><p> Assets(資產)</p><p> admin(管理員)</p><p> bsend(送修記錄)</p><p><b> User(用戶)</b></p><p> department(部門)</p><p>
55、<b> Type(類別)</b></p><h2> 第六章 主要編碼實現</h2><p><b> 6.1 公共類設計</b></p><p> 6.1.1 數據庫操作工具類 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> //添加一條數據</b></p><p> public void add(Object obj){</p><p> sessionFac
58、tory.getCurrentSession().save(obj);</p><p><b> }</b></p><p><b> //更新一條數據</b></p><p> public void update(Object obj){</p><p> sessionFactory.
59、getCurrentSession().update(obj);</p><p><b> }</b></p><p><b> //刪除多個數據</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> //根據ID獲取一條數據</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攔截器,驗證是否登錄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攔截器,驗證權限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)的實現</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> //設置登錄次數以及最后登錄時間</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 個人設置 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> //修改個人信息</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 部門設置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 類別設置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 用戶設置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 管理員設置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 資產設置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獲取資產</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> //資產送修</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> //刪除一個資產</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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 固定資產管理系統(tǒng)畢業(yè)論文
- 固定資產管理系統(tǒng)畢業(yè)論文
- 固定資產管理系統(tǒng)畢業(yè)論文
- 固定資產管理系統(tǒng)設計畢業(yè)論文
- 企業(yè)固定資產管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文范文——固定資產管理系統(tǒng)
- 公司資產管理研究畢業(yè)論文
- 畢業(yè)論文——畢業(yè)論文管理系統(tǒng)
- 畢業(yè)論文范文——高校固定資產管理系統(tǒng)
- 畢業(yè)論文——固定資產管理系統(tǒng)設計與實現
- 畢業(yè)論文范文——企業(yè)固定資產管理系統(tǒng)
- 畢業(yè)論文——畢業(yè)論文管理系統(tǒng) (2)
- 畢業(yè)論文——畢業(yè)論文管理系統(tǒng) (2)
- 畢業(yè)論文——畢業(yè)論文管理系統(tǒng) (2)
- 企業(yè)固定資產管理系統(tǒng)畢業(yè)論文(含外文翻譯)
- 畢業(yè)論文管理系統(tǒng)
- 畢業(yè)論文管理系統(tǒng)
- 足球俱樂部資產管理問題研究[畢業(yè)論文]
- 學生成績管理系統(tǒng)畢業(yè)論文畢業(yè)論文
- 畢業(yè)論文(設計)基于.net畢業(yè)論文管理系統(tǒng)
評論
0/150
提交評論