JPA多表查詢博客推薦及學習筆記

https://liuyanzhao.com/6978.html - JPA多表查詢。。                                      https://blog.csdn.net/xusheng__zhang/article/details/78485136 - spring-data-jpa 介紹 複雜查詢,包括多表關聯,分頁,排序等


注:JPA多表查詢相對於mybatis來說太麻煩了。Spring-data-jpaORM提供的能力他都提供,ORM框架沒有提供的業務邏輯功能Spring-data-jpa也提供,全方位的解決用戶的需求。使用Spring-data-jpa進行開發的過程中,常用的功能,我們幾乎不需要寫一條sql語句,至少在我看來,企業級應用基本上可以不用寫任何一條sql,當然spring-data-jpa也提供自己寫sql的方式,這個就看個人怎麼選擇。而JPA多表查詢真是一言難盡,,,還是mybatis好。     


https://blog.csdn.net/yunzhonmghe/article/details/78069449 - Spring Data JPA 與 MyBatis簡單對比                                                  

  • JPA的是 Java Persistence API 的簡寫,是Sun官方提出的一種ORM規範!
  • Sun提出此規範有2個原因:
    1.簡化現有Java EE和Java SE應用開發工作。
    2.Sun希望整合ORM技術,實現天下歸一。
  • 重點在於,JPA是一套規範,而不是具體的ORM框架。
  • 故Hibernate、TopLink 等ORM框架 都是JPA的實現,其中Hibernate已獲得Sun的兼容認證。
  • JPA的標準的定製是hibernate作者參與定製的,所以JPA是Hibernate的一個總成。
  • 優勢在於:
    1.開發者面向JPA規範的接口,但底層的JPA實現可以任意切換:覺得Hibernate好的,可以選擇Hibernate JPA實現;覺得TopLink好的,可以選擇TopLink JPA實現。
    2.這樣開發者可以避免爲使用Hibernate學習一套ORM框架,爲使用TopLink又要再學習一套ORM框架。

擴展:

ORM:

對象關係映射(英語:Object Relational Mapping,簡稱ORM,或O/RM,或O/R mapping),是一種程序設計技術,用於實現面向對象編程語言裏不同類型系統的數據之間的轉換。從效果上說,它其實是創建了一個可在編程語言裏使用的“虛擬對象數據庫”。如今已有很多免費和付費的ORM產品,而有些程序員更傾向於創建自己的ORM工具。

面向對象是從軟件工程基本原則(如耦合、聚合、封裝)的基礎上發展起來的,而關係數據庫則是從數學理論發展而來的,兩套理論存在顯著的區別。爲了解決這個不匹配的現象,對象關係映射技術應運而生。

簡單的說:ORM相當於中繼數據。具體到產品上,例如下邊的ADO.NET Entity Framework。DLINQ中實體類的屬性[Table]就算是一種中繼數據。

對象關係映射成功運用在不同的面向對象持久層產品中,如:TorqueOJBHibernateTopLinkCastor JDOTJDOActive RecordNHibernateADO.NET Entity Framework 等。


總結一下:JPA是由Hibernate、TopLink 等ORM框架實現,它勝在便捷開發,對於單表查詢可以不sql查詢語句,但是對於多表聯合查詢就麻煩了。而mybatis可以靈活編寫多表聯合sql查詢語句但是對於單表查詢還是需要寫的。。對於功能簡單的系統,選擇JPA不錯,對於複雜功能的系統,mybatis是個很好的選擇。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章