成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iBATIS工作原理淺析

開發 后端
iBATIS工作原理是什么呢?iBATIS在不同的系統中的角色是什么呢?那么本文將會向你介紹這方面的信息。

談到iBATIS工作原理問題尤其要注意的是,有了iBATIS,你就再不需要直接編寫JDBC代碼或ADO.NET代碼了。JDBC和ADO.NET的確非常強大,但使用起來總不免覺得太過繁瑣。代碼清單2-2給出了一個使用JDBC的例子。

代碼清單2-2  使用JDBC的代碼示例

JDBC的代碼 

從這個例子中很容易看出,使用JDBC API編寫代碼需要許多額外的工作。盡管如此,每一行代碼又都是必不可少的,所以要減少代碼量還真不是一件容易的事情。最多也只不過能將其中的一些代碼挪到某個實用方法(utility method)中,最明顯的就是那些關閉資源(如PreparedStatement和ResultSet)的代碼。

對于iBATIS工作原理其實,如果使用iBATIS,iBATIS在后臺也是運行這些相同的JDBC代碼。iBATIS會獲取數據庫連接,設置SQL語句的參數,執行SQL語句,獲取執行結果,并在***關閉所有的資源。然而,你需要自己親自編寫的代碼量卻大大地減少了。代碼清單2-3給出了使用iBATIS運行相同的SQL語句時你需要編寫的代碼。

代碼清單2-3  iBATIS顯然比JDBC要精簡得多

iBATIS的代碼 

根本無須比較,iBATIS代碼明顯更加簡潔,更容易閱讀,因此也更容易維護。本章稍后會討論更多關于使用iBATIS的好處。但是現在,你最關心的可能是如何用Java代碼運行以上的“SQL語句”。其實就像你在之前的示例中已經看到的,運行它僅僅需要一行簡單代碼:

  1. Employee emp = (Employee) sqlMap.queryForObject("getEmployee",new Integer(5));  

沒什么好多說的。這行代碼會執行相應的SQL語句,設置其參數并返回一個真實的Java對象作為結果。SQL語句被“干干凈凈”地封裝在Java代碼之外的一個XML文件中。iBATIS負責管理幕后的所有資源,其運行的實際效果與我們之前所見的代碼清單2-2所示的JDBC的例子是完全一樣的。

這就引起一個問題,iBATIS對所有的系統來說都以一樣的方式工作嗎?或者它僅僅是適用于某一類特定的應用?以下幾節我們將回答這個問題,首先從iBATIS是多么的適合于小型應用說起。

2.1.iBATIS工作原理之于小型、簡單系統

小型應用通常只涉及一個數據庫,只有一些相當簡單的用戶接口和領域模型。它的業務邏輯層非常簡單,有時對一些簡單的只涉及增查改刪(CRUD:Create, Read, Update, Delete)操作的應用來說甚至根本就不存在業務邏輯。iBATIS之所以非常適合于小型應用,有3個原因。

***,iBATIS自己就很小并且簡單。它不需要服務器或者其他任何類型的中間件。不需要任何額外的基礎設施(infrastructure)。iBATIS也沒有任何第三方依賴。iBATIS的最簡安裝只需要2個JAR文件,總計不過375KB。除了需要配置一下你的SQL映射文件外,iBATIS不需要進行任何安裝,因此只需要幾分鐘時間你就可以擁有一個可工作的持久層了。

第二,iBATIS不會對現存應用的設計或者數據庫結構強加任何影響。因此,如果你有一個小型系統,且已經部分實現或者甚至已經發布了,則你仍然可以重構你的持久層以使用iBATIS,這非常簡單。因為iBATIS很簡單,所以它根本不會使得應用的架構過分復雜。而如果使用對象/關系映射工具或者代碼生成工具,因為它們都事先就對應用以及數據庫的設計做了某些假設,因此它們不可能對應用的架構毫無影響。

***,只要你有過軟件開發的經驗,相信你就不會懷疑,任何一個小軟件都幾乎不可避免地有一天會成長為一個大軟件。所有成功的軟件都有進一步成長的趨勢。這是一件好事,而我們接下來想說的就是,iBATIS同樣非常適合于大型系統,它甚至可以擴展以滿足企業級應用的需要。

2.2 iBATIS工作原理之于大型、企業級系統

iBATIS就是為企業級應用而設計的。最重要的是,iBATIS在這個領域比之其他解決方案有著大量的優點。iBATIS最初的創建者只有從大型應用到企業級應用系統的開發經驗。這一類系統通常都涉及不止一個數據庫,且所有這些數據庫都是不可控的。在***章中我們討論了各種類型的數據庫,包括企業級數據庫、私有數據庫和遺留數據庫。作者創建iBATIS框架一個很重要的原因就是針對這樣的數據庫。因此,iBATIS擁有許多使其非常適合于企業應用環境的特點。

