Hibernate là gì? Sao phải dùng nó thay JDBC?

Chúng tôi rất vui mừng chia sẻ kiến thức về từ khóa Hibernate java la gi để tối ưu hóa nội dung trang web và tiếp thị trực tuyến. Bài viết cung cấp phương pháp tìm kiếm, phân tích từ khóa và chiến lược hiệu quả. Cảm ơn sự quan tâm và hãy tiếp tục theo dõi để cập nhật kiến thức mới.

Nội dung bài viết được sự được chấp nhận của tác giả Lê Chí Dũng

Bạn Đang Xem: Hibernate là gì? Sao phải dùng nó thay JDBC?

Nếu đã biết về JDBC thì JDBC là dụng cụ kết nối DB rất thô sơ được sử dụng từ rất mất thời gian và có nhiều vấn đề. Hibernate ra đời nhằm xử lý vấn đề tồn tại và tối ưu hơn.

Hibernate là khỉ gì?

Hibernate là một thư viện ORM (Object Relational Mapping) mã nguồn mở giúp lập trình viên viết ứng dụng Java có thể map các objects (pojo) với hệ quản trị cơ sở tài liệu quan hệ, và tương trợ thực hiện các khái niệm lập trình hướng đối tượng người tiêu dùng với cớ tài liệu quan hệ.Hibernate WorkflowPersistence object Đấy là các POJO object map với những table tương ứng của cơ sở tài liệu quan hệ. Nó như thể những “thùng xe” chứa tài liệu từ ứng dụng để ghi xuống database, hay chứa tài liệu tải lên ứng dụng từ database.Session Factory Là một interface giúp tạo ra session kết nối đến database bằng phương pháp đọc các cấu hình trong Hibernate configuration. Mỗi một database phải có một session factory.

Tỉ dụ nếu ta sử dụng MySQL, và Oracle cho ứng dụng Java của mình thì ta cần có một session factory cho MySQL, và một session factory cho Oracle.

Hibernate Session Mỗi một đối tượng người tiêu dùng session được Session factory tạo ra sẽ tạo một kết nối đến database.Transation Là transaction đảm bảo tính toàn vẹn của phiên thao tác làm việc với cớ sở tài liệu. Tức là nếu có một lỗi xẩy ra trong transaction thì tất cả những tác vụ thực hiện sẽ thất bại.Query Hibernate cung cấp các câu chuy vấn HQL (Hibernate Query Language) tới database và map kết quả trả về với đối tượng người tiêu dùng tương ứng của ứng dụng Java.

Nếu như bạn muốn thao tác làm việc với Hibernate thử hãy xem Tutorial hướng dẫn sử dụng Hibernate cho tất cả những người mới mở màn tại lcdung.top

Sau phải dùng Hibernate thay JDBC

1. Object Mapping

Xem Thêm : Cư xá tiếng Anh là gì? Ví dụ về cư xá?

Với JDBC ta phải map các trường trong bảng với những tính chất của Java object một cách “thủ công”. Với Hibernate sẽ tương trợ ta map một cách “tự động hóa” thông qua các file cấu hình map XML hay sử dụng các anotation. JDBC sẽ map Java object với table như sau.

Cũng với table user đó sử dụng các anotaion để Hibernate có thể map một cách “tự động hóa” như sau.

2. HQL

Hibernate cung cấp các câu lệnh truy vấn tương tự SQL, HQL của Hibernate tương trợ đầy đủ các truy vấn đa hình như, HQL “hiểu” các khái niệm như thừa kế (inheritance), đa hình (polymorphysm), và liên kết (association)

3. Database Independent

Code sử dụng Hibernate là độc lập với hệ quản trị cơ sở tài liệu, tức là ta không cần thay đổi câu lệnh HQL khi ta chuyển từ hệ quản trị CSDL MySQL sang Oracle, hay các hệ quản trị CSDL khác… Do đó rất dễ để ta thay đổi CSDL quan hệ, đơn giản bằng phương pháp thay đổi thông tin cấu hình hệ quản trị CSDL trong file cấu hình.

Ví dụ khi ta muốn lấy 10 bản ghi tài liệu của một table từ 2 CSDL khác nhau

