Công nghệ Hibernate Công nghệ Hibernate Bởi: Khoa CNTT ĐHSP KT Hưng Yên Giới thiệu Trước khi tìm hiểu Hibernate là gì, chúng ta cần chuẩn bị một số ki

Tài liệu tương tự
Phân tích và thiết kế hệ thống thông tin

PowerPoint Template

Cách tạo User và Thiết kế Database Cách tạo User và Thiết kế Database Bởi: Khoa CNTT ĐHSP KT Hưng Yên Cách tạo một User Database Chúng ta có thể tạo m

Co s? d? li?u (Database)

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ BÙI TRUNG HIẾU NGHIÊN CỨU MỘT SỐ VẤN ĐỀ VỀ CƠ SỞ DỮ LIỆU VÀ ỨNG DỤNG TRONG BÀI TOÁN QUẢN LÝ DÂN CƯ LU

Stored Procedures Stored Procedures Bởi: Khoa CNTT ĐHSP KT Hưng Yên Trong những bài học trước đây khi dùng Query Analyzer chúng ta có thể đặt tên và s

CÔNG TY TNHH GIẢI PHÁP TRỰC TUYẾN TOTAL 60 Đường 18, Phường Hiệp Bình Chánh, Quận Thủ Đức, TP.HCM MST:

Thực hành trên Rose Thực hành trên Rose Bởi: Đoàn Văn Ban Xây dựng biểu đồ thành phần + Tạo lập mới hoặc mở một biểu đồ thành phần đã được tạo lập trư

Truy vấn, Ràng buộc, Trigger Truy vấn, Ràng buộc, Trigger Bởi: Ths. Phạm Hoàng Nhung SQL (Structured Query Language) là ngôn ngữ truy vấn cấu trúc đượ

TCVN 11391:2016 MỤC LỤC 1 Phạm vi áp dụng Tài liệu viện dẫn Thuật ngữ, định nghĩa và các từ viết tắt Thuật ngữ và định nghĩa...

CHƯƠNG TRÌNH ĐÀO TẠO

Microsoft Word - su_dung_sqlite_voi_php.docx

Giới thiệu về ADO.NET Giới thiệu về ADO.NET Bởi: phamvanviet truonglapvy Trong thực tế, có rất nhiều ứng dụng cần tương tác với cơ sở dữ liệu..net Fra

Microsoft Word - VoHoangLienMinh - Bao KH-CN- From UML to XML 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

KẾ HOẠCH THỰC TẬP CƠ SỞ DỮ LIỆU I. MỤC ĐÍCH, YÊU CẦU Mục đích: Giúp sinh viên rèn luyện các kỹ năng về xây dựng cơ sở dữ liệu, cài đặt, quản trị, thao

8/22/2016 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI HANOI UNIVERSITY OF SCIENCE AND TECHNOLOGY Nội dung lý thuyết Phần 1 Nhập môn và các kỹ năng Bài 1 Giới thiệ

Điện toán đám mây của Google và ứng dụng xây dựng hệ thống quản lý dịch vụ Đỗ Thị Phương Trường Đại học Quốc gia Hà Nội; Trường Đại học Công nghệ Chuy

ĐỀ CƯƠNG MÔN HỌC NHẬP MÔN TIN HỌC

Bài 3 Tựa bài

Microsoft Word - Khai thac AWS EC2_Web hosting.docx

