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

iBatis和Hibernate的5點區別及選擇要素

開發 后端
本文針對iBatis和Hibernate不同,通過透析iBatis的特性,對iBatis和Hibernate不同點做了深入淺出的分析,五點經驗對選擇iBatis還是Hibernate極具指導意義。

我在最初的選型的時候,考慮到iBatis和Hibernate不同,本來打算選擇Hibernate的,在研究的過程中發現了iBatis的特性,經過分析比較之后我選擇了iBatis。現在我已經使用iBatis 完成了一個中小型的項目。這個項目在性能、可維護性、可擴展性方面都非常令我滿意。

在這個過程中我也不斷的與使用過或者正在使用Hibernate的人進行過探討。而且我本身也在不斷的跟進Hibernate的發展。

最終,我的結論是iBatis的選擇非常正確,而且越用越喜歡它了。

當然了,我對iBatis和Hibernate的理解還是非常有限的,所以這里的關于Hibernate的一些觀點的錯誤之處希望能夠得到Hibernate高手的指正。

1. iBatis的特性易于掌握

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

2.iBatis的特性更容易進行SQL的優化

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

3.iBatis的特性是可以進行細粒度的優化

3.1 比如說我有一個表,這個表有幾個或者幾十個字段,我需要更新其中的一個字段,iBatis 很簡單,執行一個SQLUPDATE TABLE_A SET column_1=#column_1# WHERE id=#id# 但是用Hibernate的話就比較麻煩了,缺省的情況下Hibernate會更新所有字段。當然我記得Hibernate有一個選項可以控制只保存修改過的字段,但是我不太確定這個功能的負面效果,因此iBatis和Hibernate比較,iBatis的優勢很明顯。

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.3Hibernate還有一個方案,就是生成 javabean/map/object[](感謝 leelun/cjmm),但是這樣的話就可能會產生大量的多余 class。map/object[] 的方式應該不錯,我比較喜歡這種方式。

3.3 如果我需要更新一條記錄(一個對象),如果使用Hibernate,需要現把對象 select 出來,然后再做 update。這對數據庫來說就是兩條SQL。而iBatis只需要一條 update 的SQL就可以了。減少一次與數據庫的交互,對于性能的提升是非常重要。

4. 開發方面

4.1 開發效率上,我覺得iBatis和Hibernate應該差不多

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

5. 運行效率

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

當然 iBatis和Hibernate相比也有比較大的缺點

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

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

【編輯推薦】

  1. iBATIS七大特性詳談
  2. iBATIS的Log機制淺談
  3. 輕松完成ibatis自動代碼生成
  4. iBatis和Hibernate的較量淺析
  5. 對于選擇Hibernate還是iBatis的看法
責任編輯:佚名 來源: Javaeye博客
相關推薦

2011-08-11 10:22:59

ibatishibernate

2010-01-19 09:49:01

服務器需求及選擇要素

2009-09-22 13:12:25

Hibernateibatis

2009-07-02 09:25:15

選擇Hibernate

2009-07-15 17:52:10

2020-07-03 16:45:11

RS232RS485通信協議

2009-09-24 14:04:25

Hibernate i

2009-09-21 16:56:14

Hibernateibatis

2009-07-17 13:13:47

iBATIS Hibe

2009-06-15 09:57:46

HibernateIBatis

2009-07-17 10:08:39

Hibernate與i

2010-05-28 13:53:41

Linux開發工具

2009-07-20 13:53:07

SQL Server

2010-05-28 14:14:37

Linux開發工具

2009-06-29 18:32:30

Hibernate

2009-06-18 11:43:40

Hibernate uHibernate s

2009-06-26 16:23:12

Hibernate gHibernate l

2009-10-19 17:03:07

網絡綜合布線產品

2021-12-17 00:03:23

內存DDRGDDR

2010-02-18 02:10:32

Intel至強
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品区 | 久久中文视频 | 中文字幕色站 | 国产农村妇女精品一二区 | 亚洲精品久久久一区二区三区 | 中文字幕一区二区三区在线观看 | 一道本不卡视频 | 激情综合五月 | 国产美女精品视频 | 欧美成人高清 | 污视频在线免费观看 | 国产精品免费视频一区 | 精品国产伦一区二区三区观看说明 | 久久久涩| 欧美日韩久| 久久99视频 | 亚洲高清视频在线 | 国产在线不卡 | 国产区一区 | 91精品国产91久久久 | 中文在线日韩 | 色中文在线 | 久久国内| 色资源在线观看 | 免费毛片网站 | 精品国产色 | 天天操人人干 | 黄色毛片免费 | 欧美日韩在线免费 | 激情a| 免费在线成人 | 精品99久久久久久 | 欧美黑人一级爽快片淫片高清 | 欧美久久久电影 | 国产亚洲精品成人av久久ww | 91一区| 91精品国产一区二区三区 | 超碰97人人人人人蜜桃 | 福利视频网址 | 韩日一区二区三区 | 久久久久久久91 |