3 回答

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

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
用SpringJdbc吧,比hibernate靈活,真不知道ibatis有什么好的,他的功能SpringJdbc都能實(shí)現(xiàn)。

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