其實iBATIS適用于大型系統中的***個原因我們已經說過了,不過這個原因的確很重要,所以我們還是想再強調一下:iBATIS沒有對你的數據庫模型和對象模型的設計做任何假設。不論你的應用中這兩個模型之間是多么不匹配,iBATIS都能適用。更進一步,iBATIS沒有對你的企業級應用的架構做出任何假設。不論你對數據庫是根據業務功能縱向劃分,還是按照技術橫向劃分,iBATIS都允許你高效地處理數據并將它們整合到你的面向對象的應用中去。

第二點,iBATIS的某些特性使得它能夠非常高效地處理大型數據集。iBATIS支持的行處理器(row handler)使得它能夠批處理超大型記錄集,一次一條記錄。iBATIS也支持只獲取某個范圍內的結果,這就使得你可以只獲取那些你當前亟需的數據。例如,假設你獲取了10,000條記錄,而你其實只需要其中的第500至600條,那你就可以簡單的僅獲取這些記錄。iBATIS支持驅動提示使得執行這樣的操作非常高效。

***一點,iBATIS允許你用多種方式建立從對象到數據庫的映射關系。一個企業級系統只以一種模式工作的情況是非常少見的。許多企業級系統需要在白天執行事務性的工作,而在晚上執行批處理工作。iBATIS允許你將同一個類以多種方式映射,以保證每一種工作都能以***效的方式執行。iBATIS同樣支持多種數據獲取策略。例如,你可以選擇對某些數據進行懶加載,也可以將一個復雜的對象圖只用一條聯合查詢SQL語句就同時加載完畢,從而避免嚴重的性能問題。

以上所說的這些似乎好像在自我推銷了。那么,既然我們已經進入了這種狀態,為何不繼續深入研究一下你需要使用iBATIS的理由呢?我們會在2.3節做這件事情。并且為了公平起見,在2.4節中,我們還會討論一些你不應該使用iBATIS的情況。

iBATIS工作原理淺析就到這里,那么現在你對iBATIS工作原理是不是有些了解了呢?

【編輯推薦】

  1. iBatis和Hibernate的較量淺析
  2. iBATIS動態映射淺析
  3. iBATIS DAO框架淺析
  4. iBATIS的Log機制淺談
  5. 什么是iBATIS
責任編輯:仲衡 來源: CSDN博客
相關推薦

2009-07-21 11:12:00

iBATIS配置

2009-07-16 09:14:26

iBATIS DAO

2009-07-17 10:32:45

iBATIS MapB

2009-07-22 10:03:11

iBATIS Resu

2009-07-20 18:00:16

iBATIS DAO事

2009-07-15 17:19:31

iBATIS Ecli

2009-07-22 10:42:59

iBATIS Cach

2009-07-15 17:58:07

iBATIS 動態映射

2009-07-16 13:08:09

iBATIS快速創建應

2009-07-22 15:21:00

iBATIS SQLM

2009-07-15 16:42:03

iBATIS讀寫CLO

2009-07-17 17:05:44

iBATIS緩存cacheModel

2009-07-22 09:44:05

iBATIS Para

2009-07-17 10:59:59

iBATIS接口

2009-07-22 16:02:14

iBATIS參數

2009-07-22 15:01:01

iBATIS SQLM

2009-07-17 09:44:40

iBATIS教程

2010-02-04 15:29:40

Android實用程序

2009-07-17 16:49:18

iBATIS XML配

2009-07-15 16:26:04

iBATIS Clob
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www.啪啪.com | 久久婷婷香蕉热狠狠综合 | 521av网站 | www.国产视频 | 一级毛片视频 | 啪啪免费网站 | 久久久性色精品国产免费观看 | 成人免费看黄网站在线观看 | 亚洲精品日韩欧美 | 精品91久久| 欧美国产精品 | 精品亚洲一区二区三区 | 啪视频在线 | 日韩一区二区三区视频在线播放 | 欧美日韩一区精品 | 毛片免费看| 国产精品久久久久久久久久久久冷 | 久久人人国产 | 天天射视频| 日韩电影中文字幕 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 在线成人免费视频 | 亚洲激情一区二区 | 男人的天堂久久 | 午夜看看 | www.久久影视| av免费在线播放 | 国产69精品久久久久777 | 韩三级在线观看 | 成人自拍视频网站 | 不卡一区二区三区四区 | 久久久婷婷 | 国产在线精品一区二区 | 日本黄色的视频 | 天天干夜夜| 99久久久久久99国产精品免 | 91国产在线播放 | 亚洲网站在线观看 | 国产精品亚洲第一 | 亚洲视频第一页 | 免费麻豆视频 |