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

iBATIS與Hibernate間的取舍

開發(fā) 后端
iBATIS與Hibernate間的取舍的問(wèn)題,其實(shí)就是在于項(xiàng)目本身的要求以及人員的情況,那么本文就向你介紹從5個(gè)方面的比較和理解。

iBATIS與Hibernate間的取舍都是程序員要選擇的一個(gè)問(wèn)題,我在最初的選型的時(shí)候是打算選擇Hibernate 的,在研究的過(guò)程中發(fā)現(xiàn)了iBATIS,經(jīng)過(guò)分析比較之后我選擇了iBATIS。現(xiàn)在我已經(jīng)使用iBATIS 完成了一個(gè)中小型的項(xiàng)目。這個(gè)項(xiàng)目在性能、可維護(hù)性、可擴(kuò)展性方面都非常令我滿意。

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

1.iBATIS易于掌握。

拿來(lái)文檔看半天到兩天就可以掌握了。Hibernate 可能需要 3 倍以上的時(shí)間來(lái)掌握。

2. iBATIS更容易進(jìn)行 sql 的 優(yōu)化。

這個(gè)應(yīng)該大家都有共識(shí)了。另外 Hibernate 生成的 sql 也實(shí)在是太難看了。鑒于有的朋友提到了 sql 不太重要。我想在這里強(qiáng)調(diào)一下我的經(jīng)驗(yàn),一般系統(tǒng)性能的瓶頸都在數(shù)據(jù)庫(kù)上。所以這一點(diǎn)是iBATIS非常重要的一個(gè)優(yōu)勢(shì)。

3.iBATIS可以進(jìn)行細(xì)粒度的優(yōu)化

3.1 比如說(shuō)我有一個(gè)表,這個(gè)表有幾個(gè)或者幾十個(gè)字段,我需要更新其中的一個(gè)字段,iBATIS很簡(jiǎn)單,執(zhí)行一個(gè)sql UPDATE TABLE_A SET column_1=#column_1# WHERE id=#id# 但是用 Hibernate 的話就比較麻煩了,缺省的情況下Hibernate會(huì)更新所有字段。當(dāng)然我記得Hibernate有一個(gè)選項(xiàng)可以控制只保存修改過(guò)的字段,但是我不太確定這個(gè)功能的負(fù)面效果。
 
3.2 我需要列出一個(gè)表的部分內(nèi)容,用iBATIS 的時(shí)候,這里面的好處是可以少?gòu)臄?shù)據(jù)庫(kù)讀很多數(shù)據(jù),節(jié)省流量SELECT ID, NAME FROM TABLE_WITH_A_LOT_OF_COLUMN WHERE ...

3.2.1 一般情況

Hibernate 會(huì)把所有的字段都選出來(lái)。比如說(shuō)有一個(gè)上面表有8個(gè)字段,其中有一兩個(gè)比較大的字段,varchar(255)/text。上面的場(chǎng)景中我為什么要把他們也選出來(lái)呢?

3.2.2 用Hibernate的話,你又不能把這兩個(gè)不需要的字段設(shè)置為 lazy load,因?yàn)檫€有很多地方需要一次把整個(gè) domain object 加載出來(lái)。這個(gè)時(shí)候就能顯現(xiàn)出iBATIS的好處了

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

4. 開發(fā)方面

4.1 開發(fā)效率上,我覺(jué)得兩者應(yīng)該差不多

4.2 可維護(hù)性方面,我覺(jué)得iBATIS更好一些。因?yàn)閕BATIS的sql都保存到單獨(dú)的文件中。而 Hibernate 在有些情況下可能會(huì)在 java 代碼中保存
 sql/hql。

5. 運(yùn)行效率

5.1 在不考慮 cache 的情況下,iBATIS應(yīng)該會(huì)比Hibernate快一些或者很多(根據(jù)實(shí)際情況會(huì)有所不同)。

當(dāng)然iBATIS也有比較大的缺點(diǎn)

1. 不同數(shù)據(jù)庫(kù)類型的支持不好,如果你要開發(fā)的系統(tǒng)是要在對(duì)中數(shù)據(jù)間移植,那可能用Hibernate比較好。

2. 缺省的 cache 支持不好,但是Hibernate的 cache 支持其實(shí)也不是很好,而且很復(fù)雜。尤其是對(duì)于大并發(fā)量的應(yīng)用。所以我更傾向于自己管理 cache。

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

【編輯推薦】

  1. iBATIS教程之入門淺析
  2. Hibernate與iBATIS的較量淺析
  3. iBATIS實(shí)例創(chuàng)建的五大步淺析
  4. iBATIS with MapBean應(yīng)用淺析
  5. iBATIS接口應(yīng)用的淺析
責(zé)任編輯:仲衡 來(lái)源: JavaEye
相關(guān)推薦

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分頁(yè)Hibernate式的

2018-09-19 13:56:46

2009-06-18 11:43:40

Hibernate uHibernate s

2015-10-26 10:01:33

解構(gòu)C#小數(shù)運(yùn)算

2012-07-16 01:41:54

ibatis搭建應(yīng)用

2009-07-16 16:34:34

iBatis和Hibe

2009-07-15 16:26:04

iBATIS Clob

2009-06-18 10:41:18

Hibernate3.Hibernate3.

2009-06-19 18:36:15

JPAHibernate

2024-07-05 12:57:35

2017-10-26 14:59:47

MybatisHibernate數(shù)據(jù)庫(kù)

2009-07-28 14:30:35

ASP.NET JSP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国精品一区| 国产精品久久久久久久粉嫩 | 人人干人人干人人 | 久久久久av | 九色在线 | 亚洲精精品 | 国产精品国产精品国产专区不卡 | 国产精品69毛片高清亚洲 | 欧美精品一区二区三区四区五区 | 亚洲国产精品福利 | 午夜极品 | 成人精品一区二区三区中文字幕 | 亚洲一区日韩 | 亚洲乱码一区二区三区在线观看 | 国产精品一区二区久久 | 中文字幕欧美一区二区 | 久久久999国产精品 中文字幕在线精品 | 国产在线a | 国产成人在线视频免费观看 | 成人在线视频免费观看 | 色婷婷综合在线观看 | 成人在线观看中文字幕 | 久久久久久久久久久蜜桃 | 亚洲欧美日韩网站 | 欧美性受xxx| 亚洲精品一区二区三区丝袜 | 欧美一级网站 | www.日韩| 亚洲综合色视频在线观看 | 成人在线一级片 | 色悠悠久 | 欧美激情久久久 | 久久51 | av天天澡天天爽天天av | 在线播放中文字幕 | 久久精品国产免费看久久精品 | 超碰人人人人 | 欧美日韩一二三区 | 2019精品手机国产品在线 | 久久精品视频在线观看 | 亚洲精品一区在线 |