Sự khác biệt giữa JPA và JDBC là gì?


Câu trả lời 1:

JDBC là một công cụ tiêu chuẩn để kết nối trực tiếp với Cơ sở dữ liệu và chạy SQL dựa trên nó, ví dụ chọn * từ TableName, v.v. Bộ dữ liệu có thể được trả về mà người dùng có thể xử lý trong ứng dụng của mình và anh ta có thể thực hiện tất cả những việc thông thường như cập nhật, xóa , chèn các thủ tục, v.v ... Đây là một trong những công nghệ cơ bản đằng sau hầu hết các DBA Java (bao gồm các nhà cung cấp JPA).

Một vấn đề lớn với các ứng dụng JDBC truyền thống là người dùng thường có thể có một số mã tào lao trong đó logic được trộn lẫn với SQL, rất nhiều ánh xạ giữa các tập dữ liệu và các đối tượng xảy ra, v.v.

JPA là một công cụ chính thức cho Ánh xạ quan hệ đối tượng. JPA là một công nghệ cho phép người dùng ánh xạ giữa các đối tượng trong bảng mã và cơ sở dữ liệu. JPA có thể "ẩn" SQL khỏi nhà phát triển để tất cả những gì họ giao dịch trong các lớp Java và nhà cung cấp cho phép bạn lưu chúng và tải chúng từ xa. Hầu hết, các tệp hoặc chú thích ánh xạ XML trên setters và getters có thể được sử dụng để báo cho nhà cung cấp JPA. trường nào trên bản đồ đối tượng người dùng đến trường nào trong DB. hibernate là nhà cung cấp JPA phổ biến nhất.

một số ví dụ khác bao gồm OpenJPA, toplink, v.v.

Hibernate và các nhà cung cấp phổ biến khác cho JPA viết SQL và sử dụng JDBC để đọc và viết từ và đến DB.

Cảm ơn bạn.

nếu bạn thích câu trả lời của tôi thì hãy nâng cấp nó


Câu trả lời 2:

Sẽ hơi phức tạp để hiểu sự khác biệt của cả hai nếu bạn là người mới bắt đầu. Tôi nghĩ rằng bạn nên bắt đầu bằng cách hiểu sự khác biệt giữa JDBC và Hibernate trước. Tôi hy vọng bạn biết JDBC là gì, vẫn như một mô tả ngắn gọn: JDBC là viết tắt của Kết nối cơ sở dữ liệu Java. JDBC là một API Java để kết nối và thực hiện truy vấn với db. Nó cung cấp trình điều khiển để kết nối với db. Bạn có thể sử dụng API JDBC để truy cập dữ liệu dạng bảng được lưu trữ trong bất kỳ cơ sở dữ liệu quan hệ nào. Nhờ sự trợ giúp của API JDBC, chúng tôi có thể lưu, cập nhật, xóa và tìm nạp dữ liệu từ cơ sở dữ liệu.

Bây giờ những gì Hibernate? Đó là một khung không giống như JDBC, bạn không thể nhập các thư viện Hibernate trước khi sử dụng nó, trong khi JDBC là một phần của chính J2SE. Hibernate thực hiện tương tự như những gì JDBC được phát triển cho, nhưng bạn có thể nói Hibernate là một cấp độ nâng cao của JDBC. Hibernate đơn giản hóa việc phát triển ứng dụng Java để tương tác với cơ sở dữ liệu. Đây là một công cụ ORM, có nghĩa là nó ánh xạ các đối tượng java bằng các bảng db. Một lớp java có thể biểu diễn một bảng trong db. Chẳng hạn, nếu bạn ánh xạ bảng "emp_26" thành lớp Nhân viên trong Hibernate thì bạn sẽ viết một truy vấn hướng đối tượng đơn giản để tìm nạp tất cả nhân viên từ bảng empl_26: "từ Nhân viên" // trong Hibernate "chọn * từ emp_26" // trong JDBC.

Có rất nhiều tính năng mà Hibernate cung cấp như bộ đệm, ánh xạ liên kết, ánh xạ kế thừa, HQL, phân trang và nhiều tính năng khác không có sẵn trong JDBC.

Đến với JPA, đó là một đặc điểm kỹ thuật, đó là một tập hợp các lớp và giao diện. JPA cần một công cụ để thực hiện và công cụ đó có thể là Hibernate. Bằng cách triển khai JPA, bạn có thể làm tương tự những gì Hibernate làm, nhưng ở định dạng của JPA. Nếu JPA là một điệu nhảy thì Hibernate hoặc một số công cụ khác được yêu cầu để cung cấp cho nó một sân khấu nhảy. Theo cách này, điều đó không có nghĩa là Hibernate không thể nhảy mà không có JPA, Hibernate cũng có điệu nhảy của riêng mình.


Câu trả lời 3:

JDBC là một tiêu chuẩn để kết nối trực tiếp với DB và chạy SQL dựa trên nó - ví dụ: CHỌN * TỪ NGƯỜI SỬ DỤNG, v.v. Bộ dữ liệu có thể được trả về mà bạn có thể xử lý trong ứng dụng của mình và bạn có thể thực hiện tất cả những việc thông thường như CHERTN, XÓA, chạy các thủ tục được lưu trữ, v.v ... Đây là một trong những công nghệ cơ bản đằng sau hầu hết các truy cập cơ sở dữ liệu Java (bao gồm các nhà cung cấp JPA).

Một trong những vấn đề với các ứng dụng JDBC truyền thống là bạn thường có thể có một số mã ngu ngốc khi có nhiều ánh xạ giữa các tập dữ liệu và các đối tượng xảy ra, logic được trộn lẫn với SQL, v.v.

JPA là một tiêu chuẩn cho Ánh xạ quan hệ đối tượng. Đây là một công nghệ cho phép bạn ánh xạ giữa các đối tượng trong bảng mã và cơ sở dữ liệu. Điều này có thể "ẩn" SQL khỏi nhà phát triển để tất cả những gì họ xử lý là các lớp Java và nhà cung cấp cho phép bạn lưu chúng và tải chúng một cách kỳ diệu. Hầu hết, các tệp hoặc chú thích ánh xạ XML trên getters và setters có thể được sử dụng để báo cho nhà cung cấp JPA biết trường nào trên bản đồ đối tượng của bạn tới trường nào trong DB. Nhà cung cấp JPA nổi tiếng nhất là Hibernate, vì vậy đây là nơi tốt để bắt đầu cho các ví dụ cụ thể.

Các ví dụ khác bao gồm OpenJPA, toplink, v.v.