日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ibatis--百度百科

發(fā)布時間:2023/11/29 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ibatis--百度百科 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
iBATIS一詞來源于“internet”和“abatis”的組合,是一個由Clinton Begin在2002年發(fā)起的開放源代碼項目。于2010年6月16號被谷歌托管,改名為MyBatis。是一個基于SQL映射支持Java和·NET的持久層框架。 外文名
iBATIS
來????源
"internet"和"abatis"的組合
發(fā)起人
Clinton Begin
時????間
2002年

目錄

  • 1 起源
  • ? 一站式
  • ? 目前主流
  • ? 開發(fā)
  • 2 半自動化
  • 3 全自動
  • 4 發(fā)展
  • 起源

    編輯

    一站式

    iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO),同時還提供一個利用這個框架開發(fā)的JPetStore實例。 相對Hibernate和ApacheOJB等“一站式”O(jiān)RM解決方案而言,ibatis 是一種“半自動化”的ORM實現。 iBATIS 目前提供了三種語言實現的版本,包括:Java、.NET以及Ruby。右圖是iBATIS的架構圖:

    目前主流

    所謂“半自動化”,可能理解上有點生澀。縱觀目前主流的 ORM(對象關系映射),無論 Hibernate還是Apache OJB,都對數據庫結構提供了較為完整的封裝,提供了從POJO到數據庫表的全套映射機制。程序員往往只需定義好了POJO 到數據庫表的映射關系,即可通過 Hibernate或者OJB 提供的方法完成持久層操作。程序員甚至不需要對 SQL 的熟練掌握,Hibernate/OJB 會根據制定的存儲邏輯,自動生成對應的 SQL 并調用 JDBC 接口加以執(zhí)行。 大多數情況下(特別是對新項目,新系統的開發(fā)而言),這樣的機制無往不利,大有一統天下的勢頭。但是,在一些特定的環(huán)境下,這種一站式的解決方案卻未必靈光。

    開發(fā)

    在筆者的系統咨詢工作過程中,常常遇到以下情況: 1. 系統的部分或全部數據來自現有數據庫,出于安全考慮,只對開發(fā)團隊提供幾條Select SQL(或存儲過程)以獲取所需數據,具體的表結構不予公開。 2. 開發(fā)規(guī)范中要求,所有牽涉到業(yè)務邏輯部分的數據庫操作,必須在數據庫層由存儲過程實現(就筆者工作所面向的金融行業(yè)而言,工商銀行、中國銀行、交通銀行,都在開發(fā)規(guī)范中嚴格指定) 3. 系統數據處理量巨大,性能要求極為苛刻,這往往意味著我們必須通過經過高度優(yōu)化的SQL語句(或存儲過程)才能達到系統性能設計指標。 面對這樣的需求,再次舉起 Hibernate 大刀,卻發(fā)現刀鋒不再銳利,甚至無法使用,奈何?恍惚之際,只好再摸出JDBC 準備拼死一搏……,說得未免有些凄涼,直接使用 JDBC進行數據庫操作實際上也是不錯的選擇,只是拖沓的數據庫訪問代碼,乏味的字段讀取操作令人厭煩。

    半自動化

    編輯 “半自動化”的ibatis,卻剛好解決了這個問題。這里的“半自動化”,是相對Hibernate等提供了全面的數據庫封裝機制的“全自動化”O(jiān)RM 實現而言,“全自動”O(jiān)RM 實現了 POJO 和數據庫表之間的映射,以及 SQL 的自動生成和執(zhí)行。而ibatis 的著力點,則在于POJO 與 SQL之間的映射關系。也就是說,ibatis并不會為程序員在運行期自動生成 SQL 執(zhí)行。具體的 SQL 需要程序員編寫,然后通過映射配置文件,將SQL所需的參數,以及返回的結果字段映射到指定 POJO。 通常在如下場景和條件下,選擇ibatis, 將更有助于發(fā)揮ibatis在持久層的優(yōu)越性: 1. 知道怎樣操作10種以上的數據庫 2. 可配置的caching(包括從屬) 3. 支持DataSource、local transaction management和global transaction 4. 簡單的XML配置文檔 5. 支持Map, Collection, List和簡單類型包裝(如Integer, String) 6. 支持JavaBeans類(get/set 方法) 7. 支持復雜的對象映射(如populating lists, complex object models) 8.對象模型從不完美(不需要修改) 9. 數據模型從不完美(不需要修改) 10. 你已經知道SQL,為什么還要學習其他東西

    全自動

    編輯 使用ibatis 提供的ORM機制,對業(yè)務邏輯實現人員而言,面對的是純粹的 Java對象, 這一層與通過 Hibernate 實現 ORM 而言基本一致,而對于具體的數據操作,Hibernate 會自動生成SQL 語句,而ibatis 則要求開發(fā)者編寫具體的 SQL 語句。相對Hibernate等 “全自動”O(jiān)RM機制而言,ibatis 以 SQL開發(fā)的工作量大和數據庫移植性上差為代價,為系統 設計提供了更大的自由空間。作為“全自動”O(jiān)RM實現的一種有益補充,ibatis 的出現顯 得別具意義。

    發(fā)展

    編輯 ibatis本是apache的一個開源項目,2010年這個項目由apache software foundation 遷移到了google code,并且改名為mybatis。

    轉載于:https://www.cnblogs.com/hoobey/p/5441781.html

    總結

    以上是生活随笔為你收集整理的ibatis--百度百科的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。