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

iBATIS:“半自動化”的ORM實現

開發 后端 自動化
本文講述ORM實現中Hibernate與ibitas的區別一覽。iBATIS一詞來源于“internet”和“abatis”的組合,是一個由Clinton Begin在2001年發起的開放源代碼項目。ibatis 是一種“半自動化”的ORM實現。

iBATIS一詞來源于“internet”和“abatis”的組合,是一個由Clinton Begin在2001年發起的開放源代碼項目。最初側重于密碼軟件的開發,現在是一個基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO),同時還提供一個利用這個框架開發的JPetStore實例。

相對Hibernate和Apache OJB等“一站式”ORM解決方案而言,ibatis 是一種“半自動化”的ORM實現。

所謂“半自動”,可能理解上有點生澀。縱觀目前主流的 ORM,無論 Hibernate 還是Apache OJB,都對數據庫結構提供了較為完整的封裝,提供了從 POJO 到數據庫表的全套映射機制。程序員往往只需定義好了POJO 到數據庫表的映射關系,即可通過 Hibernate或者 OJB 提供的方法完成持久層操作。程序員甚至不需要對 SQL 的熟練掌握,Hibernate/OJB 會根據制定的存儲邏輯,自動生成對應的 SQL 并調用 JDBC 接口加以執行。

大多數情況下(特別是對新項目,新系統的開發而言),這樣的機制無往不利,大有一統天下的勢頭。但是,在一些特定的環境下,這種一站式的解決方案卻未必靈光。

在筆者的系統咨詢工作過程中,常常遇到以下情況:

1. 系統的部分或全部數據來自現有數據庫,處于安全考慮,只對開發團隊提供幾條Select SQL(或存儲過程)以獲取所需數據,具體的表結構不予公開。

2. 開發規范中要求,所有牽涉到業務邏輯部分的數據庫操作,必須在數據庫層由存儲過程實現(就筆者工作所面向的金融行業而言,工商銀行、中國銀行、交通銀行,都在開發規范中嚴格指定)

3. 系統數據處理量巨大,性能要求極為苛刻,這往往意味著我們必須通過經過高度優化的SQL語句(或存儲過程)才能達到系統性能設計指標。

面對這樣的需求,再次舉起 Hibernate 大刀,卻發現刀鋒不再銳利,甚至無法使用,奈何?恍惚之際,只好再摸出JDBC 準備拼死一搏……,說得未免有些凄涼,直接使用 JDBC 進行數據庫操作實際上也是不錯的選擇,只是拖沓的數據庫訪問代碼,乏味的字段讀取操作令人厭煩。“半自動化”的ibatis,卻剛好解決了這個問題。

這里的“半自動化”,是相對Hibernate等提供了全面的數據庫封裝機制的“全自動化”ORM 實現而言,“全自動”ORM 實現了 POJO 和數據庫表之間的映射,以及 SQL 的自動生成和執行。而ibatis 的著力點,則在于POJO 與 SQL之間的映射關系。也就是說,ibatis并不會為程序員在運行期自動生成 SQL 執行。具體的 SQL 需要程序員編寫,然后通過映射配置文件,將SQL所需的參數,以及返回的結果字段映射到指定 POJO。

使用ibatis 提供的ORM機制,對業務邏輯實現人員而言,面對的是純粹的 Java對象,這一層與通過 Hibernate 實現 ORM 而言基本一致,而對于具體的數據操作,Hibernate 會自動生成SQL 語句,而ibatis 則要求開發者編寫具體的 SQL 語句。

相對Hibernate等“全自動”ORM機制而言,ibatis 以 SQL開發的工作量和數據庫移植性上的讓步,為系統設計提供了更大的自由空間。作為“全自動”ORM實現的一種有益補充,“半自動化”ORM實現的ibatis 的出現顯得別具意義。

【編輯推薦】

  1. Hibernate中generator屬性的意義
  2. 淺談在Hibernate中使用Oracle sequence
  3. Hibernate簡括
  4. hibernate的Query cache
  5. Hibernate中hbm的generator屬性
責任編輯:book05 來源: 163博客
相關推薦

2018-11-27 11:17:50

半自動化運維服務器

2011-03-22 15:47:14

自動化數據庫表結構差異

2016-01-12 10:38:58

HireTeamMat

2020-11-03 06:57:10

MyBatis數據庫

2015-10-21 15:08:25

電纜自動化

2024-06-11 10:41:14

2018-02-07 14:41:16

數據科學家數據分析數學

2019-09-18 15:20:16

MyBatisSQL數據庫

2015-10-20 17:12:58

SuSE自動化運維運維

2022-07-11 13:43:51

Prometheus監控

2017-12-17 21:58:18

2024-03-20 13:19:53

2022-02-18 13:12:49

人工智能自動化技術

2022-02-17 17:37:17

超級自動化人工智能AI

2020-04-29 11:28:54

智能自動化機器人流程自動化AI

2010-12-06 09:59:58

2020-03-18 09:23:24

Python數據SQL

2023-04-06 07:09:25

自動化部署Actions

2010-09-27 09:13:36

Visual Stud

2009-09-04 13:55:04

C#文檔自動化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区久久 | 日韩日韩日韩日韩日韩日韩日韩 | 久久国产精品一区二区三区 | 免费观看黄色一级片 | 亚洲风情在线观看 | 一级黄色日本片 | 久草www| 91在线观看 | 成人免费观看男女羞羞视频 | m豆传媒在线链接观看 | 国产露脸对白88av | 亚洲精品在线看 | 欧美激情99 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 欧洲一级黄 | 91国产在线视频在线 | 国产99久久精品一区二区永久免费 | 国产成人高清视频 | 久久久久久久久久久福利观看 | wwww.8888久久爱站网 | 黄a在线观看 | 欧美亚洲国产一区二区三区 | 国产91丝袜在线熟 | 国产成人一区二区三区 | 请别相信他免费喜剧电影在线观看 | 99精品国产一区二区青青牛奶 | 一级黄a视频 | 亚洲国产精品区 | 午夜资源 | 日韩精品一区二区三区在线观看 | 国产精品久久久久久久久久久久冷 | 国产毛片久久久 | 久久久久久久一区 | av网站在线免费观看 | 亚洲一区导航 | 国产日韩欧美在线 | 99精品一区二区三区 | 久久狠狠| 一级黄色录像片子 | 亚洲一区二区免费视频 | 夜夜操天天艹 |