liệu và ngược lại được quản lý bởi các lập trình viên bằng tay Hibernate cung cấp một hệ thống transparent persistence. JDBC chỉ hỗ trợ native Structured Query Language (SQL)[r]
(1)(2)Nôi dung học
Hibernate Framework gì?
Hibernate vs JDBC
Vòng đời Hibernate
Các bước sử dụng Hibernate
(3)Ý tưởng
Cơ sở liệu thường thiết kế lưu trữ theo hướng
quan hệ
Tuy nhiên phần mềm thường xây dựng theo hướng
đối tượng
Đối với lập trình viên xây dựng phần mềm thường
muốn làm việc với đối tượng nhớ đến dòng, cột bảng sở liệu
JDBC xử lý CSDL lớn chậm (từ 1000 bảng trở lên),
đặc biệt ứng dụng có khả kết nối với nhiều hệ quản trị khác nhau, câu truy vấn hệ quản trị có cú pháp khác
(4)Hibernate Framework gì?
Hibernate phát triển Gavin King từ năm 2001,
một ORM framework Java
Hibernate phần mềm miễn phí
Hibernate giúp lưu trữ truy vấn liệu quan hệ mạnh
mẽ nhanh, cho phép bạn truy liệu ngôn
(5)Hibernate Framework gì?
Các thành phần của Hibernate project (các thành phần
thư viện Hibernate)
• Hibernate Core: Cung cấp chức
persistent layer cho ứng dụng java với APIs
hỗ trợ XML Mapping metadata
• Hibernate Annotations: map class với JDK 5.0
Anootations, bao gồm Hibernate Validator
• Hibernate EntityManager : sử dụng EJB 3.0 API JSE
(6)Hibernate Framework gì?
• Hibernate Tools : tool tích hợp với Eclipse Ant
giúp tạo persistent object từ schema có sẵn
trong database(reverse-engineering) từ file hbm
sinh class java thực persistent object
Hibernate tự tạo tác object database (forward
-engineering)
• NHibernate : Hibernate cho NET Framework
• Jboss Seam : Một Java EE 5.0 framework cho phát triển
các ứng dụng JSF, Ajax EJB 3.0 với hỗ trợ
Hibernate Seam tỏ mạnh để phát triển ứng dụng Web 2.0 Nó tích hợp đầy đủ tất
(7)So sánh giải pháp JDBC Hibernate
JDBC Hibernate
Với JDBC, lập trình viên phải viết mã để lập đồ liệu mơ hình đối tượng sang liệu mơ hình quan hệ lược
đồ sở liệu tương ứng
Hibernate giải pháp ORM linh hoạt mạnh mẽ để lập đồ lớp Java vào bảng sở liệu Hibernate tự quản lý đồ cách sử dụng tập tin XML, lập trình viên không cần
phải viết mã cho điều
Với JDBC, đồ đối tượng Java với bảng sở
liệu ngược lại quản lý lập trình viên tay Hibernate cung cấp hệ thống transparent persistence JDBC hỗ trợ native Structured Query Language (SQL) Lập trình
viên phải tự tìm cách phù hợp để truy cập sở liệu
Hibernate cung cấp HQL mở rộng ( không phụ thuộc vào kiểu sở liệu ) đồng thời hỗ trợ SQL
Ứng dụng sử dụng JDBC để xử lý liệu liên tục Nếu bảng sở dữ liệu thay đổi lập trình viên phải viết lại mã
Hibernate cung cấp đồ tự động Nếu có thay đổi sở liệu cần sửa file XML
Với JDBC, đệm quản lý mã viết tay
Hibernate, vớiTransparent Persistence, bộđệmđượcđặtvàokhông
(8)Vòng đời Hibernate
Class Session Hibernate có số method quan
(9)Vòng đời Hibernate
Một đối tượng Hibernate có trạng thái:
Transient (Tạm thời)
Persistent (Bền vững)
Removed (Đã bị xóa - DB)
(10)Vòng đời Hibernate
Trường hợp bạn tạo đối tượng java từ Entity, đối tượng
có tình trạng Transient Hibernate khơng biết tồn Nó nằm ngồi quản lý Hibernate
Trường hợp bạn lấy đối tượng Entity method get, load find,
bạn có đối tượng tương ứng với record database Đối tượng có trạng thái Persistent Nó quản lý Hibernate
Session gọi method save,saveOrUpdate, persist, merge
đẩy đối tượng Transient vào quản lý Hibernate đối tượng chuyển sang trạng thái Persistent Tùy tình insert update liệu vào DB
Session gọi evict( ) clear() để đuổi đối tượng có trạng thái
persistent (bền vững) khỏi quản lý Hibernate, đối tượng có trạng thái Detected (Bị tách ra) Nếu khơng đính (Attached) trở lại, bị gom rác Java quét theo chế thông thường
Sử dụng update( ), saveOrUpdate( ), merge( ) đính trở lại đối
tượng Detached vào lại Tùy tình tạo DB câu lệnh update insert Các đối tượng trở trạng thái Persistent (bền vững)
Session gọi method remove( ), delete( ) để xóa ghi, đối tượng