Thứ Tư, 1 tháng 4, 2009

Java : Mapping DB tour with Middlegen and Hibernate (Review Project Part 1)

Hôm nay, nhận được một yêu cầu trời giáng choáng váng cả tiếng. Tui phải tìm hỉu mã nguồn một cái dự án Java tổng hợp bao gồm Hibernate, Spring, Strut, Mina 2.0, + linh tinh những thứ mà tui lờ mờ như tờ giấy trắng ngoại trừ ngôn ngữ Java basic.
Để bắt đầu, tui chọn sử dụng MyEclipse để đỡ mắc công cài các plugin lằng nhằng cho mấy cái framework khủng, trong khi thứ tui iu thích nhẹ nhàng lại là Eclipse đã từng cắn xé Javacard.
Quả thật là sau khi cài đặt MyEclipse vào, tui nhận thấy hầu như các framework mình cần cho thực tế đều có sẵn (thiệt đỡ quá). Đối với dự án tui tìm hỉu chỉ cần thêm một cái MySQL connector và vài cục jar log4net, .. là xong, he he

Khởi động ME (MyEclipse), theo thói quen tui tạo luôn một project rỗng trơn không gì cả, xài lại một cái ant builder.xml có sẵn đâu đó và sửa lại mỗi properties name.

Bắt đầu với Hibernate và Middelgen:
- Đọc lòng vòng thì tui biết, Hibernate chỉ đơn thuần là để "mapping" với một database ở đâu đó. Lợi ích của dùng Hibernate là để đơn giản hóa và chuẩn hóa thao tác với cơ sở dữ liệu, biết nhiêu đó là đủ rùi.
- Tuy nhiên, để có thể hoàn thành việc "mapping" này thì cần phải có các thứ linh tinh khác như sau:
+ hibernate mapping files: các file cấu hình định nghĩa các bảng trong database. Thường mỗi bảng ta lại định nghĩa một file dạng ".hbm.xml"
+ hibernate configuration file: một file cấu hình để định vị đối tượng database bao gồm : connection string, database connection provider, username, password ...
+ Implementation files: các file hoặc gọi là các lớp thể hiện của các bảng trong database.
Chài ai, tìm hiểu đến đây, tui nghĩ hỏng lẽ mình thay cái thao tác Connection rồi query xưa cũ lòng thòng bằng một đống file ngồi gõ chít bỏ. Tính sơ sơ ra mỗi table có thao thác là phải tạo ra 1 file mapping và 1 file đối tượng, Hibernate thiệt là khùng hết sức !! T_T !! Nhưng việc làm thủ công đó là trước đây, các anh các chị trước đây đã chịu khổ và sản sinh ra công cụ Middlegen...
- Middlegen được ứng dụng để truy vấn đến database và xuất ra các table mapping file
một cách tự động và chuẩn xác. Đồng thời Middlegen cũng tự động phát sinh java code các lớp đối tượng table tương ứng, nhưng tui được khuyến cáo là không nên dùng những lớp code này. Tìm hiểu tới đây là đủ nhức mắt ngứa tay rồi, thôi quay lại cái bàn phím thôi.
- Để sử dụng Middlegen, ta tạo một middlegen build file (xml) bằng cách right click vào Project -> New -> Other -> Middlegen -> Middlegen Build File. Click next đến của sổ "Configure Database and Table", ở đây phải cung cấp các thông số bắt buộc để xác định database như: xác đinh gói JDBC, Database URI, Username, Password như hình dưới:
sau đó click "Finish" cửa sổ Middlegen Generator sẽ mở thể hiện mối quan hệ các bảng trong cơ sở dữ liệu, click "Generate" và sau đó đóng cửa sổ. Kiểm tra lại thư mục "src" của project sẽ thấy package các file Middlegen vừa xuất
tới đây tui được các đàn anh mách bảo là xóa hết các class object đi, chỉ để lại các mapping file và right click -> Hibernate Synchronizer -> Synchronize Files, kết quả là được 4 package như sau:
tạm thời tui chỉ hiểu 4 package này chứa các lớp đối tượng thể hiện chính xác các bảng dữ liệu và mối quan hệ bảng ở database. Tới đây, dường như nhiệm vụ của Hibernate và Middlegen đã hoàn thành.

Sau đó còn sử dụng tiếp String, Mina 2.0, ... hồi sau sẽ rõ !!!


Không có nhận xét nào:

Đăng nhận xét