對(duì)于選擇Hibernate還是iBatis的看法
選擇Hibernate還是iBATIS都有它的道理:
Hibernate功能強(qiáng)大,數(shù)據(jù)庫無關(guān)性好,O/R映射能力強(qiáng),如果你對(duì)Hibernate相當(dāng)精通,而且對(duì)Hibernate進(jìn)行了適當(dāng)?shù)姆庋b,那么你的項(xiàng)目整個(gè)持久層代碼會(huì)相當(dāng)簡(jiǎn)單,需要寫的代碼很少,開發(fā)速度很快,非常爽。
Hibernate的缺點(diǎn)就是學(xué)習(xí)門檻不低,要精通門檻更高,而且怎么設(shè)計(jì)O/R映射,在性能和對(duì)象模型之間如何權(quán)衡取得平衡,以及怎樣用好Hibernate方面需要你的經(jīng)驗(yàn)和能力都很強(qiáng)才行。
iBATIS入門簡(jiǎn)單,即學(xué)即用,提供了數(shù)據(jù)庫查詢的自動(dòng)對(duì)象綁定功能,而且延續(xù)了很好的SQL使用經(jīng)驗(yàn),對(duì)于沒有那么高的對(duì)象模型要求的項(xiàng)目來說,相當(dāng)***。
iBATIS的缺點(diǎn)就是框架還是比較簡(jiǎn)陋,功能尚有缺失,雖然簡(jiǎn)化了數(shù)據(jù)綁定代碼,但是整個(gè)底層數(shù)據(jù)庫查詢實(shí)際還是要自己寫的,工作量也比較大,而且不太容易適應(yīng)快速數(shù)據(jù)庫修改。
對(duì)于選擇Hibernate還是iBatis,我的建議就是:
如果你的團(tuán)隊(duì)沒有Hibernate高手,那么請(qǐng)用iBATIS,要把Hibernate用好,并不容易;否則你應(yīng)該選擇Hibernate,那樣你的開發(fā)速度和代碼簡(jiǎn)潔性都相當(dāng)棒!
BTW:
我覺得rails的ActiveRecord是平衡性做的***的,避免了Hibernate的復(fù)雜性和學(xué)習(xí)HQL的成本,同時(shí)具備iBATIS即學(xué)即用的簡(jiǎn)單性。
【編輯推薦】