大一點的公司是用hibernate多還是用mybatis多一些啊?
一、個人的觀點
工作以來一直是使用 Hibernate 和 Mybatis以及Spring Data JPA 。總結下來一般傳統公司Hibernate、個人開發喜歡用Spring Data JPA ,互聯網公司更青睞于 Mybatis 。
二、分析其緣由:選擇哪種ORM工具,都是由公司開發迭代模式決定的。
1、 Hibernate特點
(1)對象化。Hibernate可以讓開發人員以面相對象的思想來操作數據庫。(2)更好的移植性。對于不同的數據庫,開發者只需要使用相同的數據操作即可,開發者無需關心數據庫之間的差異。(3)開發效率高。Hibernate 提供了大量的封裝,很多數據操作以及關聯關系等都被封裝的很好,開發者不需寫大量的sql語句,這就極大的提高了開發者的開發效率。(4)緩存機制的使用。Hibernate 提供了緩存機制(session緩存,二級緩存,查詢緩存),對于那些改動不大且經常使用的數據,可以將它們放到緩存中,不必在每次使用時都去查詢數據庫,緩存機制對提升性能大有裨益。2、Mybatis特點
(1) 與JDBC相比,減少了50%以上的代碼量。(2)MyBatis是最簡單的持久化框架,小巧并且簡單易學。(3)MyBatis相當靈活,不會對應用程序或者數據庫的現有設計強加任何影響,SQL寫在XML里,從程序代碼中徹底分離,降低耦合度,便于統一管理和優化,并可重用。(4)提供XML標簽,支持編寫動態SQL語句。提供映射標簽,支持對象與數據庫的ORM字段關系映射。
三、小結
傳統公司需求迭代速度慢,項目改動。hibernate可以幫他們做到一勞永逸;互聯網公司追求快速迭代,需求快速變更,靈活的 mybatis 修改起來更加方便,而且一般每一次的改動不會帶來性能上的下降,Hibernate 經常因為添加關聯關系或者開發者不了解優化導致項目越來越糟糕(本來開始也是性能很好的),而MyBatis 使用簡單,數據的可靠性、完整性的瓶頸便更多依賴于程序員對sql的使用水平上了。個人的項目,因為項目并不是那么大,也不需要做很復雜,或者要做到多靈活,那我當然是選擇Spring Data Jpa 了,簡單方便,而且不用配置大量的配置,而且不用寫xml文件,集成即可開啟使用。
當然,這個只是做一個比較客觀的比較,如果大家有什么不同的看法,可以在評論區留言,說說自己的觀點。我是souvc,在互聯網公司做研發,專注于技術的研究,歡迎關注我,了解更多的技術細節,了解最新的動態。