freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

hibernate在it服務(wù)管理項目中的應(yīng)用論文(編輯修改稿)

2025-01-12 10:20 本頁面
 

【文章內(nèi)容簡介】 JDBC,JDO或 EJB)。提供的服務(wù)應(yīng)完全抽象和從這個數(shù)據(jù)源使用和操縱 數(shù)據(jù)的物理細(xì)節(jié)。 畢業(yè)論文 第 4 頁 持久性框架提供下列服務(wù),讓開發(fā)人員在持久性框架之上建立應(yīng)用程序 : (1) 提供分開數(shù)據(jù)持久邏輯與表示和業(yè)務(wù)邏輯的整潔機制在上面的體系結(jié)構(gòu)框圖中,只有業(yè)務(wù)層可以訪問公司數(shù)據(jù)庫。業(yè)務(wù)層用 Data Access Object模式與公司數(shù)據(jù)庫交互,而不用 JDBC之類的數(shù)據(jù)訪問 APJ訪問數(shù)據(jù)源 ; (2) 不讓框架上建立的應(yīng)用程序了解數(shù)據(jù)所在的數(shù)據(jù)庫平臺將所有數(shù)據(jù)連接邏輯包裝到數(shù)據(jù)訪問對象中后,業(yè)務(wù)應(yīng)用程序的開發(fā)人員不需要知道連接的數(shù)據(jù)庫平臺類型,連接數(shù)據(jù)庫時所需的任何安全信息 (用戶 ID與口令 )或數(shù)據(jù) 庫網(wǎng)址 ; (3) 抽象數(shù)據(jù)庫中存儲數(shù)據(jù)的物理細(xì)節(jié)和數(shù)據(jù)庫中數(shù)據(jù)實體之間存在的關(guān)系建立在上述體系結(jié)構(gòu)布局之上的應(yīng)用程序不必直接對數(shù)據(jù)庫發(fā)出 SQL查詢,不必知道數(shù)據(jù)的物理結(jié)構(gòu),而用數(shù)值對象訪問數(shù)據(jù)庫 ; (4) 簡化開發(fā)過程,隱藏打開數(shù)據(jù)庫連接、發(fā)出數(shù)據(jù)讀取與操縱命令和事物管理的細(xì)節(jié) Data Access Object與 Value Object模式完全分離業(yè)務(wù)應(yīng)用程序的開發(fā)人員與其在應(yīng)用程序中使用的數(shù)據(jù)源,不需要知道數(shù)據(jù)訪問 API,而用簡單接口讀取與操縱數(shù)據(jù)。 O/R Mapping 技術(shù) 簡單地說 ,對象一關(guān)系映射就是 Java應(yīng)用中的對象到關(guān)系數(shù)據(jù)庫中表的自動的 (和透明的 )持久化,使用元數(shù)據(jù)對對象與數(shù)據(jù)庫間的映射進(jìn)行描述。本質(zhì)上, ORM的工作是將數(shù)據(jù)從一種表示 (雙向 )轉(zhuǎn)換為另一種。這意味著有一些性能損失。然而,如果 ORM是作為中間件實現(xiàn)的,就會有許多機會可以進(jìn)行優(yōu)化而在手工編碼的持久層中這些機會是不存在的。另外一項開銷 (在開發(fā)時 )是對控制轉(zhuǎn)換的元數(shù)據(jù)的準(zhǔn)備與管理。而且,這個成本低于維護(hù)一個手工編碼的解決方案所需的成本。相比之下,與 ODMG兼容的對象數(shù)據(jù)庫甚至需要大量類級別的元數(shù)據(jù)。 ORM解決方案由以 下四部分組成 : (1) 在持久類的對象上執(zhí)行基本的 CRUD操作的一組 API; (2) 用于指定查詢的一種語言或一組 API,這些查詢會引用類和類屬性 ; (3) 用于指定映射元數(shù)據(jù)的工具 ; (4) 實現(xiàn) ORM 的一項技術(shù),用來與事務(wù)對象交互以完成 數(shù)據(jù)檢查、延遲關(guān)系抓取及其它優(yōu)化功能。 ORM 這個術(shù)語包含所有可以根據(jù)元數(shù)據(jù)的描述自動生成 SQL 的持久層。不包含開發(fā)者通過編寫 SQL 和使用 JDBC 手工解決對象一關(guān)系映射問題的 畢業(yè)論文 第 5 頁 持久層。使用 ORM,應(yīng)用可以與 ORM API 和根據(jù)下層 SQL/JDBC 抽象出來的業(yè)務(wù)模型類進(jìn)行交互。 依賴于這些特征或特定的實現(xiàn), ORM 運行時也可能承擔(dān)例如樂觀鎖定、緩存等問題的職責(zé),完全免去了應(yīng)用對這些問題的關(guān)心。 一些著名的持久框架 對于 Java有許多持久化對象的方式。 表 21列出了一些著名的持久框架,并對這些框架進(jìn)行了比較。通過這些比較可以看出, Hibernate完全滿足 ORM的要求,現(xiàn)在已經(jīng)成為Java世界中比較流行的 ORM解決方案。 表 21 一些著名的持久框架 持久性框架 優(yōu)點 缺點 EJB 標(biāo)準(zhǔn)化,容器管理的服務(wù),透明持久性,事物支持,基于組件的設(shè)計 了解 EJB規(guī)范費時,需要花大 價錢購買 EJB容器,不支持多態(tài)的關(guān)聯(lián)和查詢,實體 Bean不可序列化 JDO 設(shè)計簡單,細(xì)粒度控制,編碼簡單 性能優(yōu)化上比較差 Hibernate Hibernate可以用 Java機制開發(fā)持久對象 包括關(guān)聯(lián)、繼承、組合和 Java集合框架。提供 HQL語言;透明持久性;復(fù)雜的 ORM;簡單但強大的 API;自動 PK生成; O/R Mapping定義;雙層cache架構(gòu);高性能; J2EE集成,對 JMX, JCA等技術(shù)的支持;詳細(xì)文檔;開源軟件的支持 ?? 等等特性 畢業(yè)論文 第 6 頁 O/R Mapping 框架技 術(shù) 概述 傳統(tǒng)的數(shù)據(jù)庫程序設(shè)計,必須直接在程序中硬編碼 SQL語句, JDBC統(tǒng)一 Java程序與數(shù)據(jù)庫之間的操作界面,讓程序設(shè)計人員可以不用關(guān)心與數(shù)據(jù)庫相關(guān)的 API操作。然而撰寫 SQL語句或自行封裝 SQL仍是不可避免或必要的目標(biāo),而在面向?qū)ο蟪绦蛟O(shè)計中,對象與對象之間的關(guān)系,在匹配到關(guān)系數(shù)據(jù)庫中表格與表格之間的關(guān)系,并無法進(jìn)行簡單的轉(zhuǎn)換以進(jìn)行匹配。 Hibernate是一個面向 Java環(huán)境的對象 /關(guān)系映射 (Object/relational Mapping)的解決方案,簡寫為 ORM。所謂的 ORM,簡單的 說就是將 Java中的對象與對象的關(guān)系,對應(yīng)到關(guān)系數(shù)據(jù)庫中的表格與表格之間的關(guān)系, Hibernate提供了這個過程中自動化對應(yīng)轉(zhuǎn)換的方案,相反的,也提供關(guān)系數(shù)據(jù)庫中表格與表格之間的關(guān)系,對應(yīng)到 Java程序中對象與對象的關(guān)系。 Hibernate在 Java程序與數(shù)據(jù)庫之間進(jìn)行轉(zhuǎn)換, Java程序設(shè)計人員只要事先定義好對象與數(shù)據(jù)庫表格之間的對應(yīng),之后 Java程序設(shè)計人員可以用所熟悉的面向?qū)ο蠓椒ㄗ珜懗绦颍挥锰囟ㄞD(zhuǎn)換 SQL,所有 SQL的轉(zhuǎn)換交給 Hibernate進(jìn)行處理。 Hibernate 的體系結(jié)構(gòu) 圖 31是 Hibernate總的體系結(jié)構(gòu)圖,這幅圖展示了 Hibernate使用數(shù)據(jù)庫和配置文件數(shù)據(jù)來為應(yīng)用程序提供持久化服務(wù)。 圖 31 Hibernate總的體系結(jié)構(gòu)圖 畢業(yè)論文 第 7 頁 Hibernate 的類型 在 Java中,所有的類都是等同的 :所有的對象有它們自己的標(biāo)識符和生命周期,所有的類實例通過引用來傳遞。只有原始類型通過值來傳遞。為了理解很多與持久化服務(wù)相關(guān)的 Java語言級對象的行為,需要把它們分為兩類 : (1) 實體 entity獨立于任何持有實體引用的對象。與通常的 Java模型相比,不再被引用的對象會被 當(dāng)作垃圾收集掉。實體必須被顯式的保存和刪除 (除非保存和刪除是從父實體向子實體引發(fā)的級聯(lián) ); (2) 值是原始類型、集合、組件或者特定的不可變對象。與實體不同,值 (特別是集合和組件 )是通過可觸及性來進(jìn)行持久化和刪除的。因為值對象 (和原始類型數(shù)據(jù) )是隨著包含它們的實體而被持久化和刪除的,它們不能夠被獨立的加上版本信息。值沒有獨立的標(biāo)識,所以它們不能被兩個實體或者集合共享。 在數(shù)據(jù)關(guān)聯(lián)中還要涉及一個很重要的概念 : 持久化集合類。 集合可以包含幾乎所有的其它 Hibernate類型,包括所有的基本類型,自定義類型,實體 類型和組件。除了 Set和 Bag之外的所有集合類型都有一個索引 (index)字段,這個字段映射到一個數(shù)組或者 List的索引或者 Map的 key。 Map的索引的類型可以是任何基本類型,實體類型或者甚至是一個組合類型 (但不能是一個集合類型 )。數(shù)組和 list的索引肯定是整型。 操作持久化數(shù)據(jù) 持久化生命周期 由于 Hibernate是透明的持久化機制一類不能意識到它們自己的持久能力一編寫應(yīng)用邏輯時不用意識到你所操縱的對象是持久狀態(tài)還是存在于內(nèi)存中的臨時狀態(tài)。對于持久化生命周期,不同的 ORM實現(xiàn)使用不 同的術(shù)語,定義不同的狀態(tài)及狀態(tài)轉(zhuǎn)換 .此外,內(nèi)部使用的對象狀態(tài)可能與其暴露給客戶端應(yīng)用的狀態(tài)不同。 Hibernate僅僅定義了三種狀態(tài) :瞬時、持久和分離,對客戶端代碼隱藏了其內(nèi)部實現(xiàn)的復(fù)雜性。 畢業(yè)論文 第 8 頁 圖 32 Hibernate狀態(tài)轉(zhuǎn)換圖 持久管理器 任何透明的持久管理器都含有持久管理器 API,通常提供下列服務(wù) : (1) 基本的 CURD操作 ; (2) 執(zhí)行查詢 ; (3) 控制事務(wù) ; (4) 事務(wù)級的緩存管理。 持久管理器可以暴露給幾個不同的接口 (就 Hibernate來說, Session、 QueryCriteria和Transaction)。這些接口的內(nèi)部實現(xiàn)連接的很緊密。應(yīng)用程序與 Hibernate之間的核心接口是 Session,它是剛剛列出的所有操作的起點。應(yīng)用程序如果訪問多個數(shù)據(jù)源可能含有多個 SessionFactory, 但是僅僅為了服務(wù)于某個請求你不要創(chuàng)建一個新的 SessionFactory,因為 創(chuàng)建 SessionFactory需要耗費大量的資源。另一方面,創(chuàng)建 Session耗費的資源卻很少。Session甚至只有需要連接時才獲得 JDBC連接。打開新的 Session之后,就可以用它裝載和保存對象 了。 Hibernate 查詢語言( HQL) Hibernate查詢語言是一種功能非常強大的查詢語言,看上去很像 SQL。但是不要被語法所蒙蔽, HQL是完全面向?qū)ο蟮模哂欣^承、多態(tài)和關(guān)聯(lián)等特性。 HQL不是像 SQL 畢業(yè)論文 第 9 頁 這樣的數(shù)據(jù)操縱語言,它只能用來檢索對象,不能更新、插入或刪除數(shù)據(jù)。 HQL子句本身大小寫無關(guān),但是其中出現(xiàn)的類名和屬性名必須注意大小寫區(qū)分。 HQL功能非常強大,雖然你不會一直使用其高級特征,但是你將會需要它們來解決一些復(fù)雜問題。 HQL支持下面這些功能 : (1) 排列查詢結(jié)果的能力 ; (2) 分 頁查詢的能力 ; (3) 使用 group, having及統(tǒng)計函數(shù) (如 sum, min和 max)進(jìn)行統(tǒng)計 ; (4) 當(dāng)在一行中檢索多個對象時使用外聯(lián)接 ; (5) 調(diào)用用戶自定義的 SQL函數(shù)的能力 ; (6) 子查詢 (嵌套查詢 )。 開發(fā)流程 好的 ORM軟件集成一系列工具, Hibernate也是如此。通過 Hibernate項目中提供的幾個命令行工具 (他們也被當(dāng)作項目的一部分不斷得到維護(hù) ),還有 XDoclet,Middlegen和AndroMDA內(nèi)置的對 Hibernate的支持,可以自動產(chǎn)生映射元數(shù)據(jù)、 SQL數(shù)據(jù)庫 schema甚至 Java POJO代碼。 在我們著眼于與 Hibernate一起使用的某個工具之前,讓我們簡單看看主要的開發(fā)場景及最適合每個場景的工具。 圖 33 Hibernate開發(fā)場景和工具 畢業(yè)論文 第 10 頁 服務(wù)管理 系統(tǒng) 分析 ITSM 簡介 ITIL四大價值 Gartner認(rèn)為, IT服務(wù)管理是一套協(xié)同流程 ( Process) ,它通過服務(wù)級別協(xié)議( SLA)來保證 IT服務(wù)的質(zhì)量。它融合了系統(tǒng)管理、網(wǎng)絡(luò)管理、系統(tǒng)開發(fā)管理等管理活動和變更管理、資產(chǎn)管理、問題管理等許多流程的理論和實踐。 圖 41 IT服 務(wù)的組織架構(gòu) IT服務(wù)管理作為一種以流程為導(dǎo)向、以客戶為中心的方法,通過整合 IT服務(wù)與組織業(yè)務(wù),提高了組織提供 IT服務(wù)和對 IT服務(wù)進(jìn)行支持的能力和水準(zhǔn)。 圖 42 ITSM的基本原理 畢業(yè)論文 第 11 頁 應(yīng)用框架及架構(gòu)設(shè)計 根據(jù)架構(gòu)設(shè)計的總體目標(biāo)要求,下面我們進(jìn)行集成 Spring, Hibernate, Struts的 J2EE架構(gòu)的具體設(shè)計。為了集成三種框架,必須明確架構(gòu)的層次結(jié)構(gòu),同時明確每一個層次的職責(zé),各層次的功能不能相混合。每層都應(yīng)該和其它層隔離開來,但允許使用接口在層之間進(jìn)行通信。根據(jù)分層原則,我們把層次 分成 :表現(xiàn)層、持久層、業(yè)務(wù)層和領(lǐng)域模型層。表現(xiàn)層使用 Struts,業(yè)務(wù)層使用 Spring,持久層使用 Hibernate。 表現(xiàn)層 一個典型的 Web應(yīng)用的末端是表現(xiàn)層,我們使用 Struts作為表現(xiàn)層框架。 Struts框架應(yīng)該提供的職責(zé) : 1. 管理用戶的請求和響應(yīng); 2. 提供一個控制器將調(diào)用委托到業(yè)務(wù)邏輯和其他上游處理; 3. 將來自于拋出例外的其他層的例外處理到 StrutsAction中; 4. 組裝可以在視圖中表現(xiàn)的模型對象; 5. 執(zhí)行 UI校驗。 該層主要組件 (Struts)說明: ? Struts Action表示 Action類,它的功能是將請求與業(yè)務(wù)邏輯分開; ? ActionServlet繼承于 ,它在 Struts框架中扮演的角色是中心控制器; ? ActionForm 負(fù)責(zé)保持一個應(yīng)用系統(tǒng)的消息轉(zhuǎn)移 (或者說狀態(tài)轉(zhuǎn)移 )的非持久性數(shù)據(jù)存儲; ? ActionMapping包含有關(guān)特定事件如何映射到特定 Action的信息; ? JSP表示呈現(xiàn)給用戶的 JSP頁面。 業(yè)務(wù)層 典型的 Web應(yīng)用的中間組件一般是業(yè)務(wù)層和服務(wù)層。從編程的角度來說, service layer經(jīng)常被忽略。我們使用 Spring作為業(yè)務(wù)層框架,它提供的職責(zé)有 : 1. 處理應(yīng)用的業(yè)務(wù)邏輯
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1