JPA là gì ? Sự khác nhau giữa JPA với Hibernate trong lập trình java

Bài viết này tôi sẽ giới thiệu các bạn rõ một số khái niệm về jpa và hibernate. Kiến thức rất quan trọng với một người học lập trình java web.

 

1. JPA là gì?

JPA (Java Persistence API) là 1 giao diện lập trình ứng dụng Java, nó mô tả cách quản lý các mối quan hệ dữ liệu  trong ứng dụng sử dụng Java Platform.

JPA cung cấp một mô hình POJO persistence cho phép ánh xạ các table/các mối quan hệ giữa các table trong database sang các class/mối quan hệ giữa các object.

Ví dụ: table Users với các column (Id, name, age…) sẽ tương ứng với class Users.java với các field Id, name, age… từ đó mỗi khi truy vấn table hay các column ta sẽ truy vấn trực tiếp trên các class, các field của class mà không cần quan tâm tới việc đang dùng loại database nào, dữ liệu database ra sao…

Một số khái niệm trong JPA

  • Entity: Entity là các đối tượng thể hiện tương ứng 1 table trong cơ sở dữ liệu. Khi lập trình, entity thường là các class POJO đơn giản, chỉ gồm các method getter, setter.
  • EntityManager: EntityManager là một giao diện (interface) cung cấp các API cho việc tương tác với các Entity như Persist (lưu một đối tượng mới), merge (cập nhật một đối tượng), remove (xóa 1 đối tượng).
  • EntityManagerFactory: EntityManagerFactory được dùng để tạo ra một thể hiện của EntityManager.

Kiến trúc của JPA

2. Hibernate là gì?

Hibernate là 1 ORM (Object Relational Mapping) framework cho phép người lập trình thao tác với database một cách hoàn toàn tự nhiên thông qua các đối tượng. Lập trình viên java hoàn toàn không cần quan tâm đến loại database sử dụng, SQL…

Hay nói cách khác, Hibernate chính là cài đặt của JPA (JPA là 1 tập các interface, còn Hibernate implements các interface ấy 1 cách chi tiết).

Kiến trúc Hibernate

3. Một số ORM framework khác.

Ngoài Hibernate ra có 1 số framework khác như Open JPA, Eclipselink cũng thực hiện implements JPA nhưng Hibernate được sử dụng phổ biến hơn cả.

4. Sự khác nhau giữa JPA với Hibernate.

JPA là tập các giao diện (interfaces), qui chuẩn, định nghĩa. còn Hibernate thực hiện cài đặt (implements) các giao diện đó, định nghĩa đó.

Tham khảo:

https://docs.oracle.com/javaee/6/tutorial/doc/bnbpz.html

https://openjpa.apache.org/builds/1.2.3/apache-openjpa/docs/jpa_overview_arch.html

 

Hy vọng qua bài viết này đã giúp các bạn học lập trình java hiểu được JPA là gì ? Hibernate là gì ? Cũng như sự khác biệt giữa JPA và Hibernate. Các bạn muốn con đường trở thành lập trình viên của mình trở lên dễ dàng dưới sự hướng dẫn của chuyên gia giỏi, giàu kinh nghiệm. Tham gia ngay khoá học lập trình qua dự án: tại đây

 

=============================
☎ STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ
Hotline: 0963 723 236 – 0866 586 366
Website: https://stanford.com.vn
Facebook: http://bit.ly/2FN0TYb
Youtube: http://bit.ly/2TkKT7I

Nhận xét