4 回答

TA貢獻6條經驗 獲得超0個贊
Hiberante 面向對象的ORM,學習成本比較高。 比較多的意見說是要想對hibernate精通比較難,學習成本較高。
Mybatis 半自動orm框架,需要自己寫sql, 方便sql與java代碼分離。但簡單的單表操作,也要寫sql,程序員就有點難接受了。? ?另外, ibatis改名成mybatis,主要原因是ibatis從apache搬出來。一個軟件即使沒有改名也是可以不斷更新的。
Bee, 一個新的ORM框架, 同時具體Hiberante和Mybatis的優點。既可像Hibernate一樣通過操作對象來操作數據庫,也可以像Mybatis一樣靈活寫sql.
Bee是一種開發速度和開發成本都不比php差的Java ORM框架,
而且它的編碼復雜度是O(1),即用了Bee,你可以不用另外再寫dao代碼。
Bee+Spring+SpringMVC? 可以作為實現后端的Java Web編程組合。

TA貢獻1856條經驗 獲得超11個贊
hibernate和ibtas(mybatis)是為了解決不同問題而出現的。
hibernate是從對象的角度去看數據庫,所有數據庫層面的表在hibernate看來都是一個個對象,若是對象自然就有一對多,一對一等等關系。hibernate在對象層面完全封裝了數據庫層面的操作。所以它是一完整的ORM工具。最大的好處就是開發人員能通過很少的代碼量就完成數據庫層面的操作,大大提示了開發效率,不需要去寫很多JDBC代碼。
但是數據庫畢竟不能只當做對象來看來,它有自己的組織方式,有自己的索引機制,當你數據庫量到一定程度的時候,hibernate就會相當吃力,因為當通過對象的方式來組織對象之間的關系,就會導致映射到數據庫層面的SQL會非常的復雜。
恰恰這種復雜并不是數據庫執行引擎所期待的時候,就會導致各種慢查詢,故后來出現了ibtas(mybatis)這種半自動化的方式來解決性能問題。同數據庫層面的交互還是通過具體的SQL,但是提供了一種機制來簡化開發的工作量,也就是寫JDBC的工作。
現在的主流基本還是ibtas(mybatis),特別是對于互聯網應用來說,hibernate太過重了!
添加回答
舉報