UBND THÀNH PHỐ HÀ NỘI TRƯỜNG CAO ĐẲNG NGHỀ CÔNG NGHỆ CAO HÀ NỘI CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập- Tự do- Hạnh phúc CHƯƠNG TRÌNH DẠY NGHỀ (Ba

TRƯỜNG Đ CK Joel Murach lay Harris TÜ SACH BẢN QUYỄN FPT Polytechnic P H P v ä MySQL Murach's PHP and MySQL Khởi động nhanh với PHP & MySQL

Bài 4 Tựa bài

Thiết kế website động với mã nguồn Drupal 7 - Phần 1

ThemeGallery PowerTemplate

Slide 1

PowerPoint Template

CÔNG BÁO/Số /Ngày BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ GIÁO DỤC VÀ ĐÀO TẠO Số: 14/2018/TT-BGDĐT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập -

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN XÂY DỰNG WEBSITE QUẢN LÝ RẠP CHIẾU PHIM TRÊN CƠ SỞ YII FRAMEWORK Hà Nội 2016

000.Bia

mySQL - Part 1 - Installation

Tạp chí Khoa học công nghệ và Thực phẩm số 11 (2017) NGHIÊN CỨU ỨNG DỤNG MÃ NGUỒN MỞ JOOMLA XÂY DỰNG WEBSITE HỖ TRỢ DẠY HỌC VẬT LÝ ĐẠI CƢƠNG Ngu

HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập Tự do Hạnh phúc ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN CÔNG NGHỆ CLI

Phụ lục 2: HỒ SƠ NĂNG LỰC NĂM 2014

Bài tập thực hành Chuyên đề 1 CNPM - Java Khoa CNTT- Trường ĐH Công nghệ TP.HCM Lab 01: LẬP TRÌNH JAVA CƠ BẢN VỚI NET BEANS A. MỤC TIÊU: Hướng dẫn tải

Microsoft Word - server_response_trong_servlet.docx

Dịch vụ điện tử FPT

Tài liệu Hướng dẫn sử dụng

BỘ GIÁO DỤC VÀ ĐÀO TẠO HỌC VIỆN TÀI CHÍNH BỘ TÀI CHÍNH NGUYỄN HOÀNG DŨNG HOÀN THIỆN TỔ CHỨC HỆ THỐNG THÔNG TIN KẾ TOÁN QUẢN TRỊ TRONG CÁC DOANH NGHIỆP

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ THÀNH PHỐ HỒ CHÍ MINH ĐỀ CƯƠNG MÔN HỌC 1. THÔNG TIN VỀ MÔN HỌC 1.1. Tên môn học: QUẢN TRỊ HỆ CƠ SỞ DỮ LIỆU 1.

Microsoft Word - Co so du lieu - cap nhat

HƯỚNG DẪN SỬ DỤNG CÁC SẢN PHẨM CỦA OFFICE 365 Hợp đồng số: 25/KTQD-FPT Cung cấp hệ thống Office trực tuyến và thư điện tử Trường Đại Học Kinh Tế Quốc

CÀI ĐẶ T ANDROID TRÊN NETBEAN Yêu cầ u:trong quá trình cài đặ t phả i kế t nố i mạ ng,và phiên bả n này đượ c cài trên windows. 1.Download Netbean(6.7

NGÔN NGỮ THỐNG KÊ R

Microsoft Word - thuat-ngu-thuong-mai-dien-tu.docx

Microsoft Word - mot_so_tool_trong_android.docx

CÔNG TY TNHH GIẢI PHÁP CÔNG NGHỆ HDA VIỆT NAM Biệt thự BT8 Lô D8 Khu đô thị Việt Hưng, Long Biên, Hà Nội Điện thoại: (84-4) Fax: (84-4) 62928

Phân tích Thiết kế Hướng đối tượng - OOAD

Microsoft Word - THỂ LỆ CHƯƠNG TRÌNH KHUYẾN MÃI.doc

ĐỀ CƯƠNG MÔN HỌC NHẬP MÔN TIN HỌC

Microsoft Word - Chương trình ĂÀo tạo - Website

Thực hành hàm kết hợp và gom nhóm Thực hành hàm kết hợp và gom nhóm Bởi: Khoa CNTT ĐHSP KT Hưng Yên Nhắc lại lý thuyết Hàm kết hợp Hàm count(), min(),

Slide 1

Microsoft Word - client_request_trong_servlet.docx

Microsoft Word - bai2.doc

Microsoft Word - jsp_syntax.docx

Microsoft Word - status_code_trong_servlet.docx

Hướng dẫn KHG sử dụng dịch vụ BaaS do Mobifone Global cung cấp Tổng Công ty Viễn thông MOBIFONE là nhà cung cấp dịch vụ Viễn thông và CNTT hàng đầu tạ

QUY CHẾ CÔNG BỐ THÔNG TIN CÔNG TY CỔ PHẦN ĐẠI LÝ GNVT XẾP DỠ TÂN CẢNG (Ban hành kèm theo Quyết định số: 192A/QĐ-HĐQT ngày 23 tháng 3 năm 2016 của Chủ

Training Schedule 2019-HN-Vi -08 copy

UBND TỈNH LONG AN TRƯỜNG CĐN LONG AN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do -Hạnh phúc CHƯƠNG TRÌNH DẠY NGHỀ TRÌNH ĐỘ TRUNG CẤP (Ban hành

HỌC VIỆN KỸ THUẬT QUÂN SỰ

CÁC PHƯƠNG PHÁP GIẢNG DẠY TÍCH CỰC

Các thanh công cụ Toolbar Các thanh công cụ Toolbar Bởi: Khoa CNTT ĐHSP KT Hưng Yên Origin cung cấp các nút thanh công cụ cho những lệnh menu thường x

Kết nối và thao tác với CSDL trong ASP Kết nối và thao tác với CSDL trong ASP Bởi: Khoa CNTT ĐHSP KT Hưng Yên Qui tắc chung - Tạo đối tượng Connection

Microsoft Word - cai_dat_android_studio.docx

TRƯỜNG ĐẠI HỌC SƯ PHẠM TP. HỒ CHÍ MINH KHOA HÓA HỌC KHÓA LUẬN TỐT NGHIỆP Tên đề tài: SỬ DỤNG MOODLE THIẾT KẾ WEBSITE HỖ TRỢ VIỆC TỰ HỌC CHƯƠNG HIDROCA

The Total Economic Impact™ Of IBM Security Guardium

Giới thiệu

Microsoft Word ke toan_da bs muc 9

Slide 1

Microsoft Word - Co so du lieu phan tan - cap nhat

Website review luanvancaohoc.com

CÔNG TY TNHH TIN HỌC TÍN NGHỆ Hotline: TÀI LIỆU HƯỚNG DẪN CÀI ĐẶT, CẤU HÌNH, SAO LƯU PHẦN MỀM TÍN NGHỆ A. CÀI ĐẶT, CẤU HÌ

Microsoft Word - action_trong_jsp.docx

1

Kiểm soát truy suất Kiểm soát truy suất Bởi: Khoa CNTT ĐHSP KT Hưng Yên Khái niệm Bảo mật thực chất là kiểm soát truy xuất [1]. Mục đích của bảo mật m

So tay luat su_Tap 3_ _file in.indd

BỘ CÔNG THƯƠNG TRƯỜNG CAO ĐẲNG CÔNG THƯƠNG THÀNH PHỐ HỒ CHÍ MINH SỔ TAY SINH VIÊN KHOA CÔNG NGHỆ THÔNG TIN NĂM 2016 Địa chỉ: 20 Tăng Nhơn Phú Phường P

Giải pháp số hóa và văn thư lưu trữ

BỘ VĂN HÓA, THỂ THAO VÀ DU LỊCH TRƯỜNG ĐẠI HỌC VĂN HÓA TP. HỒ CHÍ MINH & QUY CHẾ HỌC VỤ Tài liệu dành cho sinh viê

Microsoft Word - ICT-rda08HBQuoc.doc

Microsoft Word - Tom tat Luan van - Nguyen Thi Ngoc Quynh.doc

Slide 1

ĐỀ CƯƠNG MÔN HỌC

Những khái niệm cơ bản của hệ điều hành mạng Windows Những khái niệm cơ bản của hệ điều hành mạng Windows Bởi: unknown Giới thiệu tổng quan về Windows

CHUYÊN ĐỀ 7 KIỂM ĐỊNH CHẤT LƯỢNG GIÁO DỤC VÀ ĐÁNH GIÁ NGOÀI TRƯỜNG MẦM NON ThS. Hồ Đắc Thụy Thiên Thi

Chuyên đề

TÀI LIỆU HƯỚNG DẪN CÀI ĐẶT CÁC SẢN PHẨM CỦA OFFICE 365

Vượt qua thách thức bảo vệ dữ liệu ở khắp mọi nơi

CHƯƠNG 4: SOCIAL ENGINEERING Nguyễn Tấn Thành Social engineering là phương pháp phi kỹ thuật đột nhập vào hệ thống hoặc mạng công ty. Đó là quá trình

0.00 Trang bia

KIỂM TOÁN NHÀ NƯỚC CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc Số: 1173/QĐ-KTNN Hà Nội, ngày 27 tháng 7 nă

Hợp đồng Chính

Công cụ trong VB6 Công cụ trong VB6 Bởi: FPT Software Để tìm hiểu về các công cụ trong VB chúng ta sẽ đề cập tới Add-in Các công cụ trong add-in Trình

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ STORAGE.COM.VN

Tổ chức hàng đầu thế giới chuyên cung cấp dịch vụ kiểm toán, thuế và tư vấn cho các doanh nghiệp năng động đang tăng trưởng trên quy mô toàn cầu RSM V

Bản ghi:

Bởi: Khoa CNTT ĐHSP KT Hưng Yên Giới thiệu Trước khi tìm hiểu Hibernate là gì, chúng ta cần chuẩn bị một số kiến thức để làm nền tảng. Đầu tiên, chúng ta cần tìm hiểu "framework" là gì? Framework ngày nay được "lạm dụng" rất nhiều. Nhiều người hay gán một vài thứ là "framework" nhưng gán gọi như vậy có đúng không lại là một chuyện khác. Theo cộng đồng wikipedia, từ framework dùng trong phát triển phần mềm là một khái niệm dùng để chỉ những "cấu trúc hỗ trợ được định nghĩa" mà trong đó những dự án phần mềm khác có thể được sắp xếp vào đó và phát triển. Thông thường, một framework bao gồm những program hỗ trợ, code libs và một ngôn ngữ scripting nằm giữa các chương trình phần mềm khác để giúp phát triển và gắn những thành phần khác nhau trong dự án phần mềm lại với nhau. Tiếp theo, chúng ta cần tìm hiểu về "persistence layer". Như bạn đã biết, kiến trúc ứng dụng dụng phần mềm có nhiều loại. Có loại chỉ chạy trên một máy là đủ. Có chương trình muốn chạy được phải kết nối sang một máy khác (client-server). Một máy đóng vai trò như là người yêu cầu (client) và máy khác đóng vai trò kẻ phục vụ (server). Người ta sử dụng thuật ngữ "tier" để chỉ mỗi loại máy có vai trò khác nhau đó. Tier client để chỉ các máy đóng vai trò client và tier server để chỉ các máy đóng vai trò server. Và loại ứng dụng client-server là ứng dụng 2-tier (vì chỉ có 2 tier thôi). Tương tự như vậy theo sự phát triển như vũ bão của công nghệ phần cứng và phần mềm cộng với nhu cầu của các người dùng, doanh nghiệp và xã hội ngày càng lớn, chúng ta thấy có các ứng dụng 3-tier và n-tier để khắc phục nhược điểm của ứng dụng 2-tier và nhằm tăng sức mạnh xử lý cho ứng dụng. "Layer" là một khái niệm khác với "tier". Và chúng ta đừng lầm lẫn giữa "tier" và "layer". Tier thường gắn với phần cứng máy tính (về mặt physically) còn "layer" thì dính với vấn đề cách thức tổ chức bên trong của ứng dụng. Việc phân chia tier là "trong suốt" (transparent) đối với ứng dụng xét về mặt luận lý (logically). Điều này có nghĩa là khi chúng ta phát triển một ứng dụng, chúng ta không bận tâm đến các thành phần (component) sẽ triển khai (deploy) ra sao mà chỉ chú ý là chúng ta sẽ tổ chức ứng dụng thành những layer như thế nào. Ví dụ, một ứng dụng có thể chia làm 3 phần như sau: phần giao diện người dùng (UI layer), phần xử lý nghiệp vụ (business layer) và phần chứa dữ liệu (data layer). Cụ thể ra, business layer sẽ có thể chia nhỏ thành 2 layer con là business logic layer (chỉ quan tâm đến ý nghĩa của các nghiệp vụ, các tính toán mang nhằm thoả mãn yêu cầu của người dùng) và persitence layer. Persistence layer chịu trách nhiệm giao tiếp với data layer (thường là một hệ quản trị cơ sở dữ liệu quan 1/8

hệ - Relational DBMS). Persistence layer sẽ đảm nhiệm các nhiệm vụ mở kết nối, truy xuất và lưu trữ dữ liệu vào các Relational DBMS. Việc phân chia như vậy có lợi ích là công việc sẽ được tách bạch ra. Người nào lo thiết kế và xử lý UI thì chỉ việc chú tâm vào công việc đó. Người lo business layer thì chỉ cần tập trung vào thiết kế và phát triển làm sao thoả mãn các requirement của khách hàng mà không phải chú tâm đến các khía cạnh hiện thực bên dưới thông thường liên quan đến technical issues. Còn người lo persistence layer thì chỉ việc chú trọng đến các khía cạnh hiện thực và giải quyết các technical issues mà thôi. Cũng như sẽ có những DBA (DB Administrators) lo việc cài đặt và tạo các objects trong các relational database. Như vậy, bạn đã hiểu ứng dụng được chia một cách logically thành các "layer" và bạn cũng hiểu được là persistence layer là một layer có nhiệm vụ kết nối Relational DBMSs và truy xuất, thao tác trên dữ liệu đã được lưu trữ cũng như lưu trữ dữ liệu mới vào chúng. Hibernate framework là một framework cho persistence layer. Và bạn có thể thấy rằng nhờ có Hibernate framework mà giờ đây khi bạn phát triển một ứng dụng bạn chỉ còn chú tâm vào những layer khác mà không phải bận tâm nhiều về persistence layer nữa. Tương tự như vậy nếu bạn có một UI framework, bạn sẽ không phải bận tâm nhiều về UI layer nữa. Và xét đến cùng, việc bạn quan tâm duy nhất là business logic layer của bạn có đáp ứng yêu cầu của khách hàng không hay thôi. Và đây là thông tin về Hibernate framework từ website chính thức của Hibernate: Hibernate là một dịch vụ lưu trữ và truy vấn dữ liệu quan hệ mạnh mẽ và nhanh. Hibernate giúp bạn phát triển các class dùng để lưu trữ dữ liệu theo cách thức rất là hướng đối tượng: association, inheritance, polymorphism, composition và collections. Hibernate cho phép bạn thực hiện các câu truy vấn dữ liệu bằng cách sử dụng ngôn ngữ SQL mở rộng của Hibernate (HQL) hoặc là ngôn ngữ SQL nguyên thuỷ cũng như là sử dụng các API. Không giống như các persistence layer khác, Hibernate không ẩn đi sức mạnh của ngôn ngữ SQL khỏi bạn mà Hibernate còn đảm bảo cho bạn việc bạn đầu tư vào công nghệ và tri thức cơ sở dữ liệu quan hệ là luôn luôn chính xác. Và điều quan trọng hơn nữa là Hibernate được license theo LGPL (Lesser GNU Public License). Theo đó, bạn có thể thoải mái sử dụng Hibernate trong các dự án open source hoặc các dự án thương mại (commercial). Hibernate là một dự án open source chuyên nghiệp và là một thành phần cốt tuỷ của bộ sản phẩm JBoss Enterprise Middleware System (JEMS). JBoss, như chúng ta đã biết là một đơn vị của Red Hat, chuyên cung cấp các dịch vụ 24x7 về hỗ trợ chuyên nghiệp, tư vấn và huyấn luyện sẵn sàng hỗ trợ bạn trong việc dùng Hibernate. 2/8

Xây dựng ứng dụng với Hibernate. Tier và Layer : tier thường được gắn với phần cứng về mặt vật lý (physical) còn layer thì dính đến vấn đề cách thức tổ chức bên trong của ứng dụng. Việc phân chia tier là trong suốt (transparent) đối với ứng dụng về mặt luận lý (logical). Điều này có nghĩa là khi ta phát triển một ứng dụng, chúng ta không bận tâm đến các thành phần (component) sẽ triển khai (deploy) ra sao mà chỉ chú ý là chúng ta sẽ tổ chức ứng dụng thành những layer như thế nào. Một ứng dụng có thể được chia làm 3 phần như sau: giao diện người dùng (presentation layer), phần xử lý nghiệp vụ (business layer) và phần chứa dữ liệu (data layer). Cụ thể ra, business layer có thể được chia nhỏ thành hai layer con là business logic layer (các tính toán nhằm thỏa mãn yêu cầu người dùng) và persistence layer. Persistence layer chịu trách nhiệm giao tiếp với data layer (thường là một hệ quản trị cơ sở dữ liệu quan hệ - Relational DBMS). Persistence sẽ đảm nhiệm các nhiệm vụ mở kết nối, truy xuất và lưu trữ dữ liệu vào các Relational DBMS. Kiến trúc của Hibernate 3/8

Dự án Hibernate Hibernate là một dự án open source chuyên nghiệp và là một thành phần cốt tuỷ của bộ sản phẩm JBoss Enterprise Middleware System (JEMS). JBoss, như chúng ta đã biết là một đơn vị của Red Hat, chuyên cung cấp các dịch vụ 24x7 về hỗ trợ chuyên nghiệp, tư vấn và huấn luyện sẵn sàng hỗ trợ bạn trong việc dùng Hibernate. Các thành phần của Hibernate project - Hibernate Core: Cung cấp các chức năng cơ bản của một persistence layer cho các ứng dụng Java với các APIs và hỗ trợ XML mapping metadata. - Hibernate Annotations: Các map class với JDK 5.0 annotations, bao gồm Hibernate Validator. - Hibernate EntityManager: Sử dụng EJB 3.0 EntityManager API trong JSE hoặc với bất kỳ JEE server nào. - Hibernate Tools: Các tool tích hợp với Eclipse và Ant dùng cho việc sinh ra các persistence object từ một schema có sẵn trong database (reverse-engineering) và từ các file hbm sinh ra các class java để hiện thực các persistence object, rồi Hibernate tự tạo các object trong 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 và EJB 3.0 với sự hỗ trợ của Hibernate. Seam hiện rất mới và tỏ ra rất mạnh để phát triển các ứng dụng Web 2.0. Nó tích hợp đầy đủ tất cả các công nghệ "hot" nhất hiện nay. Thư viện: bạn có thể tìm ở lib của Hibernate Core 3.2.6 GA antlr.jarcglib.jarasm.jarasm-attrs.jarscommons-collections.jarcommonslogging.jarhibernate3.jarjta.jardom4j.jarlog4j.jarhsqldb.jarjtds-1.2.jarservlet-2.3.1.jar Các bạn có thể vào địa chỉ: www.hibernate.org để download Hibernate Core 3.2.6 GA Cấu hình Hibernate Hibernate được cấu hình theo hai bước: - Cấu hình service bao gồm: tham số kết nối CSDL, caching và tập các lớp persistent. - Cung cấp cho Hibernate các thông tin về các lớp được persist. 4/8

Để giải quyết hai bước theo yêu cầu của Hibernate, chúng ta sẽ thảo luận từng vấn đề sau: - Tạo file cấu hình hibernate.cfg.xml. - Xây dựng các file định nghĩa ánh xạ để cung cấp cho Hibetnate các thông tin về các lớp persistent. - Các lớp được sử dụng để persist và rút trích các lớp. - Cấu hình nâng cao bao gồm: object caching và quản lý giao dịch. Cấu hình cơ bản Hibernate cung cấp 2 phương pháp cấu hình: file properties theo chuẩn của Java được gọi là hibernate.properties và file có định dạng XML gọi là hibernate.cfg.xml. Chúng ta sẽ sử dụng file cấu hình XML để cấu hình các service của Hibernate. Nếu cả hai file hibernate.properties và hibernate.cfg.xml được tìm thấy trong classpath của ứng dụng thì hibernate.cfg.xml sẽ override lên các thiết lập được tìm thấy trong hibernate.properties. Trước khi cấu hình Hibernate, đầu tiên bạn nên xác định service giữ kết nối đến CSDL như thế nào. Kết nối đến CSDL có thể được cung cấp bởi Hibernate hoặc từ JNDI DataSource. Một phương pháp thứ ba là kết nối JDBC được cung cấp bởi người dùng. Sử dụng kết nối JDBC được quản lý bởi Hibernate: Sau đây là file cấu hình mẫu sử dụng loại kết nối JDBC được quản lý bởi Hibernate: 1. <?xml version="1.0"?> 2. <!DOCTYPE hibernate-configuration PUBLIC 3. "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 4. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 5. <hibernate-configuration> 6. <session-factory> 7. <property name="connection.username">uid</property> 8. <property name="connection.password">pwd</property> 9. <property name="connection.url">jdbc:mysql://localhost/db</property> 10. <property name="connection.driver_class">com.mysql.jdbc.driver</property> 11. <property name="dialect">org.hibernate.dialect.mysqldialect</property> 12. <mapping resource="com/manning/hq/ch03/event.hbm.xml"/> 13. <mapping resource="com/manning/hq/ch03/location.hbm.xml"/> 14. <mapping resource="com/manning/hq/ch03/speaker.hbm.xml"/> 15. <mapping resource="com/manning/hq/ch03/attendee.hbm.xml"/> 5/8

16. </session-factory> 17. </hibernate-configuration> Để sử dụng JDBC connection được cung cấp bởi Hibernate, file cấu hình yêu cầu 5 thuộc tính: connection.driver_class, connection.url, connection.username, connection.password, dialect. Thuộc tính dialect bảo cho Hibernate biết SQL dialect nào được sử dụng để thao tác. Nó được sử dụng để đảm bảo các câu Hibernate Query Language (HQL) được chuyển đổi đúng với SQL dialect dưới CSDL. Hibernate cũng cần biết vị trí (đường dẫn tương đối so với classpath của ứng dụng) và tên của các mapping file - mô tả persistent classs. Sử dụng JNDI DataSource Để sử dụng Hibernate với kết nối CSDL được cung cấp bởi JNDI DataSource, bạn cần thay đổi một vài chỗ trong file cấu hình như sau: 1. <?xml version="1.0"?> 2. <!DOCTYPE hibernate-configuration PUBLIC 3. "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 4. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 5. <hibernate-configuration> 6. <session-factory name="java:comp/env/hibernate/sessionfactory"> 7. <property name="connection.datasource">jdbc/mydatasource</property> 8. <property name="dialect">org.hibernate.dialect.mysqldialect</property> 9. <mapping resource="com/manning/hq/ch03/event.hbm.xml"/> 10. <mapping resource="com/manning/hq/ch03/location.hbm.xml"/> 11. <mapping resource="com/manning/hq/ch03/speaker.hbm.xml"/> 12. <mapping resource="com/manning/hq/ch03/attendee.hbm.xml"/> 13. </session-factory> 14. </hibernate-configuration> Bạn chỉ sử dụng loại cấu hình này khi sử dụng Hibernate với application server: Jboss, WebSphere...Thuộc tính connection.datasource phải có cùng giá trị với tên của JNDI DataSource trong cấu hình application server. Tạo định nghĩa ánh xạ Các định nghĩa ánh xạ được gọi là mapping document, được sử dụng để cung cấp cho Hibernate các thông tin để lưu trữ các đối tượng đến CSDL quan hệ. Các file ánh xạ cung cấp các đặc tính như tạo lược đồ CSDL từ tập hợp các file ánh xạ. 6/8

Các định nghĩa ánh xạ cho các đối tượng persistent có thể được lưu chung với nhau trong cùng một file. Phương pháp thích hợp hơn là định nghĩa cho mỗi đối tượng được lưu trong một file. Quy ước đặt tên cho các file ánh xạ là sử dụng tên của persistent class với phần mở rộng hbm.xml. Ví dụ: file ánh xạ cho lớp Event có tên là Event.hbm.xml. 1. <?xml version="1.0"?> 2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/ Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernatemapping-3.0.dtd"> 3. <hibernate-mapping package="com.manning.hq.ch03"> 4. <class name="event" table="events"> 5. <id name="id" column="uid" type="long" unsaved-value="null"> 6. <generator class="native"/> 7. </id> 8. <property name="name" type="string" length="100"/> 9. <property name="startdate" column="start_date" type="date"/> 10. <property name="duration" type="integer"/> 11. <many-to-one name="location" column="location_id" class="location"/> 12. <set name="speakers"> 13. <key column="event_id"/> 14. <one-to-many class="speaker"/> 15. </set> 16. <set name="attendees"> 17. <key column="event_id"/> 18. <one-to-many class="attendee"/> 19. </set> 20. </class> 21. </hibernate-mapping> File ánh xạ bắt đầu bằng hibernate-mapping element. Thuộc tính package thiết lập package mặc định cho lớp. Thuộc tính set, bạn cần cung cấp tên của lớp persistent khác như: Speaker và Attendee. Thẻ class bắt đầu định nghĩa ánh xạ cho lớp persistent xác định, thuộc tính table là tên của quan hệ (relational) được sử dụng để lưu các đối tượng. Element <id> mô tả khóa chính của persistent class - tự động được phát sinh. Thuộc tính name định nghĩa các thuộc tính của persistent class sẽ được sử dụng để lưu giá trị của khóa chính. 7/8

Element <generate> được sử dụng để xác định tên của lớp phát sinh khóa chính cho record mới khi lưu nó. Ở đây chúng ta sử dụng lớp native. Sau đây là danh sách các generator phổ biến được sử dụng trong Hibernate: - increment - phát sinh id (loại long, short hoặc int) là duy nhất chỉ khi không có tiến trình khác chèn dữ liệu vào cùng bảng. - identity - nó hỗ trợ cột id trong DB2, MySQL, MS SQL Server, Sybase và HypersonicSQL. Id được trả về có loại long, short hoặc int. - sequence - phát sinh sequence sử dụng một sequence trong DB2, PostgreSQL, Oracle, SAP DB, McKoi hoặc Interbase. Id được trả về có loại long, short hoặc int. - hilo - Bộ phát sinh hilo sử dụng thuật toán hilo để phát sinh id. - native - Nó sẽ chọn id, sequence hoặc hilo phụ thuộc vào khả năng CSDL phía dưới.thuộc tính unsaved-value mô tả giá trị của thuộc tính id cho các thể hiện transient của lớp đó. 8/8