[Hibernate] Bài 5: Session Trong Hibernate

Tiếp nối phần cấu hình Hibernate bài hôm nay mình sẽ hướng dẫn chi tiết phần session trong Hibernate. Vậy câu hỏi đặt ra session là gì?

1. Khái niệm session:

Session là một khái niệm phổ biến được dùng trong lập trình các website có kết nối với cơ sở dữ liệu database. Đặc biệt các chức năng như đăng nhập, đăng xuất người dùng sẽ khó có thể thực hiện được nếu không sử dụng Session.

2. Session trong Hibernate:

Session được sử dụng để có được một kết nối vật lý với một cơ sở dữ liệu. Các đối tượng Session được khởi tạo mỗi lần tương tác với cơ sở dữ liệu. đối tượng liên tục được lưu lại và lấy thông qua một đối tượng Session. Các đối tượng Session không nên giữ mở trong một thời gian dài bởi vì an toàn và cần được tạo ra và phá hủy khi cần thiết.

3. Các phương thức session:

Có nhiều phương thức được cung cấp bởi Session Interface, ở đây mình chỉ liệt kê những phương thức quan trọng.

STTMô tả phương thức Session
1Transaction beginTransaction()              

Bắt đầu phiên làm việc và trả về đối tượng liên quan.

2void cancelQuery()                                    

Hủy bỏ việc thực hiện các truy vấn hiện tại.

3void clear()                                                 

Xóa Session khi hoàn thành phiên làm việc.

4Connection close()                                    

Kết thúc phiên làm việc bằng cách giải phóng các kết nối JDBC

5Criteria createCriteria(Class persistentClass)     

Tạo một tiêu chuẩn mới, cho các lớp thực thể nhất định.

6Criteria createCriteria(String entityName)            

Tạo một tiêu chuẩn mới, với tên thực thể.

7Serializable getIdentifier(Object object)                

Trả về giá trị định danh của đối tượng.

8Query createFilter(Object collection, String queryString)     

Tạo một thể hiện mới của truy vấn để thu thập và lọc chuỗi.

9Query createQuery(String queryString)                                                      

Câu truy vấn HQL

10SQLQuery createSQLQuery(String queryString)                                       

Câu truy vấn SQL

11void delete(Object object)                                                                             

Xóa một đối tượng từ cơ sở dữ liệu.

12void delete(String entityName, Object object)                                           

Xóa một đối tượng từ cơ sở dữ liệu.

13Session get(String entityName, Serializable id)                         

Trả về đối tượng có tên là entityName nếu id tồn tại, ngượi lại trả về null.

14SessionFactory getSessionFactory()                                            

Lấy Session Factory để tạo session.

15void refresh(Object object)                                                           

Refresh lại đối tượng lấy từ cơ sở dữ liệu.

16Transaction getTransaction()                                                        

Lấy Transaction để gán session vào Transaction.

17boolean isConnected()                                                                  

Kiểm tra Session đang được kết nối.

18boolean isDirty()                                                                            

Đồng bộ với cơ sở dữ liệu.

19boolean isOpen()                                                                            

Kiểm tra Session vẫn đang mở.

20Serializable save(Object object)                                                    

Lưu đối tượng xuống cơ sở dữ liệu.

21void saveOrUpdate(Object object)

Lưu hoặc cập nhật đối tượng xuống cơ sở dữ liệu.

22void update(Object object)

Cập nhật đối tượng xuống cơ sở dữ liệu.

23void update(String entityName, Object object)  

Cập nhật đối tượng dựa vào tên bảng dưới cơ sở dữ liệu, Nếu đối  tượng truyền vào có id trùng với id của đối tượng dưới cơ sở dữ liệu thì kết quả cập nhật là thành công, ngược lại không thành công.

4. Ví dụ sao đây mô tả khái quát Session trong Hibernate.

Lớp TaiKhoan:

Lớp TestTaiKhoan:

Tạo ra Session và gán vào Transaction bắt đầu phiên làm việc.

Ví dụ trên mô tả phương thức get() của Session, phương thức này nhận vào một tên lớp và từ khóa tìm kiếm là khóa chính của lớp đó.

Kết quả:

Về phần Session trong Hibernate mình chỉ nêu ra ý nghĩa của những phương thức hay dùng khi xây dựng một ứng dụng Hibernate. Các phương thức Session thì bạn nên làm mỗi một phương thức một ví dụ sẽ hiểu rõ hơn. Có gì cần hỗ trợ các bạn cứ để lại comment bên dướ, ngoài ra các bạn có thể tìm hiểu thêm loạt bài Hibernate tại chuyên mục nhé.

Download source code bài viết bên dưới.

Download link Google Drive

Download link Vipshare

Download link Mshare

(Tác giả: Công Minh)

2 thoughts on “[Hibernate] Bài 5: Session Trong Hibernate

Bình luận

Loading...