spring-data-jpa

data-JPA概念:


JPA全稱Java Persistence API.JPA通過JDK 5.0註解或XML描述對象-關係表的映射關係,並將運行期的實體對象持久化到數據庫中。



ORM映射元數據
JPA支持XML和JDK5.0註解兩種元數據的形式,元數據描述對象和表之間的映射關係,框架據此將實體對象持久化到數據庫表中


自 JPA 伴隨 Java EE 5 發佈以來,受到了各大廠商及開源社區的追捧,各種商用的和開源的 JPA 框架如雨後春筍般出現,爲開發者提供了豐富的選擇。


JPA的底層實現是一些流行的開源ORM(對象關係映射)框架,因此JPA其實也就是java實體對象和關係型數據庫建立起映射關係,通過面向對象編程的思想操作關係型數據庫的規範。


Spring Data JPA 框架,主要針對的就是 Spring 唯一沒有簡化到的業務邏輯代碼,至此,開發者連僅剩的實現持久層業務邏輯的工作都省了,唯一要做的,就只是聲明持久層的接口,其他都交給 Spring Data JPA 來幫你完成!


jpql:


JPQ語句JPQL全稱Java Persistence Query Language。Java持久化查詢語言(JPQL)是一種可移植的查詢語言,旨在以面向對象表達式語言的表達式,將SQL語法和簡單查詢語義綁定在一起·使用這種語言編寫的查詢是可移植的,可以被編譯成所有主流數據庫服務器上的SQL。


JPQL所提供的查詢語法主要分爲三類:
查詢用的 SELECT 語法
更新用的 UPDATE 語法
刪除用的 DELETE 語法



SQL語句是在數據庫空間中對字段,列,行進行操作


JPQL語句是在EJB實體空間中面向對象,屬性進行操作


JPQL必須由JPA的JPQL解析器解析爲SQL才能執行,必須先獲取Query對象



  一個基本的 SELECT 語句如下所示:
SELECT u.id, u.name FROM User u WHERE u.age > 10 AND u.age < 20


select name ,age from user; //原生SQL語句


select u.name,u.age from User u;  //JPQL語句


select u from User u;  //JPQL語句



邏輯運算符   between ,like , in , is null,is empty,member of,not ,and ,or


1 not


"select u from User u where not(u.cityid=?1)"


2  between和sql中一樣


3  in    在給定的值列表中查詢


"select u from User u where u.cityid in(1,2,3)"


4 like       (   _  表示一個字符,%表示任意數量字符 )


xxxx  where u.name like ' 張% '


5 is null      (實體的屬性是否爲空,即實體屬性映射的字段是否爲空)


"select u from User u where u.cityid is null"


6 is empty        (與is null 不同的是,它針對實體的集合屬性 內有沒有元素。


                           雖然集合對象是存在的,但是集合內沒有元素)


select o from Order o where o.orderItems is empty



條件查詢


1排序查詢       asc升序  desc降序


order by p.age desc,p.birthday asc



關聯查詢(實際工作中仍然會有這種需求)


left join 允許右邊實體表達式的實體爲空,這裏的實體指 集合屬性


inner join 右邊必須存在


"select o from Order o inner join o.orderItems"



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