Trang chủHướng dẫnHướng dẫn sử dụng Hibernate từ A đến Z
Java

Hướng dẫn sử dụng Hibernate từ A đến Z

CyStack blog 7 phút để đọc
CyStack blog18/07/2025
Locker Avatar

Bao Tran

Web Developer

Locker logo social
Reading Time: 7 minutes

Gần đây tôi đã viết rất nhiều bài  về Hibernate. Đây là một trong những công cụ Java ORM tốt nhất trên thị trường hiện nay. Bài đăng này giống như một mục lục tổng hợp tất cả các bài viết hướng dẫn sử dụng Hibernate kèm ví dụ cụ thể.

Hướng dẫn sử dụng Hibernate

Bạn có thể xem các hướng dẫn này theo trình tự để học Hibernate từ đầu. Rất có thể tôi sẽ còn bổ sung thêm các bài mới vào danh sách này, vì vậy bạn có thể đánh dấu trang và ghé lại xem khi cần nhé.

Hướng dẫn sử dụng Hibernate

  1. Hướng dẫn sử dụng Hibernate cho người mới bắt đầu: Hibernate hỗ trợ các annotation của JPA và rất linh hoạt. Chúng ta có thể cấu hình nó thông qua XML, file property, cũng như trực tiếp trong code. Đây là một hướng dẫn tuyệt vời để bạn bắt đầu làm quen với Hibernate framework . Hướng dẫn này tập trung vào các cấu hình cần thiết cho Hibernate và cung cấp ví dụ về mapping (ánh xạ) dựa trên XML cũng như JPA annotations. Bạn cũng sẽ học cách khởi tạo SessionFactory theo nhiều cách khác nhau và tìm hiểu các thành phần quan trọng của Hibernate.
  2. Hibernate One-to-One Mapping: Hầu hết trong các trường hợp, các bảng cơ sở dữ liệu có quan hệ với nhau. Có nhiều dạng quan hệ – one-to-one, one-to-many và many-to-many ở cấp độ rộng, có thể được chia nhỏ hơn nữa thành các unidirectional và bidirectional mappings. Hướng dẫn này sẽ hướng dẫn bạn cách triển khai Hibernate One-to-One Mapping bằng cấu hình XML cũng như cấu hình JPA annotations.
  3. Hibernate One-to-Many Mapping: Nói một cách đơn giản, one-to-many mapping có nghĩa là một hàng trong một bảng có thể được ánh xạ tới nhiều hàng trong một bảng khác. Ví dụ, hãy nghĩ về một hệ thống Cart (giỏ hàng) nơi chúng ta có một bảng khác cho Items. Một cart có thể có nhiều items, vì vậy ở đây chúng ta có one-to-many mapping. Trong hướng dẫn này, bạn sẽ học cách triển khai One-to-Many Mapping bằng cấu hình dựa trên XML và sau đó bằng Hibernate Annotations.
  4. Hibernate Many-to-Many Mapping: Many-to-Many mapping thường được triển khai trong cơ sở dữ liệu bằng cách sử dụng một Join Table. Ví dụ chúng ta có thể có bảng Cart và Item và bảng Cart_Items cho many-to-many mapping. Mỗi cart có thể có nhiều items và mỗi item có thể là một phần của nhiều carts, vì vậy chúng ta có một many-to-many mapping ở đây. Hướng dẫn này giải thích về hibernate many-to-many unidirectional cũng như bidirectional mapping.
  5. Hibernate Query Language (HQL): Framework Hibernate đi kèm với một ngôn ngữ truy vấn hướng đối tượng mạnh mẽ – Hibernate Query Language (HQL). Nó rất giống với SQL ngoại trừ việc chúng ta sử dụng Objects thay vì tên bảng, điều đó làm cho nó gần với lập trình hướng đối tượng hơn. Bài viết này giải thích về HQL và các clause khác nhau được hỗ trợ bởi ngôn ngữ HQL.
  6. Hibernate Native SQL Query: Hibernate cung cấp tùy chọn để thực thi các native SQL queries thông qua việc sử dụng đối tượng SQLQuery. Điều này rất tiện dụng khi chúng ta muốn thực thi các truy vấn cụ thể của cơ sở dữ liệu không được hỗ trợ bởi Hibernate API như query hints hoặc từ khóa CONNECT trong Oracle Database.
  7. Hibernate Named Query: Nếu có rất nhiều HQL hoặc Native SQL Queries, code sẽ trở nên rối vì tất cả các truy vấn sẽ nằm rải rác khắp dự án. Đó là lý do tại sao Hibernate cung cấp Named Query mà chúng ta có thể định nghĩa tại một vị trí trung tâm và sử dụng chúng ở bất cứ đâu trong code. Chúng ta có thể tạo named queries cho cả HQL và Native SQL. Hibernate Named Queries có thể được định nghĩa trong các tệp mapping của Hibernate bằng cách sử dụng phần tử query hoặc sql-query hoặc thông qua việc sử dụng các JPA annotations @NamedQuery@NamedNativeQuery.
  8. Hibernate Criteria: Hibernate cung cấp Criteria API hướng đối tượng hơn để truy vấn cơ sở dữ liệu và nhận kết quả. Tuy nhiên, chúng ta không thể sử dụng Criteria để chạy các truy vấn update hoặc delete hoặc bất kỳ câu lệnh DDL nào. Nó chỉ được sử dụng để ****truy vấn dữ liệu từ cơ sở dữ liệu theo kiểu hướng đối tượng. Một số cách sử dụng phổ biến của Criteria API là Projection mà chúng ta có thể sử dụng cho các aggregate functions như sum(), min(), max() v.v., ProjectionList để chỉ lấy các cột được chọn, sắp xếp kết quả v.v.
  9. Hibernate First Level Cache: Hibernate Cache có thể rất hữu ích trong việc đạt được hiệu suất ứng dụng nhanh nếu được sử dụng đúng cách. Ý tưởng đằng sau cache là giảm số lượng truy vấn cơ sở dữ liệu, do đó giảm thời gian thông lượng của ứng dụng. Hibernate first level cache được liên kết với đối tượng Session. Cache này được bật theo mặc định và không có cách nào để tắt nó. Tuy nhiên, Hibernate cung cấp các phương thức mà qua đó chúng ta có thể xóa các đối tượng đã chọn khỏi cache hoặc xóa hoàn toàn cache. Bất kỳ đối tượng nào được lưu vào bộ nhớ đệm trong một session sẽ không hiển thị với các session khác và khi session bị đóng, tất cả các đối tượng được lưu vào bộ nhớ đệm cũng sẽ bị mất.
  10. Hibernate Second Level Cache with EHCache: Các nhà cung cấp Hibernate Second Level cache bao gồm EHCache và Infinispan, nhưng EHCache phổ biến hơn vì nó dễ tích hợp và hỗ trợ tất cả các chiến lược caching của Hibernate. Hướng dẫn này cung cấp một ví dụ hoàn chỉnh để tích hợp EHCache với framework Hibernate.
  11. Hibernate get vs load: Hibernate Session cung cấp các phương thức khác nhau để lấy dữ liệu từ cơ sở dữ liệu. Hai trong số đó là – get()load(). Cũng có rất nhiều overloaded methods cho những phương thức này, mà chúng ta có thể sử dụng trong các trường hợp khác nhau. Thoạt nhìn, cả get()load() đều có vẻ giống nhau vì cả hai đều lấy dữ liệu từ cơ sở dữ liệu. Tuy nhiên, có một vài khác biệt giữa chúng, hướng dẫn này giải thích về chúng với mã ví dụ.
  12. Hibernate save vs persistHibernate Session là giao diện giữa ứng dụng Java và framework Hibernate. Hướng dẫn này giải thích về các phương thức quan trọng của Session để lưu và cập nhật dữ liệu trong các bảng – save, saveOrUpdate, persist, updatemerge.
  13. Hibernate openSession vs getCurrentSessionHibernate SessionFactory là lớp factory mà qua đó chúng ta nhận được các session và thực hiện các hoạt động cơ sở dữ liệu. Hibernate SessionFactory cung cấp ba phương thức mà qua đó chúng ta có thể lấy đối tượng Session – getCurrentSession(), openSession()openStatelessSession(). Hướng dẫn này giải thích về từng phương thức với mã ví dụ.
  14. Hibernate log4j integrationHibernate 4 sử dụng JBoss logging nhưng log4j là logging framework phổ biến nhất. Một hướng dẫn nhanh giải thích cách tích hợp log4j logging với framework Hibernate.
  15. Hibernate Tomcat JNDI DataSource Example Hầu hết thời gian framework Hibernate được sử dụng trong các ứng dụng web chạy trong Tomcat hoặc bất kỳ servlet container nào khác. Hibernate có thể sử dụng DataSource được định nghĩa là tài nguyên JNDI trong container, đây là cách tiếp cận ưu tiên để cho phép servlet container xử lý các kết nối cơ sở dữ liệu bằng cách sử dụng connection pooling.
  16. Spring Hibernate IntegrationSpring là một trong những Java EE Framework được sử dụng nhiều nhất và Hibernate là ORM framework phổ biến nhất. Đó là lý do tại sao sự kết hợp Spring Hibernate được sử dụng rất nhiều trong các ứng dụng enterprise. Hướng dẫn này sử dụng Spring 4 và tích hợp nó với Hibernate 3 và sau đó cập nhật cùng một dự án để sử dụng Hibernate 4.
  17. Spring MVC Hibernate Example Hướng dẫn này tiếp tục và giải thích cách tích hợp Hibernate với Spring MVC và sử dụng Spring declarative transaction management, thay vì sử dụng hibernate transaction management.
  18. Struts2 Hibernate Integration Example Hướng dẫn này giải thích cách chung để tích hợp Hibernate với bất kỳ ứng dụng web nào thông qua việc sử dụng ServletContextLister, ví dụ đang sử dụng Struts2 với Hibernate nhưng việc tích hợp phía sau được thực hiện chỉ bằng công nghệ Servlet. Điều này khác với tích hợp Spring vì Struts2 không cung cấp bất kỳ hỗ trợ tích hợp Hibernate tích hợp sẵn nào.
  19. Hibernate Validator Example Xác thực dữ liệu là một phần không thể thiếu của bất kỳ ứng dụng nào. Đó là một tác vụ cross cutting xảy ra ở lớp presentation, lớp business cũng như lớp persistent. Đó là lý do tại sao JSR-303 cung cấp tiêu chuẩn dựa trên annotation để áp dụng xác thực cho các thuộc tính java bean. Hibernate Validator cung cấp hỗ trợ cho JSR-303 và hướng dẫn này chỉ ra cách sử dụng của nó với một ví dụ đơn giản.
  20. Hibernate Tools Eclipse Plugin Nếu bạn đã làm việc với các dự án Hibernate, bạn phải quen thuộc với rất nhiều thuộc tính mà chúng ta cần cho mapping và tệp cấu hình của Hibernate. Nếu không có công cụ thích hợp nào có thể hướng dẫn chúng ta tìm kiếm các thuộc tính chính xác, sẽ rất khó để cấu hình ứng dụng của chúng ta một cách chính xác. Đây là lúc Hibernate Tools Eclipse Plugin trở nên tiện dụng và là một plugin phải có cho các dự án Hibernate.
  21. Hibernate Interview Questions Có kiến thức tốt về framework Hibernate là một điểm cộng cho các cuộc phỏng vấn dựa trên Java, đó là lý do tại sao tôi viết bài đăng này. Nó tổng hợp hầu hết các câu hỏi quan trọng liên quan đến framework Hibernate với các câu trả lời chi tiết. Bạn nên xem qua những câu hỏi này trước khi đi phỏng vấn để ôn lại kiến thức của mình.

0 Bình luận

Đăng nhập để thảo luận

Chuyên mục Hướng dẫn

Tổng hợp các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.

Đăng ký nhận Newsletter

Nhận các nội dung hữu ích mới nhất