国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

轉 ibatis(mybatis)和Hibernate的區別

2019-11-08 20:32:41
字體:
來源:轉載
供稿:網友

摘自原文鏈接:https://zhidao.baidu.com/question/1883317112619717188.html?device=mobile&ssid=0&from=1019023c&uid=0&pu=sz@320_1001,ta@iphone_2_5.1_3_537,usm@1&bd_page_type=1&baiduid=7B7FCE837BB2299C0D9A30E56ECFEB48&tj=www_zhidao_normal_6_0_10_title 

一.共同點:

1.都是O/R mapping框架,直接與數據庫打交道,將數據持久化。

2.都提供方言支持不同類型數據庫的訪問,通過xml文件格式將數據庫表與java對象連接起來。

3.都可以交給sPRing來管理

4.都是開源軟件

 

二.區別:

hibernate對象關系映射框架,是當前流行的O/R框架,來自于sf.net,現在已成為HBOSS的一部分。hibernate相對較復雜,學習周期長。

ibatis/mybatis是另外一種優秀的o/r mapping框架,目前屬于apache的一個子項目,2013年11月遷移到Github。ibatis上手快,很容易學學習。iBATIS提供的持久層框架包括SQL Maps和Data access Objects(DAO)。

 

三.原理:

hibernate對數據結構進行了很好的封裝,可以實現java對象也就是POJO是數據庫表之間的映射,還能根據POJO及SQL自動生成表和執行命令。程序員往往只需定義好了pojo到數據庫表的映射關系,即可通過hibernate提供的方法完成持久層操作。程序員甚至不需要對sql 的熟練掌握,hibernate/ojb會根據制定的存儲邏輯,自動生成對應的sql并調用jdbc接口加以執行。

而ibatis則重點在于pojo與sql之間的映射關系。ibatis不能讓我們通過POJO生成SQL語句來執行。具體的sql需要程序員編寫,然后通過映射配置文件,將sql所需的參數,以及返回的結果字段映射到指定pojo。

 

四.機制:

使用ibatis提供的orm機制,對業務邏輯實現人員而言,面對的是純粹的java對象。這一層與通過hibernate實現orm而言基本一致,而對于具體的數據操作,hibernate會自動生成sql語句,而ibatis則要求開發者編寫具體的sql語句。相對hibernate而言,ibatis以sql開發的工作量和數據庫移植性上的讓步,為系統設計提供了更大的自由空間。

 

五.系統維護或者二次開發:

當系統維護或者二次開發,無法對數據庫結構做到控制和修改,那ibatis的靈活性將比hibernate更適合。

 

六.海量數據:

系統數據處理量巨大,性能要求極為苛刻,這往往意味著我們必須通過經過高度優化的sql語句(或存儲過程)才能達到系統性能設計指標。在這種情況下ibatis會有更好的可控性和表現。

 

七.自動化程度:

ibatis需要手寫sql語句,也可以生成一部分,hibernate則基本上可以自動生成,偶爾會寫一些hql。同樣的需求,ibatis的工作量比hibernate要大很多。類似的,如果涉及到數據庫字段的修改,hibernate修改的地方很少,而ibatis要把那些sql mapping的地方一一修改。

 

八.與數據映射關系:

ibatis以數據庫字段一一對應映射得到的po和hibernte這種對象化映射得到的po是截然不同的,本質區別在于這種po是扁平化的,不像hibernate映射的po是可以表達立體的對象繼承,聚合等等關系的,這將會直接影響到你的整個軟件系統的設計思路。

 

(九.技術支持:

hibernate現在已經是主流o/r mapping框架,從文檔的豐富性,產品的完善性,版本的開發速度都要強于ibatis)

 

十.實現過程查看:

1.hibernate配置,進行數據庫連接。

2.POJO與數據庫映射的xml文件介紹

3.得到sessionFactory我們就可以通過會話工廠操作數據庫

4.ibatis配置信息設置

5.POJO與數據庫的建立xml文件定義

6.加載ibatis配置文件,給client初始化

6.通過client操作數據庫


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蒙阴县| 类乌齐县| 叙永县| 云浮市| 永仁县| 南京市| 平顶山市| 古田县| 迁西县| 梅州市| 白山市| 景泰县| 盐津县| 灌云县| 泰安市| 黑山县| 虹口区| 长岛县| 始兴县| 青田县| 孝感市| 唐河县| 泉州市| 周宁县| 宕昌县| 云安县| 莱州市| 定日县| 临海市| 横山县| 新建县| 汨罗市| 紫阳县| 安图县| 开封市| 陆川县| 邯郸县| 祁东县| 客服| 云霄县| 萨嘎县|