JPA (Java Persistence API)

Thứ Tư, 22 tháng 3, 2017 | Đăng: Son
I. Giới thiệu JPA

Java Persistence API hay JPA là một đăc tả Java cho việc ánh xạ giữa các đối tượng Java tới cơ sở dữ liệu quan hệ sử dụng cộng nghệ phổ biến là ORM( Object Relational Mapping). JPA API cung cấp đầy đủ các công cụ cho phép người lập trình có thể tạo cơ sở dữ liệu một cách đơn giản và nhanh chóng. JPA API có thể dùng để persist một đối tượng business (POJO) vào trong cơ sở dữ liệu hoặc lấy dữ liệu từ cơ sở dữ liệu và ánh xạ ra các đối tượng business một cách đơn giản.

Bất kỳ một ứng dụng doanh nghiệp(enterprise) nào cũng đều cần phải thực hiện các tháo tác(CRUD) đến database bằng việc lưư trữ, trích rút lượng lớn dữ liệu. Các nhà phát triển(developers) cần phải viết nhiều code để thực hiện các việc này.

Với công nghệ JDBC trước đây, developers sẽ phải chủ động thực hiện các việc: từ mở kết nối vào Database, tạo các Statement, ResultSet cho đến đóng tất cả các thứ đó lại, và code sẽ trở nên cồng kềnh. Developers cần phải làm việc với cả java code và SQL. Thực tế, từng Database khác nhau thì câu SQL có một số phần khác nhau, nên đòi hỏi developers phải nắm được sự khác biệt này để viết code cho phù hợp. Khi ứng dụng muốn chuyển từ database sang database khác(ví dụ từ Oracle sang MS SQL Server) thì chắc chắn sẽ có một số phần của câu SQL cần phải đổi. Công việc sửa code lại đòi hỏi developers phải test lại ứng dụng. Điều này sẽ tốn thời gian phát triển. Để khắc phục nhược điểm này, đã có rất nhiều frameworks ra đời với mục đích giúp xóa đi vấn để về tương thích giữa các Database, giúp developers tập trung vào phần xử lý nghiệp vụ.

1. JPA là gì?

JPA là một đăc tả của Sun, ra đời cùng với bản đặc tả J2EE 5. JPA không phải là một sản phẩm và không thể nó như thành phần persistence. Nó cần phải có một cài đặt ORM để hoạt động và persist các đối tượng Java. Các framework ORM có thể sử dụng cho JPA như Hibernate, Toplink, Open JPA,…

Ngày nay đa số các nhà cung cấp đều hỗ trợ cài đặt JPA cho framework persistence của họ. Vì vây, người lập trình có thể lựa chọn nhà cung cấp tốt nhất tùy thuộc yêu cầu ứng dụng của mình.

2. Một số lợi ích của JPA.

- Đơn giản hóa công nghệ cho tầng persistence (tầng dữ liệu)

- Không phụ thuộc vào các framework ORM

- Có nhiều nhà cung cấp hỗ trợ cài đặt JPA

- Dữ liệu có thể được lưu trữ thông qua việc ORM

3. Một số ORM framework hỗ trợ JPA

Dưới đây là danh sách các framework ORM có thể dùng với đặc tả JPA

– Hibernate

– EclipseLink

– Open JPA.

4. Tại sao nên dùng JPA
  • Viết ít code hơn
  • Performance tốt
  • Độc lập về database
  • Không phải làm việc với SQL

JPA là một đặc tả đã được chuẩn hóa và là một thành phần trong đặc tả EJB 3

Có nhiều framework ORM miễn phí hỗ trợ có thể dùng để phát triển nhiều loại ứng dụng khác nhau.

Ứng dụng xây dựng trên JPA mang tính di động cao

Có thể sử dụng cho cả ứng dụng J2EE và J2SE

Hỗ trợ cầu hình triển khai bằng annotation và xml.

5. Phiên bản hiện tại của đặc tả JPA

Hiện tại JPA đã có phiên bản 2.0, cung cấp nhiều tính năng hữu ích cho người lập trình.

II.Kiến trúc JPA.

JPA sử dụng metadata để ánh xạ các đối tượng persistence với các bảng trong cơ sở dữ liệu. JPA hỗ trợ SQL như là một ngôn ngữ truy vấn để dễ dàng xử lý các truy vấn cơ sở dữ liệu. Ngôn ngữ truy vấn JPA có thể dùng thực thi cả truy vấn tĩnh và truy vấn động.

1. Các khái niệm trong JPA

Khái niệm JPA bao gồm ba thành phần chính là Entity, EntityManager, và EntityManagerFactory

a, Entity
Entity là các đối tượng persistence thể hiện một mẫu tin trong cơ sở dữ liệu. Entity chỉ là các lớp POJO đơn giản, dễ dàng tạo. Dưới đây là một số đặc điểm của một Entity:

Entity có thể tương tác với cơ sở dữ liệu quan hệ.
Entity được xác định thông qua một định danh( tương đương với khóa chình trong table của cơ sở dữ liệu quan hệ)
Entity hỗ trợ giao tác (transaction)
Entity hỗ trợ kế thừa giống như những lớp thường khác.

b,  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. Một số chức năng cơ bản của EntityManager như:

Persist: phương thức này dùng để lưu một thực thể mới tạo vào cơ sở dữ liệu
Merge: dùng để cập nhật trạng thái của entity vào cơ sở dữ liệu.
Remove: xóa một thể hiện của entity.

c,  EntityManagerFactory:
EntityManagerFactory được dùng để tạo ra một thể hiện của EntityManager

2. Các tính năng của JPA.

Việc giới thiệu JPA vào trong đặc tả J2EE 5 là một bước tiến lớn trong việc đơn giản hóa các quy trình phát triển ứng dụng. JPA đơn giản hóa mô hình thực thể dữ liệu và cộng thểm một số tính năng mới mà phiên bản EJB trước (EJB 2.0) không có. Giờ đây người lập trình có thể ánh xạ trực tiếp các đối tượng persistence với cơ sở dữ liệu quan hệ. JPA có thể sử dụng bên ngoài container, điều này không dễ thực hiện trong EJB 2.1. Bạn cũng có thể sử dụng JPA trong các ứng dụng swing.

Một số tính năng của JPA:
  • JPA hỗ trợ pluggable, tức là có thể sử dụng nhiều nhà hãng cung cấp thứ ba như Hibernate hay Toplink.
  • Hỗ trợ annotation
  • Giảm bớt số lớp yêu cầu cho việc phát triển persistence.
  • Không cần phải viết các mô tả triển khai trong xml. Annotation dựa trên metadata đã hỗ trợ trong các ứng dụng JPA.
  • Đã chuẩn hóa ORM và dễ dàng phát triển hơn
  • JPA hỗ trợ truy vấn động và tĩnh.
  • Nhiều IDE hỗ trợ phát triển ứng dụng JPA và có thể tự động sinh code ánh xạ từ cơ sở dữ liệu thành các entity và ngược lại.
Mail Facebook Google twitter
Từ khóa: JPA (Java Persistence API)

JPA (Java Persistence API)

Bài viết JPA (Java Persistence API)
JPA (Java Persistence API) JPA (Java Persistence API)
910 1

Bài viết JPA (Java Persistence API)

0 nhận xét