前面幾篇文章有提到過JPA,可能會有人好奇什麼是JPA,先前在上課學習時,只記得JPA與資料庫持久化有關,甚至以為是ORM的一種,但仔細一查才發現根本不是。一起來了解吧。
JPA(Java Persistence API, JAVA持久化API),是Java的一個標準規範,用在物件關係映射(ORM,Object Relation Mapping)。標準規範的意思是,定義一組標準接口與註解,說明如何將Java物件映射到關聯資料庫當中,不同的ORM框架只要遵守此標準,就能用此來進行操作。
接續前述所說,ORM框架有許多種,例如Hibernate、EclipseLink,透過JAP規範,開發者能夠以統一的方式進行資料庫操作,而不被特定ORM框架所綁定。這個好處在於,若日後需要切換到另一個ORM框架時,不需要重寫資料庫操作邏輯,只要確保新框架也遵循JPA標準即可。這樣,我們只需要學習JPA的接口與註解,而不必深入了解每個ORM框架的細節。
JPA提供的查詢語言是JPQL(Java Persistence Query Language),能在物件模型上查詢,與SQL不同的是,JPQL是基於物件,而非資料表進行查詢。實際在使用JPA操作資料庫時,是通過ORM框架執行具體的查詢邏輯,使查詢變得靈活。
Spring 通過 Spring Data JPA 將JPA與Spring框架整合,使得資料庫操作更簡便:
Spring Boot 進一步簡化JPA使用:
補充:JDBC也是類似概念:
JDBC(Java Database Connectivity)也是Java的標準API,用於連接和操作關係資料庫,無論使用哪種資料庫,只要驅動程式實現JDBC接口,都能使用相同的JDBC API操作。
與JPA的概念類似,JPA為ORM提供統一標準,而JDBC是為資料庫操作提供統一接口。
理解這些概念,能更好使用JPA操作資料庫數據,避免混淆JPA與具體的ORM框架。