4 回答

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

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