国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
iBATIS與Hibernate比較
---來源互聯(lián)網(wǎng),非原創(chuàng)

ibatis與hibernate間的取舍都是程序員要選擇的一個問題,我在最初的選型的時候是打算選擇hibernate的,在研究的過程中發(fā)現(xiàn)了ibatis,經(jīng)過分析比較之后我選擇了ibatis。現(xiàn)在我已經(jīng)使用ibatis完成了一個中小型的項目。這個項目在性能、可維護性、可擴展性方面都非常令我滿意。
在這個過程中我也不斷的與使用過或者正在使用hibernate 的人進行過探討。而且我本身也在不斷的跟進 hibernate 的發(fā)展。最終,我的結(jié)論是ibatis的選擇非常正確,而且越用越喜歡它了。當然了,我對 hibernate 的理解還是非常有限的,所以這里的關(guān)于 hibernate的一些觀點的錯誤之處希望能夠得到 hibernate 高手的指正。
1.ibatis易于掌握。
拿來文檔看半天到兩天就可以掌握了。hibernate 可能需要 3 倍以上的時間來掌握。
2. ibatis更容易進行 sql 的 優(yōu)化。
這個應(yīng)該大家都有共識了。另外 hibernate 生成的 sql 也實在是太難看了。鑒于有的朋友提到了 sql 不太重要。我想在這里強調(diào)一下我的經(jīng)驗,一般系統(tǒng)性能的瓶頸都在數(shù)據(jù)庫上。所以這一點是ibatis非常重要的一個優(yōu)勢。
3.ibatis可以進行細粒度的優(yōu)化
3.1比如說我有一個表,這個表有幾個或者幾十個字段,我需要更新其中的一個字段,ibatis很簡單,執(zhí)行一個sql update table_aset column_1=#column_1# where id=#id# 但是用 hibernate的話就比較麻煩了,缺省的情況下hibernate會更新所有字段。當然我記得hibernate有一個選項可以控制只保存修改過的字段,但是我不太確定這個功能的負面效果。

3.2 我需要列出一個表的部分內(nèi)容,用ibatis 的時候,這里面的好處是可以少從數(shù)據(jù)庫讀很多數(shù)據(jù),節(jié)省流量select id, name from table_with_a_lot_of_column where ...
3.2.1 一般情況
hibernate 會把所有的字段都選出來。比如說有一個上面表有8個字段,其中有一兩個比較大的字段,varchar(255)/text。上面的場景中我為什么要把他們也選出來呢?
3.2.2 用hibernate的話,你又不能把這兩個不需要的字段設(shè)置為 lazy load,因為還有很多地方需要一次把整個 domain object 加載出來。這個時候就能顯現(xiàn)出ibatis的好處了
3.2.3 hibernate 還有一個方案,就是生成 javabean/map/object[](感謝leelun/cjmm),但是這樣的話就可能會產(chǎn)生大量的多余 class。map/object[] 的方式應(yīng)該不錯,我比較喜歡這種方式。

3.3 如果我需要更新一條記錄(一個對象),如果使用hibernate,需要現(xiàn)把對象 select 出來,然后再做update。這對數(shù)據(jù)庫來說就是兩條 sql。而ibatis只需要一條 update 的 sql就可以了。減少一次與數(shù)據(jù)庫的交互,對于性能的提升是非常重要。
4. 開發(fā)方面
4.1 開發(fā)效率上,我覺得兩者應(yīng)該差不多
4.2 可維護性方面,我覺得ibatis更好一些。因為ibatis的sql都保存到單獨的文件中。而 hibernate 在有些情況下可能會在 java 代碼中保存
sql/hql。
5. 運行效率
5.1 在不考慮 cache 的情況下,ibatis應(yīng)該會比hibernate快一些或者很多(根據(jù)實際情況會有所不同)。
當然ibatis也有比較大的缺點
1. 不同數(shù)據(jù)庫類型的支持不好,如果你要開發(fā)的系統(tǒng)是要在對中數(shù)據(jù)間移植,那可能用hibernate比較好。
2. 缺省的 cache 支持不好,但是hibernate的 cache 支持其實也不是很好,而且很復(fù)雜。尤其是對于大并發(fā)量的應(yīng)用。所以我更傾向于自己管理 cache。
ibatis與hibernate的比較以及具體的一些使用過程的差別就向你介紹到這里,希望對你有所幫助
本貼來自天極網(wǎng)群樂社區(qū)--http://q.yesky.com/group/review-18217294.html

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
我為什么選擇 iBatis 而不是 Hibernate【轉(zhuǎn)】
談?wù)?Ibatis與Hibernate
Ibatis與Hibernate的區(qū)別
數(shù)據(jù)庫遷移 總結(jié)
個人總結(jié)的面試題—Seven
Hibernate與 MyBatis的比較
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服