首頁常見問題正文

Hibernate現(xiàn)在淘汰了嗎?

更新時間:2023-01-05 來源:黑馬程序員 瀏覽量:

IT培訓班

  Hibernate是一款免費開源的持久層操作,它對JDBC進行了輕量級的對象封裝,將對象與數(shù)據(jù)庫表建立了映射關系,使Java編程人員可以隨心所欲地使用面向?qū)ο蟮木幊趟枷氩僮鲾?shù)據(jù)庫。Hibernate具有簡單易用、靈活性強、擴展性強等特點,大大提高了程序開發(fā)的效率。

  使用傳統(tǒng)的JDBC開發(fā)小型應用系統(tǒng),并不會有什么麻煩,但是對于大型應用系統(tǒng)的開發(fā),使用JDBC就會顯得力不從心。例如對幾十、幾百張包含幾十個字段的表進行插入操作時,編寫的SQL語句不但很長,而且繁瑣,容易出錯;在讀取數(shù)據(jù)時,需要編寫多條語句從結果集中取出各個字段的信息,工作量非常大。為了提高數(shù)據(jù)訪問層的編程效率,GavinKing開發(fā)了一個當今最流行的ORM(即Object-Relational Mapping對象關系映射)框架——Hibernate框架。

  ORM就是利用描述對象和關系型數(shù)據(jù)庫之間的映射信息,自動將Java應用程序中的對象持久化到關系型數(shù)據(jù)庫的表中。通過操作Java對象,就可以完成對數(shù)據(jù)庫表的操作。可以把ORM理解為關系型數(shù)據(jù)和對象之間的一個紐帶,開發(fā)人員只需要關注紐帶一端映射的對象即可。

  Hibernate現(xiàn)在淘汰了嗎?

  Hibernate強大到可以說用一行代碼就可以解決很多問題,但當我們想說透徹一個save或者update里面做了哪些動作,就涉及到了Hibernate本身和應用方面的邏輯,某一行出現(xiàn)了問題,下一步該怎么做?阿里選擇了MyBatis,是因為MyBatis在開發(fā)和調(diào)優(yōu)方面同樣簡單方便,特別是在處理高并發(fā)和大量數(shù)據(jù)的網(wǎng)站服務中功不可沒。

1672885302155_MyBatis架構圖.jpg

  在國外的市場來看,Hibernate版本的更新速度要快于國內(nèi),人氣一度超過了ibatis。Hibernate在眾多框架中的學習曲線還是比較長的,上手簡單,但是想把它用好不容易,中文文檔缺乏的比較多一些。但是這些并不能否定Hibernate自身的優(yōu)勢,國內(nèi)許多IT高手還在用Hibernate,其中的特點像hibernate search從lucene到elasticsearch的平滑過渡,全文檢索代碼可以說幾乎不用做什么調(diào)整或者改動。

  與其他操作數(shù)據(jù)庫的技術相比,Hibernate具有以下幾點優(yōu)勢。

  1.Hibernate對JDBC訪問數(shù)據(jù)庫的代碼進行了輕量級封裝,大大簡化了數(shù)據(jù)訪問層繁瑣的重復性代碼,并且減少了內(nèi)存消耗,加快了運行效率。

  2.Hibernate使用Java的反射機制,而不是使用字節(jié)碼增強程序類,并實現(xiàn)了透明性。

  3.Hibernate的功能強大,映射的靈活性很出色。它支持很多關系型數(shù)據(jù)庫,從一對一到多對多的各種復雜關系。

  4.可擴展性強,由于源代碼的開源以及API的開放,當本身功能不夠用的時候,可以自行編碼進行擴展。

  想把任何一種技術框架用的輕車熟路,都脫離不開貼近業(yè)務需求和自身駕馭技術的能力??蚣鼙旧頉]有對錯之分,更多的而是適不適合,Hibernate也是如此。在我們沒有把一門技術做深入地了解或者現(xiàn)實業(yè)務需求不能與框架更好地契合時,我們不能盲目去進行評判框架是否過時。

分享到:
在線咨詢 我要報名
和我們在線交談!