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

iBATIS與Hibernate間的取舍

開發 后端
iBATIS與Hibernate間的取舍的問題,其實就是在于項目本身的要求以及人員的情況,那么本文就向你介紹從5個方面的比較和理解。

iBATIS與Hibernate間的取舍都是程序員要選擇的一個問題,我在最初的選型的時候是打算選擇Hibernate 的,在研究的過程中發現了iBATIS,經過分析比較之后我選擇了iBATIS?,F在我已經使用iBATIS 完成了一個中小型的項目。這個項目在性能、可維護性、可擴展性方面都非常令我滿意。

在這個過程中我也不斷的與使用過或者正在使用 Hibernate 的人進行過探討。而且我本身也在不斷的跟進 Hibernate 的發展。最終,我的結論是iBATIS 的選擇非常正確,而且越用越喜歡它了。當然了,我對 Hibernate 的理解還是非常有限的,所以這里的關于 Hibernate 的一些觀點的錯誤之處希望能夠得到 Hibernate 高手的指正。

1.iBATIS易于掌握。

拿來文檔看半天到兩天就可以掌握了。Hibernate 可能需要 3 倍以上的時間來掌握。

2. iBATIS更容易進行 sql 的 優化。

這個應該大家都有共識了。另外 Hibernate 生成的 sql 也實在是太難看了。鑒于有的朋友提到了 sql 不太重要。我想在這里強調一下我的經驗,一般系統性能的瓶頸都在數據庫上。所以這一點是iBATIS非常重要的一個優勢。

3.iBATIS可以進行細粒度的優化

3.1 比如說我有一個表,這個表有幾個或者幾十個字段,我需要更新其中的一個字段,iBATIS很簡單,執行一個sql UPDATE TABLE_A SET column_1=#column_1# WHERE id=#id# 但是用 Hibernate 的話就比較麻煩了,缺省的情況下Hibernate會更新所有字段。當然我記得Hibernate有一個選項可以控制只保存修改過的字段,但是我不太確定這個功能的負面效果。
 
3.2 我需要列出一個表的部分內容,用iBATIS 的時候,這里面的好處是可以少從數據庫讀很多數據,節省流量SELECT ID, NAME FROM TABLE_WITH_A_LOT_OF_COLUMN WHERE ...

3.2.1 一般情況

Hibernate 會把所有的字段都選出來。比如說有一個上面表有8個字段,其中有一兩個比較大的字段,varchar(255)/text。上面的場景中我為什么要把他們也選出來呢?

3.2.2 用Hibernate的話,你又不能把這兩個不需要的字段設置為 lazy load,因為還有很多地方需要一次把整個 domain object 加載出來。這個時候就能顯現出iBATIS的好處了

3.2.3 Hibernate 還有一個方案,就是生成 javabean/map/object[](感謝leelun/cjmm),但是這樣的話就可能會產生大量的多余 class。map/object[] 的方式應該不錯,我比較喜歡這種方式。
 
3.3 如果我需要更新一條記錄(一個對象),如果使用Hibernate,需要現把對象 select 出來,然后再做 update。這對數據庫來說就是兩條 sql。而iBATIS只需要一條 update 的 sql 就可以了。減少一次與數據庫的交互,對于性能的提升是非常重要。

4. 開發方面

4.1 開發效率上,我覺得兩者應該差不多

4.2 可維護性方面,我覺得iBATIS更好一些。因為iBATIS的sql都保存到單獨的文件中。而 Hibernate 在有些情況下可能會在 java 代碼中保存
 sql/hql。

5. 運行效率

5.1 在不考慮 cache 的情況下,iBATIS應該會比Hibernate快一些或者很多(根據實際情況會有所不同)。

當然iBATIS也有比較大的缺點

1. 不同數據庫類型的支持不好,如果你要開發的系統是要在對中數據間移植,那可能用Hibernate比較好。

2. 缺省的 cache 支持不好,但是Hibernate的 cache 支持其實也不是很好,而且很復雜。尤其是對于大并發量的應用。所以我更傾向于自己管理 cache。

iBATIS與Hibernate的比較以及具體的一些使用過程的差別就向你介紹到這里,希望對你有所幫助。

【編輯推薦】

  1. iBATIS教程之入門淺析
  2. Hibernate與iBATIS的較量淺析
  3. iBATIS實例創建的五大步淺析
  4. iBATIS with MapBean應用淺析
  5. iBATIS接口應用的淺析
責任編輯:仲衡 來源: JavaEye
相關推薦

2009-09-24 14:04:25

Hibernate i

2009-09-22 13:12:25

Hibernateibatis

2009-07-17 10:08:39

Hibernate與i

2009-09-21 16:56:14

Hibernateibatis

2011-08-11 10:22:59

ibatishibernate

2009-07-15 17:52:10

2009-06-15 09:57:46

HibernateIBatis

2009-07-02 09:25:15

選擇Hibernate

2009-07-20 16:18:54

iBatis分頁Hibernate式的

2018-09-19 13:56:46

2009-06-18 11:43:40

Hibernate uHibernate s

2015-10-26 10:01:33

解構C#小數運算

2012-07-16 01:41:54

ibatis搭建應用

2009-07-16 16:34:34

iBatis和Hibe

2009-07-15 16:26:04

iBATIS Clob

2009-06-18 10:41:18

Hibernate3.Hibernate3.

2024-07-05 12:57:35

2009-06-19 18:36:15

JPAHibernate

2017-10-26 14:59:47

MybatisHibernate數據庫

2009-07-28 14:30:35

ASP.NET JSP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 二区成人 | 久久久精品影院 | 亚洲区一区二 | 精品久久精品 | 91在线精品视频 | av男人的天堂在线 | 日本午夜免费福利视频 | 九九热免费在线观看 | 欧美一区二区网站 | 福利一区在线观看 | 日韩精品成人网 | 亚洲在线日韩 | 久久亚洲国产 | 91精品国产综合久久婷婷香蕉 | 欧美性一区二区三区 | 第四色影音先锋 | 精品自拍视频在线观看 | 91久久久精品国产一区二区蜜臀 | 亚洲人成人一区二区在线观看 | 精品久久久久久久久亚洲 | 欧美日韩在线综合 | 国产精品乱码一区二区三区 | 亚洲综合区 | 欧美日韩在线观看一区 | 欧美精品一区二区三区四区 | 国产高清av免费观看 | 日韩中文欧美 | 国产精品久久一区二区三区 | 久久曰视频| 综合五月 | 久在线观看 | 国产精品黄 | 色婷婷在线视频 | 91精品国产欧美一区二区 | 综合伊人 | 亚洲第一成人av | 影音先锋中文字幕在线观看 | 国产成人精品一区二区三区视频 | 国产精品久久久爽爽爽麻豆色哟哟 | 国产亚洲精品久久午夜玫瑰园 | 亚洲一区二区三区欧美 |