List câu hỏi phỏng vấn Hibernate
Dưới đây là danh sách các câu hỏi phỏng vấn Hibernate . Nếu bạn biết bất kỳ câu hỏi phỏng vấn hay về Hibernate, vui lòng đăng nó trong phần bình luận để chia sẻ cho mọi người nhé. 1. Hibernate là gì? Hibernate là một công cụ ORM mã nguồn mở, được sử dụng để lưu trữ, thao tác và truy ...
Dưới đây là danh sách các câu hỏi phỏng vấn Hibernate. Nếu bạn biết bất kỳ câu hỏi phỏng vấn hay về Hibernate, vui lòng đăng nó trong phần bình luận để chia sẻ cho mọi người nhé.
1. Hibernate là gì?
Hibernate là một công cụ ORM mã nguồn mở, được sử dụng để lưu trữ, thao tác và truy xuất dữ liệu từ cơ sở dữ liệu.
chi tiết…
2. ORM là gì?
ORM là từ viết tắt của Object/Relational mapping có nghĩa là ánh xạ đối tượng/quan hệ. Đây là một kỹ thuật lập trình để ánh xạ đối tượng với dữ liệu được lưu trữ trong cơ sở dữ liệu. Nó đơn giản hóa việc tạo dữ liệu, thao tác dữ liệu và truy cập dữ liệu.
3. ORM bao gồm những gì?
Giải pháp ORM bao gồm 4 phần như sau:
- API để thực hiện các thao tác CRUD cơ bản.
- API để thể hiện các truy vấn tham chiếu đến các lớp.
- Phương tiện để chỉ định Metadata.
- Tối ưu hóa phương tiện: dirty checking,lazy associations fetching.
4. Tại sao bạn cần công cụ ORM như Hibernate?
Ưu điểm chính của ORM như Hibernate là nó bảo vệ các nhà phát triển khỏi SQL lộn xộn. Ngoài ra, ORM cung cấp các lợi ích sau:
Improved productivity
- High-level object-oriented API
- Less Java code to write
- NoSQL to write
Improved performance
- Sophisticated caching
- Lazy loading
- Eager loading
Improved maintainability
- A lot less code to write
Improved portability
- ORM framework generates database-specific SQL for you
5. Phương thức hay được sử dụng nhất để cấu hình Hibernate là gì?
- Anotation configuration
- XML configuration (hibernate.cfg.xml)
6. Các core interface của Hibernate là gì?
Các core interface của Hibernate framework bao gồm:
- Configuration
- SessionFactory
- Session
- Query
- Criteria
- Transaction
7. Session interface đóng vai trò gì trong Hibernate?
Session là interface chính được sử dụng trong ứng dụng Hibernate. Nó là một đối tượng single-threaded, short-lived biểu diễn cuộc giao tiếp giữa ứng dụng và persistent store. Nó cho phép bạn tạo các đối tượng truy vấn để lấy ra các đối tượng được lưu trữ trong store.
Vai trò của Session interface:
- Gói một JDBC connection
- Nhà máy cho các Transaction
- Giữ bộ đệm bắt buộc (first-level) của các đối tượng persistent, được sử dụng khi thao tác hoặc tìm kiếm đối tượng bằng mã định danh.
8. ORM có những ưu điểm gì so với JDBC?
ORM có những ưu điểm sau so với JDBC:
- Phát triển ứng dụng nhanh.
- Quản lý giao dịch.
- Tạo khóa tự động.
- Chi tiết về các truy vấn SQL được ẩn đi.
9. Liệt kê một vài database được Hibernate hỗ trợ.
Một số cơ sở dữ liệu được Hibernate hỗ trợ là:
- DB2
- MySQL
- Oracle
- Sybase SQL Server
- Informix Dynamic Server
- HSQL
- PostgreSQL
- FrontBase
10. Kể tên 2 thành phần chính của đối tượng cấu hình Hibernate.
Database Connection
Class Mapping Setup
11. HQL là gì?
HQL là viết tắt của Hibernate Query Language – Ngôn ngữ truy vấn Hibernate được biết đến như một ngôn ngữ truy vấn hướng đối tượng. Nó giống như một ngôn ngữ truy vấn có cấu trúc (SQL).
Ưu điểm chính của HQL so với SQL là:
- Không cần học SQL.
- Độc lập cơ sở dữ liệu.
- Đơn giản để viết một truy vấn.
12. Truy vấn HQL được tạo ra như thế nào?
Sử dụng phương thức: Session.createQuery()
Làm thế nào để chúng ta có thể thêm criteria vào truy vấn SQL?
Sử dụng phương thức: Session.createCriteria()
13. persistent class là gì?
Các lớp có đối tượng được lưu trữ trong bảng cơ sở dữ liệu được gọi là persistent class.
14. Các bước cơ bản của Hibernate giao tiếp với hệ quản trị cơ sở dữ liệu (RDBMS)
1. Tải Hibernate configuration file và tạo đối tượng configuration. Nó cũng sẽ tải tất cả các file hbm mapping.
2. Tạo đối tượng session factory từ đối tượng configuration.
3. Open một session từ đối tượng session factory.
4. Tạo truy vấn HQL.
5. Thự thi câu lệnh truy vấn.
15. SessionFactory đóng vai trò gì trong Hibernate?
SessionFactory tạo ra các thể hiện của Session. Nó là nhà máy của Session. Nó giữ data của bộ nhớ cache cấp 2 (second-level) mà không được bật theo mặc định.
16. SessionFactory có phải đối tượng thread-safe không?
Có, SessionFactory là một đối tượng thread-safe, vì nhiều thread không thể truy cập nó một cách đồng thời.
17. Session là gì?
Một Session trong Hibernate được sử dụng để có được một kết nối vật lý với một cơ sở dữ liệu. Đối tượng Session là nhẹ và được thiết kế để được khởi tạo mỗi khi cần tương tác với cơ sở dữ liệu. Các đối tượng persistent được lưu và truy xuất thông qua một đối tượng Session.
chi tiết…
18. Session có phải là đối tượng thread-safe không?
Không, nhiều thread có thể truy cập nó một cách đồng thời.
19. Các kiểu của mô hình kế thừa trong Hibernate là gì?
Có 3 kiểu mô hình kế thừa trong Hibernate:
- Table per class hierarchy
- Table per subclass
- Table per concrete class
20. Sự khác nhau giữa phương thức session.save() và session.persist() là gì?
No. | save() | persist() |
---|---|---|
1) | trả về identifier (Serializable) của thể hiện. | Kiểu trả về là void. |
2) | Syn: public Serializable save(Object o) | Syn: public void persist(Object o) |
21. Sự khác nhau giữa phương thức get và load là gì?
Có vài Sự khác nhau giữa phương thức get và load như sau:
No. | get() | load() |
---|---|---|
1) | Trả về null nếu không tìm thấy đối tượng. | Ném ra ngoại lệ ObjectNotFoundException nếu không tìm thấy đối tượng. |
2) | get() luôn chọc vào database. | load() không chọc vào database. |
3) | Nó trả về đối tượng thực tế. | Nó trả về đối tượng proxy. |
4) | Nó nên được sử dụng nến bạn không chắc chắn về sự tồn tại của thể hiện. | Nó nên được sử dụng nếu bạnchắc chắc về sự tồn tại của thể hiện. |