




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 蘭蘭 州州 隴隴 橋橋 學學 院院軟件開發(fā)工具軟件開發(fā)工具課程設計實驗報告課程設計實驗報告設計報告題目:設計報告題目: 學學 院、院、 系:系: 信息工程學院信息工程學院 專專 業(yè)業(yè) ( (方方 向向) ): 計算機科學與技術計算機科學與技術 年年 級、級、 班:班: 2003 級級 2 班班 學學 生生 姓姓 名:名: 指指 導導 教教 師:師: 2011 年 12 月 20 日1 摘摘 要要 j2ee 是一種全新概念的企業(yè)級應用程序模型,和傳統(tǒng)企業(yè)應用開發(fā)模型相比有不可比擬的優(yōu)勢。j2ee 體系結構提供中間層集成框架用來滿足高可用性、高可靠性以及可擴展性的應用的需求。通過提供統(tǒng)一的開發(fā)平
2、臺,j2ee 降低了開發(fā)多層應用的費用和復雜性,增強了安全機制,提高了性能。 本系統(tǒng)是基于輕量級 j2ee 的開發(fā)架構,采用 mvc 軟件設計模式。我們選擇輕量級框架 spring,它使應用程序不依賴于任何容器,減少開發(fā)的復雜度,提高開發(fā)的效率。表示層采用開放源代碼且較成熟的 struts。持久層框架使用較為流行的 orm 組件 hibernate。 本系統(tǒng)利用 internet 解決檔案的查詢效率低,查詢不方便,以及避免傳統(tǒng)的法院檔案管理的歸檔困難、檔案容易損壞等問題。關鍵詞 j2ee;mvc ;struts;hibernate;設計模式;設計模式 2 目目 錄錄一、系統(tǒng)所用技術簡介 .(1
3、)(一) spring 介紹.(1)(二) struts 介紹.(2)(三) mvc 介紹 .(3)(四) hibernate 介紹.(4)二、需求分析說明 .(4)(一) 開發(fā)背景.(5)(二) 目標.(5)(三) 功能性需求分析.(5)(四) 系統(tǒng)的界面需求.(11)(五) 軟件質量需求.(11)(六) 軟件環(huán)境需求.(11)三、數據庫分析與設計 .(11)(一) 數據庫環(huán)境說明.(11)(二) 數據庫邏輯設計.(12)(三) 數據庫物理設計.(12)(四) 數據庫連接池配置.(14)四、系統(tǒng)設計與實現(xiàn) .(15)(一) 系統(tǒng)結構.(15)(二) 系統(tǒng)的構架設計.(16)(三) 對象域模型
4、.(20)1、實體對象的實現(xiàn).(21)2、對象域模型的配置.(23)(四)系統(tǒng)持久層 dao 的實現(xiàn).(25)(五)系統(tǒng)業(yè)務層的實現(xiàn).(33)(六)用戶接口層.(34)1、登錄功能及權限驗證.(34)2、檔案管理及維護.(37)3、法醫(yī)鑒定檔案的管理.(42)4、當事人管理及維護.(45)5、用戶管理及維護.(48)(七)系統(tǒng)文件配置.(50)1、hibernate 配置.(50)2、spring 配置.(51)五、系統(tǒng)功能測試.(54)(一) 用戶登錄測試.(54)(二) 檔案管理測試.(55)(三) 當事人管理測試.(56)參考文獻.(59)1 基于輕量級基于輕量級 j2eej2ee 架構
5、的法院檔案架構的法院檔案 管理系統(tǒng)的設計與實現(xiàn)管理系統(tǒng)的設計與實現(xiàn)一、一、 系統(tǒng)所用技術簡介系統(tǒng)所用技術簡介 本系統(tǒng)是基于 j2ee 開發(fā)平臺,采用 mvc 軟件設計模式,表現(xiàn)層框架采用開放源代碼且較成熟的 struts ,業(yè)務層組件采用開放源代碼的輕量級容器 spring,持久層框架采用較為流行的 hibernate。spring,struts,hibernate 三者之間的關系如圖: 圖 1:struts,spring,hibernate 三者之間的關系(一)(一)spring 介紹介紹 spring 框架的核心思想可以用兩個字來描述,那就是解耦。應用程序的各個部分之間(包括代碼內部和代碼
6、與平臺之間)盡量形成一種松耦合的結構,使得應用程序有更多的靈活性。應用內部的解耦主要通過一種2稱為控制反轉(ioc)的技術來實現(xiàn)。控制反轉的基本思想就是本來由應用程序本身來主動控制的調用等邏輯轉變成由外部配置文件來被動控制。通常我們用一個所謂的好萊塢原則(dont call me. i will call you.)來比喻這種控制反轉的關系。由于控制反轉的概念相對比較廣泛,很多應用服務器實際上也實現(xiàn)了不同程度的控制反轉技術,只是這些應用服務器對應用程序的侵入性太強。因此 martin fowler 專門寫了一篇文章討論控制反轉這個概念,并提出一個描述更為準確的概念,叫依賴注入(dependen
7、cy injection)16。 spring 框架中的各個部分都充分使用了這種依賴注入的技術實現(xiàn),從而給應用以最大的靈活度。 spring 框架另外一個比較重要的技術是它對于面向切面的編程(aop)的支持。隨著應用復雜度的逐漸上升和對應用靈活性要求的提高,it 邏輯和業(yè)務邏輯盡量分離的呼聲也越來越高。aop 技術作為實現(xiàn)這種分離的一種比較好的途徑而越來越受到大家的重視。spring 提供的是一種動態(tài) aop 實現(xiàn),也即通過代理模式動態(tài)地在目標對象的方法前后插入相應的處理代碼。應用程序與底層應用服務器平臺的解耦也可以借助 aop技術來實現(xiàn)。spring 內置的 aop 支持是一種錦上添花的功能
8、。它使得一些本來必須由容器支持的功能,比如事務控制可以脫離開容器運行,從而達到瘦身的目的。這也是為什么 spring 框架常被人成為輕量級容器的一個原因。(二)(二)struts 介紹介紹 struts 框架是 apache 組織的一個開放源代碼的項目。為 web 應用提供一個通用的 mvc 架構,提供了對開發(fā) mvc 系統(tǒng)的底層支持.它使開發(fā)3人員把更多的時間放在如何解決實際問題上。struts 框架由四個主要部分組成,模型、視圖、控制器和 xml 文件。模型通常由 java bean 或 ejb組件實現(xiàn),負責處理業(yè)務邏輯;視圖包括一組 jsp 文件,這些文件主要由jsp 標簽或客戶化標簽構
9、成,它簡化了 jsp 頁面的編碼工作;在 struts 框架中控制器主要包括 action servlet 類和 action 類,action servlet 是 struts的核心部件,它接受用戶的 http 請求,根據配置信息將請求轉發(fā)給適當的action 對象,action 類負責調用模型的方法,并幫助控制應用程序的流程;struts 包括 web.xml 和 struts-config.xml 兩個配置文件,其中 web.xml 是web 應用的發(fā)布描述文件,struts-config.xml 是與 struts 相關的特殊信息配的描述文件。 圖 2 :struts 實現(xiàn)的 mvc
10、框架(三)(三)mvc 介紹介紹mvc 英文即 model-view-controller,即把一個應用的輸入、處理、輸出流程按照 model、view、controller 的方式進行分離,這樣一個應用被分成三個層模型層、視圖層、控制層。視圖(view)代表用戶交互界面, mvc 設計模式對于視圖的處理僅限于視圖上數據的采集和處理,以及用戶的請求,而不包括在視圖上的業(yè)務流程的處理。業(yè)務流程的處理交予模型(model)處理。4模型(model)就是業(yè)務流程/狀態(tài)的處理以及業(yè)務規(guī)則的制定。業(yè)務流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數據,并返回最終的處理結果。業(yè)務模型的設計可以說
11、是 mvc 最主要的核心。控制(controller)可以理解為從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求。控制層并不做任何的數據處理。模型、視圖、控制器這三個模塊各自的功能以及它們之間的相互關系如圖所示: 控制器接受用戶請求調用模型響應用戶請求選擇視圖顯示模型處理后的結果 視圖把用戶輸入數據傳給控制器顯示模型狀態(tài)響應模型狀態(tài)更新 模型封裝應用程序狀態(tài)響應狀態(tài)查詢處理業(yè)務流程 通知視圖更新狀態(tài)方法調用事件狀態(tài)查詢通知更新選擇視圖用戶請求響應請求圖 3:視圖
12、,控制,模型三者之間的關系(四)(四)hibernate 介紹介紹 orm 的全稱是 object-relational mapping,即“對象關系映射” 。orm 組件的主要功能是實現(xiàn)實體域對象的持久化并封裝數據訪問的細節(jié)。hibernate 是采用 orm 模式實現(xiàn)數據持久層的一個優(yōu)秀的 java 組件,它提供強大、高效的將 java 對象進行持久化操作的服務。利用 hibernate,開發(fā)5人員可以方便地按照 java 對象的結構進行持久層的開發(fā),并可以使用hibernate 所提供的 hql 完成 java 對象和關系型數據庫之間的轉換和操作。二、二、 需求分析說明需求分析說明(一)
13、(一)開發(fā)背景開發(fā)背景法院在其工作中日集月累產生了大量的檔案資料,而且檔案資料的數量還在不斷的增加之中。在日常的工作里,原始手工管理模式給檔案管理工作帶來了極大的不便,人員勞動強度大,檔案資料管理也困難。而且還有查詢效率低,勞動強度大、歸檔困難、容易損壞等缺點。(二)(二) 目標目標 本系統(tǒng)運用當今互聯(lián)網的便利性,主要解決查詢效率低,當頻繁查詢時,解決其勞動強度大的問題以及避免法院檔案管理的歸檔困難、檔案容易損壞等問題。(三)(三)功能性需求分析功能性需求分析該系統(tǒng)具有以下一些特征:1) 管理員和普通用戶能進行登錄2)能顯示檔案的信息,可進行檔案的查詢,增加和修改 3)能顯示用戶信息,可對用戶
14、信息進行添加和刪除 4)能顯示當事人信息,可對當事人進行添加和修改 業(yè)務模型和需求分析的目的是對系統(tǒng)進行評估,采集和分析系統(tǒng)的需求,理解系統(tǒng)要解決的問題,重點是充分考慮系統(tǒng)的實用性。結果可以用一個業(yè)務用例(business use case)框圖表達:6 圖 4:業(yè)務用例圖模型中的活動者代表外部與系統(tǒng)交互的單元,包括管理員和普通用戶。業(yè)務用例框圖是對系統(tǒng)需求的描述,表達了系統(tǒng)的功能和所提供的服務,包括添加檔案,修改檔案,查詢檔案,添加用戶,刪除用戶,查詢當事人,修改用戶信息。用例說明:用例說明: 表 1:登錄用例用例名登錄前置條件進入系統(tǒng)主頁成功狀態(tài)根據登錄角色進入相應界面失敗狀態(tài)返回到登錄界
15、面說明用戶進行登錄表 2:添加檔案用例用例名添加檔案前置條件管理員已登錄成功狀態(tài)提示檔案添加成功失敗狀態(tài)返回到添加檔案界面并提示操作不成功說明對錄入信息的格式進行合法驗證,保存添加檔案7 表 3:修改檔案用例用例名修改檔案前置條件管理員已登錄成功狀態(tài)提示修改成功并顯示修改后的信息失敗狀態(tài)返回到修改界面并提示修改錯誤說明對修改的信息進行合法驗證,更新檔案信息 表 4:查詢檔案用例用例名查詢檔案前置條件管理員或普通用戶已登錄成功狀態(tài)顯示查詢到的信息失敗狀態(tài)返回到查詢界面并提示查詢錯誤說明對錄入查詢的信息進行合法驗證,顯示查詢到的檔案信息 表 5:添加用戶用例用例名添加用戶前置條件管理員已登錄成功狀
16、態(tài)顯示添加用戶成功失敗狀態(tài)返回到添加界面并提示添加錯誤說明完成普通用戶的添加 表 6:刪除用戶用例用例名刪除用戶前置條件管理員已登錄成功狀態(tài)顯示刪除用戶成功失敗狀態(tài)返回并提示刪除錯誤說明完成對普通用戶的刪除 表 7:添加當事人用例用例名添加當事人前置條件管理員已登錄或進入添加檔案界面成功狀態(tài)顯示添加成功失敗狀態(tài)返回到添加界面并顯示添加錯誤說明對錄入的信息進行合法驗證,添加保存當事人信息 表 8:查詢當事人用例用例名查詢當事人前置條件用戶已登錄或進入顯示檔案界面成功狀態(tài)顯示當事人的詳細信息失敗狀態(tài)返回到查詢界面并顯示查詢錯誤說明對錄入的查詢信息進行合法驗證,顯示當事人信息 表 9:修改自己信息用
17、例8用例名修改自己信息前置條件用戶已登錄成功狀態(tài)顯示修改成功后的信息失敗狀態(tài)返回到修改界面并顯示修改錯誤說明對錄入的修改信息進行合法驗證,更新修改當事人信息 順序圖顯示對象之間的動態(tài)合作關系,它強調對象之間消息發(fā)送的順序,同時顯示對象之間的交互。 圖 5:管理員登錄及檔案管理序列圖9 圖 6:管理員對當事人管理序列圖 圖 7:普通用戶的操作序列圖狀態(tài)圖描述一個實體基于事件反應的動態(tài)行為,顯示了該實體如何根據當前所處的狀態(tài)對不同的時間做出反應的。狀態(tài)圖設計一般是在對操作序列的順序圖細化的基礎上表達。10 圖 8: 管理員維護檔案的狀態(tài)圖 圖 9 :管理員維護當事人信息狀態(tài)圖11 圖 10:普通用
18、戶狀態(tài)圖(四)(四)系統(tǒng)的界面需求系統(tǒng)的界面需求簡潔、易用、易懂,美觀、大方、標準,具備一定的兼容性。(五)(五)軟件質量需求軟件質量需求 易用、健壯、兼容性好、運行穩(wěn)定、有一定安全保障。(六)(六) 軟件環(huán)境需求軟件環(huán)境需求 兼容當前主流操作系統(tǒng) windows 95/98/nt/me/2000/xp,mysql 數據庫,spring、struts、hibernate 開發(fā)運行環(huán)境,proxool-0.8.3 java 數據庫連接池中間件,tomcat web 開發(fā)服務器。三、三、 數據庫分析與設計數據庫分析與設計(一)數據庫環(huán)境說明(一)數據庫環(huán)境說明 考慮該系統(tǒng)的定位與現(xiàn)有技術力量,決定
19、采用當前較流行的開放源代12碼的 mysql 數據庫作為系統(tǒng)的后臺數據庫開發(fā)環(huán)境,采用開放源代碼的java 數據庫連接池中間件 proxoolproxool 來連接 mysql 數據庫 。(二)(二)數據庫邏輯設計數據庫邏輯設計(三)(三)數據庫物理設計數據庫物理設計 說明:空缺位置表示無要求,主鍵在約束欄注明。基本表:用戶useruser字段類型長度約束id文本32主鍵password文本32name 文本10唯一非空role 文本10基本表:當事人peoplepeople字段類型長度約束id文本32主鍵pid文本32唯一非空name 文本10非空sex文本4非空birthday文本12非空
20、nation文本40非空race文本10非空用戶用戶用戶 id 密碼 用戶名 角色當事人當事人當事人 id,姓名性別,身份證出身年月國籍,民族政治面貌文化程度出身地,原籍戶籍所在地現(xiàn)址,電話職業(yè),身份特殊身份備注法醫(yī)檔案法醫(yī)檔案檔案類型,歸檔類型歸檔號,保密級案卷號,目錄號主辦人,鑒定單位鑒定法醫(yī),歸檔日期年齡,性別當事人,鑒定目的鑒定結果備注檔案檔案檔案 id,檔案類型歸檔類型,歸檔號保密級,案卷號目錄號,案由當事人,審判長審判員 1,審判員 2 書記員,主辦人收案日期,結案日期原審法院,保管日期 一審結果,二審結果再審結果,備注檔案檔案-當事人當事人當事人 id檔案 id 13politb
21、g文本10education文本10birthplace文本50bfplace文本50nowplace文本50liveplace文本50tel文本20occupation文本10positon文本10speposition文本10note文本100基本表:檔案doucument字段類型長度約束id文本32主鍵filekind文本10非空archkind文本10非空archno文本20非空唯一secretlevel文本6fileno文本20非空唯一dirno文本20非空唯一cause文本400client文本200非空chiefjustice文本10非空judge1文本10非空judge2文本1
22、0非空clerk文本10非空sponsor文本10非空closedate文本12enddate文本12formcourt文本20firstjudge文本200secjudge文本200thirdjudge文本200arhdate文本12bgqx文本10note文本100基本表:當事人_檔案peopledocument字段類型長度約束peopleid文本32主鍵documentid文本32主鍵14基本表:法醫(yī)檔案fydocument字段類型長度約束id文本32主鍵filekind文本10非空archkind文本10非空archno文本20非空唯一fileno文本20非空唯一dirno文本10非空
23、唯一purpose文本100sponsor文本20client文本20corporation文本20doctor文本20非空result文本200exandate文本12archdate 文本12age文本3sex 文本2note文本200(四)(四)數據庫連接池配置數據庫連接池配置 數據庫連接池:在訪問數據庫前需連接數據庫,而每次創(chuàng)建新的數據庫連接要消耗大量的資源,數據庫連接池技術就是為了解決資源消耗問題。它的原理是:在運行時,同時打開著一定數量的數據庫連接,形成數據連接池,當需要用到數據連接時,就從中取出一個連接,完成某些 sql 操作后,再把連接回收到連接池中,以供其它用戶(或進程)調用
24、。本系統(tǒng)采用開放源代碼的數據庫連接池中間件 proxool,其配制如下: dbpool jdbc:mysql:/localhost:3306/order1 org.gjt.mm.mysql.driver 15 90000 5 100 10四、 系統(tǒng)設計與實現(xiàn)系統(tǒng)設計與實現(xiàn)(一)(一)系統(tǒng)結構系統(tǒng)結構 圖 11:系統(tǒng)結構 功能說明:法醫(yī)檔案管理系統(tǒng)登錄法醫(yī)檔案管理當事人管理查詢所有檔案顯示當事人顯示所有檔案添加添加普通檔案管理查詢用戶管理所有用戶修改添加修改當事人信息16(1)普通檔案管理:可以根據檔案的一個或多個字段來查詢所需的檔案。在添加檔案信息的同時也可新打開一個添加當事人的頁面添加當事人
25、的信息。顯示所有檔案功能先顯示部分檔案信息,當需要查看其詳細信息時再顯示其詳細信息,在檔案的詳細信息中有當事人的鏈接,可查看當事人詳細信息。(2)法醫(yī)檔案管理:可以根據檔案的一個或多個字段來查詢所需的檔案。在添加檔案信息的同一頁面添加被鑒定人的信息。 顯示所有檔案功能先顯示部分檔案信息,當需要查看其詳細信息時再顯示其詳細信息。(3)用戶管理:管理員可查看所有的用戶,也可進行用戶的添加和刪除。(4)當事人管理: 普通用戶可查看當事人的詳細信息,但不能對其進行修改,管理員不但可查看還可以對其進行修改。(二)(二)系統(tǒng)的構架設計系統(tǒng)的構架設計 系統(tǒng)主要有如下 3 個包:1) 用戶接口包(表示層)用戶
26、接口包在其他包的頂層次,為系統(tǒng)用戶提供訪問信息和服務。其主要包括 jsp 和 actionform 等文件。17 系統(tǒng)所有 action 類都繼承 baseaction 類,在 baseaction 類中獲得系統(tǒng) spring 所配置的業(yè)務層 bean 對象的實例。 用戶登錄及處理的 actionform,action 類圖: 圖 12:用戶登錄及處理的 actionform,action 類圖 檔案的 actionform,action 類圖:18 圖 13:檔案的 actionform,action 類圖2) 業(yè)務邏輯包(業(yè)務層) 主要完成業(yè)務邏輯的處理工作,它既要調用持久層的方法來完 成
27、數據的持久化和查詢工作也要業(yè)務方法暴露給表示層,以便表示層的調用。 系統(tǒng)業(yè)務接口及其實現(xiàn)類圖如下:19 圖 14:系統(tǒng)業(yè)務接口及其實現(xiàn)類圖203) 數據持久 dao 包(持久層) 該包實現(xiàn)數據的持久化,也就是與數據庫交互,實現(xiàn)數據的存取、修改等操作。spring 的 hibernatedaosupport 基類提供了訪問與當前事務綁定的 session 對象的函數。所有 dao 類都繼承 hibernatedaosupport 這個基類。系統(tǒng) dao 封裝了各對象域模型進行持久化操作的各種方法,系統(tǒng)dao 接口及實現(xiàn)類圖如下: 圖 15:系統(tǒng) dao 接口及實現(xiàn)類圖21(三)對象域模型(三)對
28、象域模型 經過上面分析系統(tǒng)主要包括:管理員,用戶,普通檔案,法醫(yī)檔案,當事人五個實體。我們可把管理員和用戶看作一個實體-用戶 user。a) 用戶 包含管理員和普通用戶,管理員可進檔案的刪除,添加,查詢修改以及對普通用戶的刪除,添加等,普通用戶可對檔案進行查詢操作。 b) 普通檔案 提供刑事,訴訟等案情的一些詳細資料。c) 當事人提供案件的當事人的一些詳細資料。d) 法醫(yī)檔案提供法醫(yī)鑒定案件的一些詳細資料。1 1、實體對象的實現(xiàn)、實體對象的實現(xiàn) 用戶實體對象的具體實現(xiàn):package cn.fy.model;public class user private string id;private
29、 string name;private string password;private string role; /用戶的角色管理員或普通用戶public user()public string getid() return id;public string getrole() return role;public void setrole(string role) 22 this.role = role; 普通檔案對象實體的具體實現(xiàn):package cn.fy.model;import java.util.*;public class document private string id;
30、private string filekind;/檔案類型private string archkind;/歸檔類型private string archno; /歸檔號private string secretlevel;/保密級private string secjudge; /二審結果private string thirdjudge; /三審結果private string archdate; /歸檔日期private string bgqx ;private string note; /備注private set people=new hashset();/當事人public set
31、 getpeople() return people;public void setpeople(set people) this.people = people;public string getarchdate() return archdate; public string getthirdjudge() return thirdjudge;public void setthirdjudge(string thirdjudge) this.thirdjudge = thirdjudge;法醫(yī)鑒定檔案對象實體:package cn.fy.model;public class fydocum
32、ent private string id; private string filekind;/檔案類型private string archkind;/歸檔類型23private string archno; /歸檔號private string fileno; /案卷號private string note; /備注public string getage() return age;public void setage(string age) this.age = age;public void setsponsor(string sponsor) this.sponsor = spons
33、or;當事人對象實體:package cn.fy.model;import java.util.*;public class people private string id;private string pid;/身份證號private string name;/姓名private string sex;/性別private string birthday;/出身日期private string nation;/國籍private string race;/民族 private string note;private set document=new hashset();public set
34、 getdocument() return document;public void setdocument(set document) this.document = document;public string getbfplace() return bfplace; public void settel(string tel) this.tel = tel;242 2、對象域模型的配置對象域模型的配置實體對象映射文件的主要作用是描述這些 java 持久層對象以及它們的屬性和數據庫中的表以及表中字段之間的關系,這樣,hibernate 才能自動建立 java 對象與數據庫表中數據的關聯(lián)關系
35、,從而實現(xiàn)它們之間的相互轉換。映射文件的名稱一般于 java 對象的名稱相同,擴展名使用.hbm.xml,以便于和普通的 xml 文件進行區(qū)分。用戶實體對象的配置文件:檔案實體對象的配置文件: 25 法醫(yī)鑒定檔案實體的配置文件:當事人實體對象的配置文件: (四)系統(tǒng)持久層(四)系統(tǒng)持久層 daodao 的實現(xiàn)的實現(xiàn)26 建立自己的 dao 接口系統(tǒng)會有更好的靈活性,通過這種使用接口的編程方法,可以在方法調用者和方法的具體實現(xiàn)之間建立一個屏障,即它們不存在任何的關聯(lián),一邊的修改不會影響到另一邊的正確運行。 用戶 dao 接口 userdao 的定義:package cn.fy.dao;impor
36、t java.util.list;import cn.fy.model.user;public interface userdao public user getuser(string name);/根據實體對象的name得到相應的實體public list getalluser(string sql);/根據提供的sql得到所有的相應實體public user getuserbyid(string id);/獲得相應id的實體對象public void deleteuser(user user);/刪除用戶public void adduser(user user);/添加用戶public
37、void updateuser(user user);/更新用戶信息 用戶 dao 接口 userdao 的實現(xiàn): package cn.fy.dao;import java.sql.sqlexception;import java.util.list;import org.hibernate.*;import org.hibernate.hibernateexception;import org.springframework.orm.hibernate3.hibernatecallback;import org.springframework.orm.hibernate3.support.
38、hibernatedaosupport;import cn.fy.model.user;public class userdaoimpl extends hibernatedaosupport implements userdao public userdaoimpl()super(); /保存用戶public void adduser(user user) this.gethibernatetemplate().save(user);this.gethibernatetemplate().flush(); /刪除用戶public void deleteuser(user user) this
39、.gethibernatetemplate().delete(user);/this.gethibernatetemplate().flush(); /獲得所有用戶public list getalluser(string sql) 27/ todo 自動生成方法存根list user=this.gethibernatetemplate().find(sql);return user; /獲得相應姓名的用戶public user getuser( final string name) / todo 自動生成方法存根return (user)this.gethibernatetemplate()
40、.execute(new hibernatecallback()public object doinhibernate(session session)throws hibernateexception,sqlexceptionstring sql=from user u where = :name;query query=session.createquery(sql);query.setstring(name,name);return (user)query.uniqueresult();); public user getuserbyid(string id ,boolean
41、 lock) / todo 自動生成方法存根user user=null;if(lock) user=(user)this.gethibernatetemplate().get(user.class,id,lockmode.upgrade);else user=(user)this.gethibernatetemplate().get(user.class,id);return user;public void updateuser(user user) / todo 自動生成方法存根this.gethibernatetemplate().update(user);this.gethibern
42、atetemplate().flush(); 檔案 dao 的定義:public interface documentdao public void adddocument(document d);/添加檔案public void updatedocument(document d);/更新檔案public page getdocument(string sql,page page);/分頁顯示檔案 public document getdocumentbyid(string id);/獲得相應id的檔案public page getpridocument(page page);/獲得前一頁p
43、ublic page getnextdocument(page page);/獲得下一頁 檔案dao的實現(xiàn):public class documentdaoimpl extends hibernatedaosupport implements documentdao 28private page page; /用于分頁顯示的javabean public page getpage() return page; /設置當前頁public void setpage(page page) this.page = page; /添加檔案public void adddocument(document
44、d) / todo 自動生成方法存根this.gethibernatetemplate().save(d);this.gethibernatetemplate().flush();public page getdocument(string sql, page page) / todo 自動生成方法存根this.setpage(page);list docs=this.gethibernatetemplate().find(sql);page.setpage(docs);page.setsql(sql);list doc=this.getresult();page.setlist(doc);r
45、eturn this.page;public document getdocumentbyid(string id) / todo 自動生成方法存根document doc=(document)this.gethibernatetemplate().get(document.class,id);return doc; /獲得下一頁public page getnextdocument( page page) / todo 自動生成方法存根this.setpage(page);this.page.getnextpage();list doc=this.getresult();this.page.
46、setlist(doc);return this.page; /獲得上一頁public page getpridocument( page page) / todo 自動生成方法存根this.setpage(page);this.page.getpreviouspage();list doc=this.getresult();29this.page.setlist(doc);return this.page;public void updatedocument(document d) / todo 自動生成方法存根this.gethibernatetemplate().update(d);th
47、is.gethibernatetemplate().flush(); /獲得查詢結果public list getresult()return gethibernatetemplate().executefind(new hibernatecallback()public object doinhibernate(session session)throws hibernateexception,sqlexceptionquery query=session.createquery(page.getsql();query.setfirstresult(page.getpagestartrow(
48、);query.setmaxresults(page.getpagerecorders();listlist=query.list();return list;); 法醫(yī)鑒定檔案 dao 的定義:public interface fydocumentdao public page getfydocument(string sql,page page);/獲得查詢的法醫(yī)檔案public void updatefydocument(fydocument doc);/更新法醫(yī)檔案 public fydocument getdocbyid(string id); /獲得相應id的法醫(yī)檔案 public
49、 void savefydoc(fydocument doc); /保存法醫(yī)檔案 public page getnextfydoc(page page); /獲得下一頁public page getpreviousfydoc(page page);/獲得上一頁 法醫(yī)鑒定檔案 dao 的實現(xiàn):public class fydocumentdaoimpl extends hibernatedaosupport implementsfydocumentdao private page page; /用于分頁顯示的javabeanpublic page getpage() return page;pu
50、blic void setpage(page page) this.page = page;30public fydocument getdocbyid(string id) fydocument doc=(fydocument)this.gethibernatetemplate(). get(fydocument.class, id);return doc;public page getfydocument(string sql, page page) / todo 自動生成方法存根this.setpage(page);list people=this.gethibernatetemplat
51、e().find(sql);page.setpage(people);page.setsql(sql);list client=this.getresult();page.setlist(client);return this.page;public page getnextfydoc( page page) / todo 自動生成方法存根this.setpage(page);this.page.getnextpage();list client=this.getresult();this.page.setlist(client);return this.page;public page ge
52、tpreviousfydoc( page page) / todo 自動生成方法存根this.setpage(page);this.page.getpreviouspage();list client=this.getresult();this.page.setlist(client);return this.page;public void savefydoc(fydocument doc) / todo 自動生成方法存根this.gethibernatetemplate().save(doc);this.gethibernatetemplate().flush();public void
53、updatefydocument(fydocument doc) / todo 自動生成方法存根this.gethibernatetemplate().update(doc);this.gethibernatetemplate().flush();public list getresult()return gethibernatetemplate().executefind(new hibernatecallback()public object doinhibernate(session session)31throws hibernateexception,sqlexceptionquer
54、y query=session.createquery(page.getsql();query.setfirstresult(page.getpagestartrow();query.setmaxresults(page.getpagerecorders();listlist=query.list();return list;); 當事人 dao 的定義:public interface clientdao public people getclientbyid(string id);/得到相應id的當事人public page getclient(string sql,page page);
55、/獲得所查詢的當事人public page getnextclient(string sql,page page);/獲得前一頁public page getpreviousclient(string sql,page page);/下一頁public void addclient(people people);/添加保存當事人public people getclientbypid(string str);/得到相應身份證號的當事人public void updateclient(people people);/更新當事人信息 當事人dao的實現(xiàn):public class clientdao
56、impl extends hibernatedaosupport implements clientdao private page page;/用于分頁顯示的javabeanpublic page getpage() return page;public void setpage(page page) this.page = page; /添加/保存當事人public void addclient(people people) / todo 自動生成方法存根this.gethibernatetemplate().save(people);this.gethibernatetemplate()
57、.flush(); /獲得所查詢的當事人public page getclient(string sql,page page) / todo 自動生成方法存根this.setpage(page);list people=this.gethibernatetemplate().find(sql);page.setpage(people);page.setsql(sql);list client=this.getresult(sql);32page.setlist(client);return this.page;/返回查詢結果public list getresult(final string
58、sql)return gethibernatetemplate().executefind(new hibernatecallback()public object doinhibernate(session session)throws hibernateexception,sqlexceptionquery query=session.createquery(page.getsql();query.setfirstresult(page.getpagestartrow();query.setmaxresults(page.getpagerecorders();listlist=query.
59、list();return list;); /獲得相應id的當事人public people getclientbyid(string id) / todo 自動生成方法存根people people=(people)this.gethibernatetemplate().get(people.class,id);return people; /上一頁public page getpreviousclient(string sql, page page) / todo 自動生成方法存根this.setpage(page);this.page.getpreviouspage();list cli
60、ent=this.getresult(sql);this.page.setlist(client);return this.page; /下一頁public page getnextclient(string sql, page page) / todo 自動生成方法存根this.setpage(page);this.page.getnextpage();list client=this.getresult(sql);this.page.setlist(client);return this.page; /得到相應身份證號的當事人public people getclientbypid(fin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療資源共享構建可持續(xù)的醫(yī)療服務體系
- 醫(yī)療大數據下的醫(yī)療信息管理系統(tǒng)建設
- 醫(yī)療器機械生產過程中的風險管理
- 區(qū)塊鏈技術原理詳解構建現(xiàn)代數字信任的基石
- 醫(yī)療旅游與健康管理的結合實踐及發(fā)展趨勢分析
- 從醫(yī)療角度看區(qū)塊鏈技術的應用價值
- 行政部年中工作總結模版
- 借款合同范例補充合同
- 傳統(tǒng)新質生產力
- 糖原累積病的臨床護理
- (市質檢)莆田市2025屆高中畢業(yè)班第四次教學質量檢測試卷語文試卷(含答案解析)
- 瓷磚空鼓裝修合同協(xié)議
- 2025年四川筠連縣國有資本投資運營有限公司招聘筆試參考題庫含答案解析
- 中職生職業(yè)生涯課件
- 入團考試測試題及答案
- 2025年湘教版初中地理七年級下冊重點知識點梳理與歸納
- 勞務公司與公司合作協(xié)議書
- 滾筒式柑橘分選機的設計
- SimMarketing營銷模擬實驗室操作篇
- 金星星座查詢對照表
- HDPE塑料檢查井施工工藝
評論
0/150
提交評論