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 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. Hibernate là một giải pháp ORM cho Java , một dự án open source chuyên nghiệp, một framework cho pesistence layer, 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ụ 247 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… Hibernate ánh xạ các lớp Java với các bảng trong cơ sở dữ liệu và ánh xạ giữa các kiểu dữ liệu trong Java với các kiểu dữ liệu SQL. Hibernate giúp giảm thiểu các công việc liên quan đến nhiệm vụ xử lý dữ liệu thông thường trong phát triển ứng dụng. Hibernate nằm giữa các đối tượng Java truyền thống và cơ sở dữ liệu để giải quyết tất cả các công việc trong lớp persistence dựa trên mô hình kỹ thuật ORM. Mô hình ORMHibernate Ưu điểm của Hibernate: – Hibernate chịu trách nhiệm ánh xạ giữa các lớp Java đến các bảng trong CSDL dùng các file XML mà không cần phải viết bất kỳ dòng code nào. – Cung cấp các API đơn giản để lưu trữ, truy xuất trực tiếp các đối tượng Java và CSDL. – Nếu có bất kỳ thay đổi nào trong CSDL thì chỉ cần thay đổi file XML. – Cung cấp đầy đủ các tiện ích, tính năng truy vấn dữ liệu đơn giản, hiệu quả – Thao tác, xử lý được các quan hệ phức tạp của các đối tượng trong CSDL. – Giảm thiểu sự truy cập đến CSDL đến mức thấp nhất nhờ có chiến lược tìm, nạp thông minh. Hibernate hỗ trợ hầu hết các RDBMS quan trọng như: HSQL Database Engine, DB2NT, MySQL, PostgreSQL, Oracle, Microsoft SQL Server Database,… Hibernate hỗ trợ một số công nghệ sau: XDoclet Spring, J2EE, Eclipse plugins, Maven
Trang 1
Trường Đại Học Công Nghiệp Hà Nội
Khoa Công Nghệ Thông Tin
BÁO CÁO BÀI TẬP LỚN MÔN
Lập trình với Hibernate
Giáo viên hướng dẫn: Ths.Hoàng Quang Huy
Đề tài :Xây dựng website tư vấn phong thủy Lớp: KĨ THUẬT PHẦN MỀM – CLC – K9
Nhóm 7
Trang 2Chương 1: Tổng quan về Hibernate
1.1 Giới thiệu về Hibernate
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 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.
Hibernate là một giải pháp ORM cho Java , một dự án open source chuyên nghiệp, một framework cho pesistence layer, 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ụ 24/7 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…
Hibernate ánh xạ các lớp Java với các bảng trong cơ sở dữ liệu và ánh xạ giữa các kiểu dữ liệu trong Java với các kiểu dữ liệu SQL Hibernate giúp giảm thiểu các công việc liên quan đến nhiệm vụ xử lý dữ liệu thông thường trong phát triển ứng dụng.
Hibernate nằm giữa các đối tượng Java truyền thống và cơ sở dữ liệu để giải quyết tất cả các công việc trong lớp persistence dựa trên mô hình kỹ thuật ORM.
Mô hình ORM/Hibernate
2
Trang 3Ưu điểm của Hibernate:
– Hibernate chịu trách nhiệm ánh xạ giữa các lớp Java đến các bảng trong CSDL dùng các file XML mà không cần phải viết bất kỳ dòng code nào.
– Cung cấp các API đơn giản để lưu trữ, truy xuất trực tiếp các đối tượng Java và CSDL – Nếu có bất kỳ thay đổi nào trong CSDL thì chỉ cần thay đổi file XML.
– Cung cấp đầy đủ các tiện ích, tính năng truy vấn dữ liệu đơn giản, hiệu quả
– Thao tác, xử lý được các quan hệ phức tạp của các đối tượng trong CSDL.
– Giảm thiểu sự truy cập đến CSDL đến mức thấp nhất nhờ có chiến lược tìm, nạp thông minh.
Hibernate hỗ trợ hầu hết các RDBMS quan trọng như:
HSQL Database Engine, DB2/NT, MySQL, PostgreSQL, Oracle, Microsoft SQL Server Database,…
Hibernate hỗ trợ một số công nghệ sau:
XDoclet Spring, J2EE, Eclipse plug-ins, Maven
1.2 Kiến trúc Hibernate
Hibernate sử dụng các file cấu hình để cung cấp các dịch vụ và đối tượng persistence cho ứng dụng.
Trang 4Kiến trúc của Hibernate
Hibernate dùng rất nhiều loại Java API có sẵn như JDBC, Java Transaction API (JTA) và Java Naming and Directory Interface (JNDI) JDBC cung cấp các chức năng làm việc với CSDL quan hệ ở mức thô sơ, trừu tượng, cho phép bất kỳ một CSDL nào dùng JDBC driver đều được hỗ trợ bởi Hibernate JNDI và JTA cho phép hibernate được tích hợp với các server ứng dụng J2EE.
1.3 Cấu hình Hibernate
+ Tạo cơ sở dữ liệu trên MySQL từ sơ đồ lớp mà chúng ta đã thiết kế trước
+ Khởi tạo 1 project javaweb trong NetBeans
+Khai báo thư viên cho project
Rồi chọn đến file “mysql-connector-java-5.1.6-bin.jar”
4
Trang 5Nếu chưa có thì có thể tải theo link:
bin.jar.zip
http://www.java2s.com/Code/JarDownload/mysql/mysql-connector-java-5.1.6-+Tạo pakage config rồi chuột phải vào pakage đó chọn new /other
Chọn Hibernate /Hibernate Configuration Wizard chọn Next
Trang 7Tại đây:
Nếu cơ sở dữ liệu của bạn chạy trên máy của bạn thì Host điền vào là localhost Port: mặc định là 3306 trên MySQL
Database: là tên database trong MySQL của bạn
User Name : mặc định là root nếu trong MySQL bạn làm trên user: root
Password: là mật khẩu trong MySQL của bạn
JDBC URL: đường dẫn đến csdl của bạn
Sau đó kiểm tra kết nối kích vào Test Connection nếu hiện thông báo Connection Succeeded thì kết nối thành công Chọn Next/Next
Cấu hình file Hibernate.fcg.xml
Trang 8+Tạo file Reverse
8
Trang 9Sau chọn bảng và add
Trang 10Chọn finish
+ Tạo pakage anhxa chưa ánh xạ từ các bảng trong csdl thành các lớp trong java từ pagake này tạo file mapping
10
Trang 11Sau đó finish
+ Tạo pakage util trong đó tạo file Hibernateutil.java
Trang 12Để xem đã cấu hình thành công không Ta tạo pakage model trong đó tạo class vatphammodel để lấy thông tin từ csdl ra
12
Trang 13+ Tạo pakage với class main
Chương 2 Giới thiệu về hệ thống
2.1 Khái quát chung
Sống và làm việc hợp Phong Thuỷ tức là phương hướng, bố cục phải phù hợp với tâm sinh lý con người làm sao cho không khí điều hoà, môi trường trong sạch để thu được sinh khí của trời đất giúp con người tràn đầy sinh lực, mạnh khỏe, sống
Trang 14Lĩnh vực hoạt động
1 Đối với nhà ở và gia đình (nhà chia lô, chung cư, biệt thự,…)
Tư vấn chọn đất cho người đi mua nhà, nghiên cứu cải tạo thế đất sẵn
có dựa vào tuổi của chủ nhà, các thành viên sống trong nhà, sao cho tốt nhất theo quan niệm Phong thuỷ.
Bố trí cửa chính, vị trí các phòng ốc và vị trí cửa đi, cửa sổ của từng phòng trong tổng thể nhà sao cho hợp lý nhất.
Bài trí nội thất theo Phong thủy: Phòng khách (bàn ghế, tủ), Phòng Bếp (bàn ăn, tủ bếp, bếp nấu, chậu rửa, tủ lạnh…), Phòng ngủ (giường, tủ quần
áo, bàn phấn…), Phòng thờ (vị trí bàn thờ, hướng Ban thờ), Khu phụ (chậu rửa, bồn tắm, bệ xí, gương soi), …
Nghiên cứu và bố trí màu sắc của sơn tường, màu thảm, màu rèm sao cho hợp lý nhất với mỗi người ở trong từng phòng theo nhu cầu về thẩm mỹ,
sở thích và quy luật ngũ hành tương sinh, tương khắc của Phong Thuỷ.
Sử dụng thước Lỗ Ban để định các kích thước quan trọng nhất trong một ngôi nhà (kích thước cổng ra vào, cửa chính, cửa phòng ngủ, kích thước ban thờ …) sao cho hợp lý theo tuổi của người sử dụng.
Tư vấn về ngày giờ, cách thức tiến hành động thổ, xây cất, sửa chữa, nhập trạch…dựa theo tuổi của gia chủ.
Tư vấn các vấn đề khác theo yêu cầu của khách hàng, trong quá trình
sử dụng dịch vụ và quá trình sau khi sử dụng.
14
Trang 152 Đối với khu công nghiệp, trụ sở công ty, cơ sở sản xuất, văn
phòng, công sở, cửa hàng…
Tư vấn lựa chọn khu đất xây dựng nhà xưởng, cách bố trí các khu vực sản xuất, khu vực hành chính, sinh hoạt…
Thiết kế hướng cửa, vị trí các phòng ban (phòng giám đốc, hành chính,
kế toán, maketing, khu vực lễ tân….) sao cho thuận tiện, hợp lý và phù hợp với chức năng của từng bộ phận.
Thiết kế nội thất văn phòng (bàn làm việc, điều hòa, két bạc, vị trí ban thờ thần tài…)
Tư vấn về vị trí ngồi, hướng ngồi cho từng thành viên theo vai trò và nhiệm vụ cụ thể sao cho phát huy tối đa được năng lực của mỗi người.
Bố trí những vật khí trấn yểm để tăng nguồn tài lộc và hạn chế rủi ro trong hoạt động sản xuất kinh doanh.
Trang 17Chương 3: Phân tích và thiết kế logic
3.1 Phân tích nghiệp vụ
3.1.1 Mô tả yêu cầu hệ thống.
Hệ thống phải được xây dựng trên nền tảng: JavaWeb, sử dụng công nghệ hibernate và hệ quản trị CSDL MySQL để giải quyết vấn đề truy xuất dữ liệu.
Giao diện thân thiện, dễ sử dụng, phối màu phù hợp với nghiệp vụ công việc.
Các chức năng phải có sự hoàn thiện cao, tốc độ truy cập nhanh chóng.
Đây là 1 website tư vấn miễn phí nhưng chất lượng tư vấn vẫn phải đảm bảo
độ chính xác và tin cậy.
Đáp ứng đầy đủ những thông tin yêu cầu thiết yếu của khách hàng.
Xây dựng một website quản trị hệ thống để đáp ứng như cầu truy suất sửa chữa cơ sở dữ liệu trong hệ thống Đảm bảo đầy đủ các chức năng và các nhu cầu cần thiết của người quản trị.
3.1.2 Nghiệp vụ
Khách hàng tra cứu phong thủy có thế tra cứu theo các bài viết hoặc tra cứu theo thông tin của khách hàng.
Trang 18Th1:User vào trang chủ chọn bài viết
Hệ thống hiển thị bài viết Th2: User vào chuyên mục, chọn
chuyên mục
Từ chuyên mục hệ thống hiển thị các bài viết của chuyên mục đó
User chọn tra cứu
Hệ thống hiện form tra cứu User nhập thông tin cần nhập
Từ thông tin nhập vào hệ thống hiển
18
Trang 19thị thông tin phong thủy Kết thúc ca sử dụng
3.2.2.3 Ca sử dụng: Trao đổi với admin
Tác nhân: user
Mô tả: Khi cần trao đổi hoặc cần các kinh nghiệm kiến thức của người biết về phong thủy, người dùng có thể gửi các câu hỏi về cho admin, admin sẽ trả lời và gửi lại vào gmail cho người dùng
gửi cho admin
Hệ thống lưu lại và gửi về trang quản trị cho admin
Admin nhận câu hỏi trả lời và gửi về
gmail cho người dùng
3.3 Sơ đồ lớp
Trang 203.4 Sơ đồ trình tự
3.4.1 Trình tự tra cứu theo bài viết
20
Trang 213.4.2 Trình tự tra cứu theo thông tin
Trang 223.4.3 Trình tự gửi thắc mắc đến quản trị
22
Trang 233.4.4 Trình tự giải đáp thắc mắc
Trang 243.5 Sơ đồ hoạt động
3.5.1 Hoạt động tra cứu theo bài viết
3.5.2 Hoạt động tra cứu theo thông tin
24
Trang 253.5.3 Hoạt động gửi thắc mắc
Trang 263.5.4 Hoạt động trả lời thắc mắc
26
Trang 28Chương 4: Thiết kế giao diện
4 Phân tích thiết kế nguyên mẫu giao diện.
4.1 Phân tích thiết kế giao diện phía người dùng.
4.1.1 Trang giao diện chính Dàng cho người dùng.
Mục Lục
Chương 1: Tổng quan về Hibernate 2
1.1 Giới thiệu về Hibernate 2
1.2 Kiến trúc Hibernate 3
1.3 Cấu hình Hibernate 4
Chương 2 Giới thiệu về hệ thống 13
2.1 Khái quát chung 13
Chương 3: Phân tích và thiết kế logic 17
3.1 Phân tích nghiệp vụ 17
3.1.1 Mô tả yêu cầu hệ thống 17
3.1.2 Nghiệp vụ 17
Khách hàng tra cứu phong thủy có thế tra cứu theo các bài viết hoặc tra cứu theo thông tin của khách hàng 17
Khi khách hàng có các thắc mắc thì có thế để lại câu hỏi và gmail cho admin, admin sẽ trả lời các câu hỏi và gửi về gmail của khách hàng 17
3.2 Sơ đồ Usecase 17
3.2.1 Sơ đồ 17
3.2.2Đặc tả case sử dụng: 18
3.2.2.1 Ca sử dụng: Tra cứu phong thủy theo bài viết 18
3.2.2.2 Ca sử dụng: Tra cứu theo thông tin user 18
3.2.2.3 Ca sử dụng: Trao đổi với admin 19
28
Trang 293.3 Sơ đồ lớp 19
3.4 Sơ đồ trình tự 20
3.4.1 Trình tự tra cứu theo bài viết 20
21
3.4.2 Trình tự tra cứu theo thông tin 21
22
3.4.3 Trình tự gửi thắc mắc đến quản trị 22
23
3.4.4 Trình tự giải đáp thắc mắc 23
23
3.5 Sơ đồ hoạt động 24
3.5.1 Hoạt động tra cứu theo bài viết 24
3.5.2 Hoạt động tra cứu theo thông tin 24
3.5.3 Hoạt động gửi thắc mắc 25
26
3.5.4 Hoạt động trả lời thắc mắc 26
Chương 4: Thiết kế giao diện 28
4 Phân tích thiết kế nguyên mẫu giao diện 28
4.1 Phân tích thiết kế giao diện phía người dùng 28
4.1.1 Trang giao diện chính Dàng cho người dùng 28