Với JDBC ta có câu truy vấn như sau.

Với Hibernate câu truy vấn không thay đổi với cả hai CSDL.

4. Minimize Code Changes

Khi ta thay đổi (thêm) cột vào bảng, Với JDBC ta phải thay đổi những gì:

  • Thêm tính chất vào POJO class.
  • Thay đổi method chứa câu truy vấn “select”, “insert”, “update” để bổ sung cột mới. Có thể có rất nhiều method, nhiều class chứa các câu truy vấn như trên. Với Hibernate ta chỉ việc:
  • Thêm tính chất vào POJO class.
  • Update Hibernate XML mapping file để thêm map column – property. Ta chỉ thay đổi duy nhất 2 file trên.

5. Lazy Loading

Xem Thêm : Lệnh NSLOOKUP và Cách sử dụng nslookup trong Windows

Với những ứng dụng Java thao tác làm việc với cơ sở tài liệu lớn hàng trăm triệu bản ghi, việc có sử dụng Lazy loading trong truy xuất tài liệu từ database mang lại lợi ích rất lớn. Nó giống như việc ta có thể bẻ từng chiếc đũa của bó đũa to thay vì bẻ cả bó đũa. Ví dụ những file tài liệu do người dùng upload được lưu ở bảng document. Bảng user có quan hệ một-nhiều với bảng document. Trong trường hợp này class User là class cha, class Document là class con. Bảng document nhanh chóng đầy lên theo thời kì. Mỗi lúc ta lấy thông tin user và docment tương ứng từ database giả sử tài liệu document là rất lớn, để ứng dụng không bị chậm trễ vì phải mất nhiều bộ nhớ để chứa toàn bộ document của toàn bộ user, ta vận dụng Lazy loading cho từng user như sau.

6. Loại bỏ Try-Catch Blocks

Sử dụng JDBC nếu lỗi xảy khi tao tác với database thì sẽ sở hữu exception SQLexception bắn ra. Bởi vậy ta phải sử dụng try-catch block để xử lý ngoại lệ. Hibernate xử lý việc này giúp đỡ bạn bằng phương pháp nó override toàn bộ JDBC exception thành Uncheck xeption, và ta không cần viết try-catch trong code của mình nữa.

7. Quản lý commit/rollback Transaction

Transaction là nhóm các hoạt động sinh hoạt (với database) của một tác vụ. Nếu một hoạt động không thành công thì toàn bộ tác vụ không thành công. Với JDBC lập trình viên phải dữ thế chủ động thực hiện commit khi toàn bộ hoạt động của tác vụ thành công, hay phải rollback khi có một hoạt động không thành công để kết thúc tác vụ. Với Hibernate thì ta không cần quan tâm đến commit hay rollback, Hibernate đã quản lý nó giúp ta rồi.

8. Hibernate Caching

Hibernate cung cấp một cơ chế bộ nhớ đệm, giúp giảm số lần truy cập vào database của ứng dụng càng nhiều càng tốt. Điều này sẽ sở hữu tác dụng tăng performance đáng kể cho ứng dụng của bạn. Hibernate lưu trữ các đối tượng người tiêu dùng trong session khi transation được kích hoạt. Khi một query được thực hiện liên tục, giá trị được lưu trữ trong session được sử dụng lại. Khi một transaction mới mở màn, tài liệu được lấy lại từ database và được lưu trữ session. Hibernate cung cấp hai Lever Cach, mình sẽ sở hữu bài cụ thể hơn về Cach trong Hibernate.

Nếu như bạn muốn thao tác làm việc với Hibernate thử hãy xem Tutorial hướng dẫn sử dụng Hibernate cho tất cả những người mới mở màn tại lcdung.top

Nội dung bài viết gốc được đăng tải tại lcdung.top

Có thể bạn quan tâm:

  • 9 thói quen sống bạn cần phải phải thay đổi để làm giàu
  • Vì sao nên dùng [SerializeField] thay vì biến public?
  • Vì sao phải chọn giữa R hay Python trong những khi chúng ta cũng có thể chọn cả hai?

Xem thêm Việc làm ngành cntt quyến rũ trên TopDev

You May Also Like

About the Author: v1000