iBatis的sql語句需要自己手動寫而Hibernate能夠在程序運行時自動生成但是不要就這樣以為Hibernate比iBatis方便其 實二者熟悉之後的效率差不多而Hibernate還能夠自動建表等等這樣的好處就在於你帶著這個程序無論到什麼機器上你都不需要數據庫應為它能 自動為你完成而iBatis就必須要有相應的數據庫表才能進行移植
Hibernate的特點
Hibernate功能強大數據庫無關 性好O/R(對象/關系)映射能力強如果你對Hibernate相當精通而且對Hibernate進行了適當的封裝那麼你的項目整個持久層代碼會 相當簡單需要寫的代碼很少開發速度很快非常爽Hibernate對數據庫結構提供了較為完整的封裝Hibernate的O/R Mapping實現了POJO(實體類) 和數據庫表之間的映射以及SQL 的自動生成和執行程序員往往只需定義好了POJO 到數據庫表的映射關系即可通過Hibernate 提供的方法完成持久層操作程序員甚至不需要對SQL 的熟練掌握 Hibernate/OJB 會根據制定的存儲邏輯自動生成對應的SQL 並調用JDBC 接口加以執行Hibernate的缺點就是學習門檻不低要精通門檻更高而且怎麼設計O/R映射在性能和對象模型之間如何權衡取得平衡以及怎樣用 好Hibernate方面需要你的經驗和能力都很強才行但是Hibernate現在已經是主流O/R Mapping框架從文檔的豐富性產品的完善性版本的開發速度都要強於iBATIS
iBATIS的特點
iBATIS入門簡單 即學即用提供了數據庫查詢的自動對象綁定功能而且延續了很好的SQL使用經驗對於沒有那麼高的對象模型要求的項目來說相當完美iBATIS的缺 點就是框架還是比較簡陋功能尚有缺失雖然簡化了數據綁定代碼但是整個底層數據庫查詢實際還是要自己寫的工作量也比較大而且不太容易適應快速數據 庫修改當系統屬於二次開發無法對數據庫結構做到控制和修改那iBATIS的靈活性將比Hibernate更適合系統數據處理量巨大性能要求極為 苛刻這往往意味著我們必須通過經過高度優化的SQL語句(或存儲過程)才能達到系統性能設計指標在這種情況下iBATIS會有更好的可控性和表現
現在就市場來說Hibernate的需求要大於iBatis的需求而Hibernate對個人能力的要求更高即使公司使用iBatis你在Hibernate的基礎上也能快速掌握
總結:
面試的時候 從這兩個地方想
在考慮性能問題時 用哪個更好?
在做大型項目室 用哪個更好?
依據這兩個問題來回答 基本這題肯定就過關了
基礎概念上
Hibernate基於ORM 使用hql 語句
iBatis直接使用sql
From:http://tw.wingwit.com/Article/program/Java/ky/201405/30839.html