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

正文內容

畢業(yè)論文基于javaeeweb應用系統(tǒng)的解決方案-資料下載頁

2024-11-08 19:27本頁面

【導讀】J2EE平臺的成熟,為Web應用程序更進一步的發(fā)展提供了更廣闊的空間。上使用最為廣泛的應用開發(fā)技術。作者結合了現有的Web框架技術,Struts、Spring和iBATIS框架,與自己在。介紹了整個框架的設計、各種技術的選擇與優(yōu)劣性,還給出了當前JavaEE開發(fā)中,并在適當的地方引入在開發(fā)過程。中作者的總結與最佳實踐。成,提出基于JavaEE多層框架解決方案。以可伸縮性、透明性、高可用性和擴展。性作為前提,從編程角度而言,對JavaEE編程中常見的問題進行了改善。本文首先從當前JavaEE編程中,常常困擾廣大開發(fā)人員的問題展開分析。層,持久層,數據訪問層三個層次討論了該方案的具體設計與實現。紹了該方案中,各層的具體設計與實現。

  

【正文】 heck b) 調用 ***()實現相關 check c) 調用 prepareExecute()處理業(yè)務中需要處理的邏輯 d) 調用自己的另一個被重載的 ()實現整合性 check e) 調用 execoute()實現真正的邏輯,進行頁面轉向的 控制 f) 在業(yè)務邏輯執(zhí)行完畢后,調用 postExecute() 第四章 數據訪問層 構建應用程序中,我們必須要解決的問題是,如何得到應用程序所需要的數據。除了命令行方式傳入的簡單數據,絕大部分應用程序都需要通過某種數據存儲方式對數據持久化 [10]。而現在最常用和最方便的數據存儲方式是把數據存儲到關系型數據庫中。 即使選擇了最快和最可靠的數據庫,我們也有可能因為低劣的數據庫訪問層設計和實現而失去數據庫提供的速度和靈活性優(yōu)勢。因為應用程序頻繁地使用數據庫訪問層,所以無論它的設計是多么的優(yōu)秀,在數據訪問層出現的任何 不必要瓶頸都會對整個應用程序造成影響 [10]。在本章節(jié)中,主要展示 Spring 簡化 JDBC編寫的數據訪問代碼。首先我們看一下,沒有使用 Spring 時, JDBC代碼存在的問題。而以通過使用 Spring,我們僅僅需要編寫少量的代碼就可以充分發(fā)揮與手工編寫的 SQL等同的威力。在本章中,將對下面這些問題進行詳細的討論。 傳統(tǒng) JDBC 代碼的問題 實踐中的數據訪問技術 Data Access Layer 設計方案 JDBC 代碼的問題 JDBC 是 Java應用程序訪問數據庫的標準解決方案(途徑)。 JDBC 底層的 結構的核心設計是為不同的數據庫提供不同的驅動程序;這些驅動程序運行 JAVA代碼訪問這個數據庫。 從 Java 開發(fā)就已經加入了 JDBC API, 用于以基于 SQL 的方式訪問關系型數據庫 , 這種做法對于如今的很多應用程序仍舊適用。 JDBC 能夠以很高的性能執(zhí)行基于數據集的操作,這種時候 SQL 非常強大而且易用。 JDBC 的目標不是要給關系型數據提供一個面向對象的視圖,也不會犧牲目標數據庫專有的強大功能。 可惜的是, JDBC 是一個低級的 API,直接使用它會相當麻煩 [3]: ? 開發(fā)者需要處理大量復雜的任務和基礎結構, 例如必須用大量容易出錯的try/catch/finally/try/catch 代碼塊來確保資源和異常得到很好的處理。 ? 應用程序需要復雜的錯誤處理以確定連接在使用后被正確關閉,這樣以來使得代碼變得冗長,膨脹,并且重復。 ? JDBC 中使用了極不明確性的 SQLException 異常。 ? JDBC 沒有引入具體的異常子類層次機制。 相應于任何一種錯誤,都只是拋出 SQLException 異常 無論它來源于 JDBC驅動程序還是來源于數據庫,這使得程序員很難理解到底是哪里實際出現了錯誤。例如,如果 SQL 對象是無效的或已經被鎖定 ,那么將拋出一個 SQLException異常。調試這樣的異常需要一定的時間來檢查 SQL狀態(tài)值和錯誤代碼。更有甚者,SQL狀態(tài)值和錯誤代碼的含義在各種數據庫之間都有些差別。 更讓大多數開發(fā)人員頭疼的是,編寫 JDBC 代碼并不是一項容易的工作 ——存在大量的重復性的工作。在大多數 Java項目中,大部分代碼都是樣板代碼。異常處理就屬于此類代碼。即使業(yè)務邏輯只有 3到 4行代碼,用于異常處理的代碼也要占 10 到 20 行。 在 JDBC 的發(fā)展歷程中 ,有一件事從來沒有改變過 :使用 JDBC API 是一件煩人的事,直接使用 JDBC API來執(zhí)行哪怕一條簡單的更新語句,也需要寫上半頁代碼才能保證資源管理和異常處理的正確性; JDBC 框架非常復雜和難于測試;而這些復雜性為開發(fā)制造了很多困難。第一層復雜性是代碼是否能有效地管理數據庫連接。每一個數據庫連接都是很緊缺的資源,并且建立到數據庫的連接需要不小的系統(tǒng)開銷。通常,數據庫為每一個連接創(chuàng)建一個線程或者子進程。此外,同時連接到數據庫的連接數通常是受限的。打開過量的數據庫連接會大大減慢數據庫的執(zhí)行效率和反應速度。 實踐中的數據訪問技術 當前的 ORM架構有兩種基礎類型。第一種允許我們完全控 制 SQL 語句( SQL statement),而我們必須保證這些 SQL 語句選擇了正確的表字段。第二種屬于ORM工具類型,這類工具的 SQL 語句由 ORM架構自動生成 [10]。在這種架構下,因你我們僅僅需要完成映射文件,而由 ORM 架構來負責數據庫運行和正確地處理這些結果。 Hibernate 簡介 ? 什么是 Hibernate Hibernate 是一個對象關系映射和持久性框架,它屬于第二種 ORM 工具類型。 Hibernate 同樣允許我們指定查詢時使用的 SQL 方言( dialect)。這樣的結果是: Hibernate 可以為我們正在使用的特定數據庫定制生成適合這個數據庫的查詢語句。 SQL方言將對連接( joins)、 limit/top 子句及許多其它數據庫特定 SQL特性進行管理。 Hibernate 提供了許多高級特性,從內省到多態(tài)和繼承映射。最有用的特性之一是允許你定義自己的持久化枚舉值類型(繼承指定接口的 Java 類)這將幫助我們實現對象規(guī)范化( object canonicalization) , 這些規(guī)范將給我們的應用相當大的性能提升。 ? 概述 Hibernate 是一個純 Java 的對象關系映射和持久性框架,它允許 您用 XML 配置文件把普通 Java 對象映射到關系數據庫表。使用 Hibernate 能夠節(jié)約大量項目開發(fā)時間,因為整個 JDBC 層都由這個框架管理。這意味著我們把應用程序的數據訪問層位于 Hibernate 之上,完全是從底層數據模型中抽象出來的。 比起其他類似的對象關系映射技術( JDO、實體 bean、內部開發(fā)等),Hibernate 有許多優(yōu)勢:它是免費的、開源的,已經成熟到良好的程度,并得到廣泛應用,而且還有一個非?;钴S的社區(qū)論壇。 要把 Hibernate 集成到現有的 Java 項目, 則需要執(zhí)行以下步驟: 1. 從 Hibernate 的 Web 站點下載 Hibernate 框架的最新發(fā)行版 2. 把必需的 Hibernate 庫( JAR 文件)復制到應用程序的 CLASSPATH。 3. 創(chuàng)建 XML 配置文件,用它把 Java 對象映射到數據庫表。 4. 把 XML 配置文件復制到應用程序的 CLASSPATH。 ? Hibernate 查詢語言( HQL) Hibernate 提供了一個查詢語言,叫作 Hibernate 查詢語言( HQL),它與 SQL 很相似。 HQL 用起來相當簡單。所有的關鍵字都與 SQL 中的關鍵字類似,例如 SELECT、 FROM 和 WHERE。 HQL 與 SQL 的差異在于,我們不用針對數據模型(即針對表和列等)直接編寫查詢,而是應該針對 Java 對象,使用 Java 對象的屬性和關系編寫查詢。 HQL 還是一個面向對象的語言,因為它提供了對多態(tài)的支持。 HQL 語言最困難的部分是我們必須習慣使用類(在映射文件中定義了映射關系的類)來選擇數據。我們必須寫 select t from Test as t 來從 Test 表中選擇所有行,而不是select * from Test。在這時候 , Test 代表的適合 Test 業(yè)務域對象。而不是Test 表。 ? XML 配置文件 功能的核心在于 XML 配置文件。這些文件必須存在于應用程序的 CLASSPATH 中。我們要研究的第一個文件是 。它包含與數據源有關的信息(數據庫 URL、模式名稱、用戶名、口令等),以及對包含映射信息的其他配置文件的引用。 其余的 XML 文件允許您把 Java 類映射到數據庫表。稍后我再深入介紹這些文件,但重要的是要清楚它們的文件名要遵守 這個模式。 ? 為什么選擇 Hibernate 使用 Hibernate就如同使用其它任何一個 RAD工具一樣簡單。在實際應用中,我們可以通過簡單的編程實現相關功能。無論如何,如果我們想要完全控制應用的數據訪問層,會發(fā)現 Hibernate 簡單也非常慢。這并不是框架本身的錯誤,它僅僅是因為,有時候,根據映射文件來查詢并構建對象雖然簡單,但是非常復雜?;蛟S Hibernate 最差的地方不允許用戶輕松控制如何查詢數據,并且有一些查詢的效率非常低下。特別是在進行 1: N和 M: N查詢的時候,查詢更加復雜 [10]。如果不想寫臟亂的 JDBC代碼,想對對象創(chuàng)建和 SQL 代碼施加更多的控制,可以考慮使用 iBATIS。 iBATIS 簡介 iBATIS 代表了本節(jié)引言介紹的第二種 ORM 工具。它允許開發(fā)者自定義 SQL來組配 bean 的屬性值。 iBATIS允許我們使用數據庫對標準的 SQL語法進行擴展。另外 , iBATIS 使用 XML映射文件,我們可以為不同的數據庫分別配置相應的映射文件。這與使用存儲過程所能獲得的抽象層次類似 [11]。 ? 概述 iBATIS 在 SQL 層面上進行持久化操作,但將使用 JDBC 的細節(jié)全部抽象隔離開來,這就是 iBATIS SQL 映射。 iBATIS 的創(chuàng)意非常簡單: SQL 語句在 XML文件中定義,并預留參數占位符(可以指定參數的 SQL類型和其他細節(jié))。在執(zhí)行時,占位符將被指定的參數值所取代,參數可能來自參數映射表, JavaBean 屬性或是簡單的參數對象。在執(zhí)行 SQL 查詢時,結果字段將初映射到對象,映射的方式與參數映射是一樣的。 除了直接的語句映射之外, SQL映射還可以緩存查詢結果,緩存策略也是可接插的。 iBATIS 提供了幾種現成的緩存實現,包括默認的內存緩存和使用OpenSymphony OSCache 的緩存策略。緩存模型是針對每 個查詢語句分別指定的。并且可以指定哪些插入 /更新 /刪除語免應該導致刷新特定緩存(比如說,如果執(zhí)行了 update 語句,就應該刷新緩存)。但 iBATIS 不允許將特定的對象實例清除出緩存,也就是說,即使只有一個對象被更新,也必須將所有的實例清出緩存。 ? 基本架構和配置 在 iBATIS 的配置和映射文件中,一個中央 XML 文件包含了對那些定義了Java beans 和所有數據庫操作的映射文件的引用。當在 Spring 中創(chuàng)建一個iBATIS bean 實例時,我們可以指定這個參考配置文件的位置。這個映射文件通常代表一個域對象 和合適的 SQL 代碼用來持久化該對象的數據到數據庫。所有的映射文件都是啟動時加載進來的。并且所有映射都針對實際的對象做了校驗。如果一個屬性不存在于一個對象上,這個 bean 的創(chuàng)建就失敗。 不像單獨的 iBATIS應用,在 Spring唯一要配置的就是參考文件和映射文件。Spring 的 iBATIS 工廠 bean()負責加載所有的配置文件。下圖為映射文件結構的概覽 [12]。 圖 ? 為什么選擇 iBATIS 與高級透明持久化相比, SQL層面上的映射有以下優(yōu)點: 保持了 SQL的全部能力,可以完全掌握相關語句的一切細節(jié)。 可以使用基于數據集的更新的刪除高效地處理多行數據。 可以毫無限制在使用統(tǒng)計函數(例如 avg, sum,max 和 count 等)。 可以很輕松地將領域對象映射到多張表的字段,可以使用任何粒度的映射。然而,應用程序中的數據訪問代碼仍然需要做這些事: 顯式更新被修改的對象,跟蹤可能發(fā)生的修改,并管理對象之間的關聯。 將應用層面的值轉換成數據庫兼容的值,比如說 boolean 和日期都需要轉換。 完善的透明持久化工具(如 Hibernate)都允許在一個更方便的層面上管理持久對象,也允許更為復雜的類型映射 —— 但也會給領域模型和數據模型雙方都增限制。 iBATIS SQL 映射是一種很有吸引力的關系數據庫訪問途徑,它以聲明性的方式定義 SQL 語句,并且允許基于數據集的訪問。從簡單的值到 JavaBean 它都可以映射。與 Hibernate 不同, SQL映射不是那么復雜。 SQL映射只是借助簡便的“語句映射”來進行 SQL 層面上的工作 —— 很適合用于實現簡單的需求,以及需要充分控制數據庫訪問的業(yè)務。 ? 性能 iBATIS 的性能非常好。因為 iBATIS 允許在 sqlMap 文件中寫自己的 SQL 語句,可以自由使用所用數據庫的額外特性。對 select 到字段的數據也擁有完全的控制。 iBATIS 最重要的優(yōu)點就是它不生成任何代碼。因此,開發(fā)人員沒有數據語言需要學習。也不需要轉換到數據庫的 SQL代碼。這允許我們使用數據庫地SQL主義提供的非標準擴展。 Bean 配置放置在單獨 XML文件也使得我們可以保持代碼的易于管理。實際的數據操作非常簡單;內置類型允許我們?yōu)閿祿觳僮鱾魅霂缀跞魏螀怠? 數據訪問層設計 Data Access Layer 設計方案 對大多數的應用程序來說,對數據進行存儲,讀取,快速可靠的操作顯的尤為重要。我們如果將數據訪問代碼內嵌于 JSP 頁面中,無疑為我們增加調試與調試難度。而將數據存儲邏輯封裝在一系列定義清晰的接口,這會使得開發(fā)者的工作輕松自如,也更是優(yōu)良設計
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1