1. Trang chủ
  2. » Luận Văn - Báo Cáo

xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate

85 913 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 85
Dung lượng 3,24 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC XÂY DỰNG PHẦN MỀM QUẢN LÝ NHÀ HÀNG VỚI BỘ CÔNG CỤ JSF, PRIMEFACES VÀ HIBERNATE Sinh viên thực hiện: Cán bộ hướng dẫn: Có thể tìm hiểu luận văn tại: - Trun

Trang 1

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

XÂY DỰNG PHẦN MỀM QUẢN LÝ NHÀ HÀNG VỚI BỘ CÔNG CỤ JSF,

PRIMEFACES VÀ HIBERNATE

Sinh viên thực hiện : Cán bộ hướng dẫn:

Cô Thanh Thiện TS Nguyễn Hữu Hòa

MSSV: 1117885

Cần Thơ, 2015

TRƯỜNG ĐẠI HỌC CẦN THƠ

KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

BỘ MÔN TIN HỌC ỨNG DỤNG

- -

Trang 2

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

XÂY DỰNG PHẦN MỀM QUẢN LÝ NHÀ HÀNG VỚI BỘ CÔNG CỤ JSF,

PRIMEFACES VÀ HIBERNATE

Sinh viên thực hiện: Cán bộ hướng dẫn:

Có thể tìm hiểu luận văn tại:

- Trung tâm Học liệu, Trường Đại học Cần Thơ

- Website: http://www.lrc.ctu.edu.vn/

Cần Thơ, 2015

TRƯỜNG ĐẠI HỌC CẦN THƠ

KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

BỘ MÔN TIN HỌC ỨNG DỤNG

- -

Luận văn được bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn

Tin học Ứng dụng Khoa Công Nghệ Thông Tin & Truyền Thông, Trường Đại học Cần Thơ vào ngày 15 tháng 05 năm 2015

Trang 3

1

LỜI CẢM ƠN

Bốn năm khoảng thời gian của thời sinh viên đã sắp trôi qua, khóa luận tốt nghiệp

là một công trình nghiên cứu tâm quyết, không chỉ riêng em mà đối với các bạn sinh viên khác cũng thế khóa luận là nơi chúng em thể hiện đầy đủ nhất những gì mà chúng

em đã được học trong khoảng thời gian là sinh viên

Trong suốt quá trình làm bài em luôn nhận được nhiều sự giúp đỡ của của nhiều người là người quen, là bạn, và cả những người chưa hề quen biết, đó là động lực rất lớn giúp em vượt qua các trở ngại các khó khăn chủ quan và khách quan trong quá trình làm bài

Em xin gửi lời cảm ơn đến thầy Nguyễn Hữu Hòa là giảng viên hướng dẫn bài khóa luận của em, em chân thành cảm ơn những góp ý chân thành của thầy giúp bài làm của em hoàn chỉnh hơn Em cũng xin gửi lời cảm ơn đến các thầy cô trong Bộ Môn Tin Học Ứng Dụng, các thầy cô trường ĐHCT đã dạy dỗ hướng dẫn em trong suốt thời gian còn là sinh viên, để em có những kiến thức nhất định cho bài luận cũng như công việc sau này của em

Và em cũng chân thành cảm ơn những người thân luôn bên cạnh động viên, lo lắng cũng như đã hỗ trợ hết mình cho em Con xin cảm ơn Cha mẹ đã luôn ủng hộ con trong suốt thời gian qua, cũng như những người bạn thân yêu luôn bên cạnh động viên

và gửi những lời chúc tốt đẹp

Luận văn là công trình tâm huyết của em, nhưng do hạn chế về kiến thức lẫn kỹ năng nên có những điểm chưa hoàn thiện, em rất mong nhận được sư góp ý từ phía thầy cô, các anh chị và các bạn cho bài luận thêm đầy đủ

Cuối lời em chúc mọi người sức khỏe, chúc thầy cô thành công trên con đường giảng dạy của mình./

Cần Thơ, ngày … tháng … năm 2015

Sinh viên

Cô Thanh Thiện

Trang 4

2

MỤC LỤC

Trang

Lời cảm ơn 1

Mục lục 2

Danh mục hình 4

Danh mục bảng 6

Danh mục ký hiệu và viết tắt 7

Tóm tắt 8

Abstract 9

Chương 1 Tổng quan 10

1.1 Đặt vấn đề 10

1.2 Phạm vi của đề tài 10

1.3 Phương pháp nghiên cứu 11

1.4 Nội dung chính của luận văn 12

Chương 2 Cơ sở lý thuyết 13

2.1 JSF 13

2.1.1Giới thiệu về JSF 13

2.1.2Các thành phần của JSF Framework 16

2.2 Primefaces 18

2.2.1Giới thiệu primefaces 18

2.2.2Primefaces Component 20

2.2.3Hướng dẫn viết các tag Primefaces 25

2.3 Hibernate và truy vấn HQL 31

2.3.1Khái niệm ORM Framework và Persistent layer 31

2.3.2Giới thiệu Hibernate Framework 33

2.3.3Kiến trúc Hibernate Framework 33

2.3.4 Các thành phần của Hibernate project 34

2.3.5Lợi ích khi sử dụng Hibernate cho persistent layer 35

Trang 5

3

2.3.6Cấu hình Hibernate 35

2.3.7Truy vấn HQL 40

2.4 Web service 44

2.4.1 Giới thiệu về Web service 44

2.4.2Kiến trúc web service 45

2.4.3Đặc điểm của Web service 45

2.4.4Kỹ thuật dùng trong Web service 46

Chương 3 Nội dung và kết quả nghiên cứu 48

3.1 Kết quả điều tra, thu thập thông tin 48

3.2 Giải pháp phân tích, thiết kế các mô hình 48

3.2.1Sơ đồ Use Case 48

3.2.2 Mô tả chi tiết 51

3.2.3Mô hình tập thực thể mối kết hợp 60

3.2.4Mô hình vật lý 61

3.2.5Ràng buộc toàn vẹn 62

3.2.6Mô hình cơ sở dữ liệu quan hệ 63

3.2.7Sơ đồ chức năng cho ứng dụng BFD 64

3.2.8Sơ đồ lớp 65

3.2.9Sơ đồ tuần tự 69

3.3 Kết quả đạt được 72

3.3.1Chức năng chính 72

3.3.2Giao diện 72

3.3.3Module 78

3.3.4Thảo luận kết quả và những vấn đề chưa được giải quyết 80

Kết luận và đề nghị 82

Tài liệu tham khảo 83

Trang 6

4

DANH MỤC HÌNH

Hình 2.1 Mô hình MVC 16

Hình 2.2 JSF component 17

Hình 2.3 Kết quả đánh giá về primeface của DevRates.com 19

Hình 2.4 Kết quả so sánh của PrimeFace 19

Hình 2.5 Minh họa kiến trúc Hibernate 33

Hình 2.6 Web service 44

Hình 2.7 Kiến trúc Web service 45

Hình 2.8 Mô hình xây dựng Web service 47

Hình 3.1 Use Case chức năng hệ thống 48

Hình 3.2 Use case phân rã chức năng lập phiếu, hóa đơn 49

Hình 3.3 Use case phân rã chức năng cập nhật danh mục 49

Hình 3.4 Use case phân rã chức năng lập hóa đơn, phiếu 50

Hình 3.5 Use case phân rã chức năng quản lý nhân viên 50

Hình 3.6 Use case phân rã chức năng báo cáo, thống kê 51

Hình 3.7 Mối quan hệ kết hợp CT_MON_KHUYEN_MAI 58

Hình 3.8 Mối quan hệ kết hợp CT_DATMON 58

Hình 3.9 Mối quan hệ kết hợp CT_HOADON_MON 59

Hình 3.10 Mối quan hệ kết hợp THANH_PHAN 59

Hình 3.11 Mối quan hệ kết hợp CT_PHIEU_NHAP: 59

Hình 3.12 Mô hình tập thực thể kết hợp 60

Hình 3.13 Mô hình vật lý 61

Hình 3.14 Sơ đồ cơ sở dữ liệu quan hệ 63

Hình 3.15 Sơ đồ chức năng cho ứng dụng 64

Hình 3.16 Sơ đồ lớp 68

Hình 3.17 Sơ đồ tuần tự đăng nhập 69

Hình 3.18 Sơ đồ tuần tự cho Hóa đơn 69

Hình 3.19 Sơ đồ tuần tự Phiếu Nhập 70

Trang 7

5

Hình 3.20 Sơ đồ tuần tự cập nhật nhân viên 71

Hình 3.21 Trang chủ 73

Hình 3.22 Trang thực đơn 73

Hình 3.23 Trang khuyến mãi 73

Hình 3.24 Trang Thông tin 74

Hình 3.25 Trang Liên hệ 74

Hình 3.26 Trang cập nhật danh mục 75

Hình 3.27 Trang phân quyền nhân viên 75

Hình 3.28 Trang lập phiếu nhập 75

Hình 3.29 Trang lập hóa đơn 76

Hình 3.30 Trang xem hóa đơn 76

Hình 3.31 Trang xem doanh thu 77

Hình 3.32 Trang xem tồn kho 77

Hình 3.33 Trang xem thống kê doanh thu, chi 77

Hình 3.34 Web service tải Nhóm món 78

Hình 3.35 Web service tải Món 78

Hình 3.36 Web service lập hóa đơn 79

Trang 8

6

DANH MỤC BẢNG

Bảng 2.1 Một số tag phổ biến của Primefaces 21

Bảng 2.2 Attribute của Primefaces 24

Bảng 3.1 Tập thực thể NHOM_MON 51

Bảng 3.2 Tập thực thể DON_VI_TINH 51

Bảng 3.3 Tập thực thể MON 52

Bảng 3.4 Tập thực thể LOAI_TIEC 52

Bảng 3.5 Tập thực thể KHU_VUC 52

Bảng 3.6 Tập thực thể BAN 52

Bảng 3.7 Tập thực thể PHONG_TIEC 53

Bảng 3.8 Tập thực thể KHACH_HANG 53

Bảng 3.9 Tập thực thể CHUONG_TRINH_KHUYEN_MAI 53

Bảng 3.10 Tập thực thể BO_PHAN 54

Bảng 3.11 Tập thực thể NHAN_VIEN 54

Bảng 3.12 Tập thực thể NHA_CUNG_CAP 54

Bảng 3.13 Tập thực thể LOAI_NGUYEN_LIEU 55

Bảng 3.14 Tập thực thể NGUYEN_LIEU 55

Bảng 3.15 Tập thực thể PHIEU_DAT_TIEC 55

Bảng 3.16 Tập thực thể HOADON 56

Bảng 3.17 Tập thực thể PHIEU_NHAP 56

Bảng 3.18 Tập thực thể PHIEU_CHI 56

Bảng 3.19 Danh sách các tập thực thể 57

Bảng 3.20 Danh sách các mối quan hệ 57

Bảng 3.21 Ràng buộc toàn vẹn miền giá trị của PHIEU_DAT_TIEC 62

Bảng 3.22 Ràng buộc toàn vẹn miền giá trị của CT_HOADON 62

Bảng 3.23 Thông tin chi tiết các phương thức chính 65

Trang 9

7

DANH MỤC KÝ HIỆU VÀ VIẾT TẮT

JSF

Là viết tắt của JavaServer Faces, JSF là một bộ khung

(framework) phát triển các ứng dụng Web viết bằng Java nhằm làm đơn giản hóa quá trình phát triển giao diện người dùng cho các ứng dụng J2EE

ORM

(Object Relational Mapping) framework là một cơ chế cho phép người lập trình thao tác với database một cách hoàn toàn tự nhiên thông qua các đối tượng

HQL Hibernate Query Language (HQL) là một ngôn ngữ truy

vấn hướng đối tượng, tương tự như SQL

MVC viết tắt của Model-View-Controller (tiếng Anh) là một

mẫu kiến trúc phần mềm trong kỹ thuật kỹ sư phần mềm

Trang 10

Trước đây, khi máy tính chưa được ứng dụng rộng rãi, hầu hết các công việc quản

lý nhà hàng đều được làm thủ công nên rất mất thời gian và tốn kém về nhân lực cũng như chi phí Ngày nay, với sự phát triển công nghệ thông tin, các công việc quản lý của cơ quan, doanh nghiệp, trường học,… được hoàn thành một cách tốt hơn

Việc nghiên cứu, phát triển phần mềm quản lý nhà hàng chạy trên nền Web đang được quan tâm và phát triển, đặc biệt là trong thời kỳ mạng lưới Internet rộng khắp như hiện nay Nó không chỉ giúp cho chương trình quản lý thêm gọn nhẹ, người quản

lý có thể quản lý ở bất cứ nơi đâu và bất cứ thời điểm nào, và giúp cho khách hàng có thể tương tác với trang web, nhằm quảng bá thương hiệu nhà hàng đến với những thực

khách yêu thích ăn uống Mục tiêu chính của luận văn này là “Xây dựng phần mềm

quản lý nhà hàng với bộ công cụ JSF, Primefaces và Hibernate”

Qua quá trình nghiên cứu và thực hiện, website đã hoàn thành đáp ứng mục tiêu của đề tài Phần mềm vừa có thể tương tác với khách hàng thông qua trang chủ, vừa có thể giúp cho việc quản lý của nhà quản lý cũng như nhân viên thêm dễ dàng với trang quản trị, giao diện trang web thân thiện, tiện ích cho người sử dụng, việc xử lý nhanh chóng, tiết kiệm thời gian là một ưu thế của chương trình

Với đề tài trên có thể mở rộng quy mô cơ sở dữ liệu lớn hơn để đáp ứng đầy đủ các nghiệp vụ của nhà hàng, đồng thời có thể phát triển trên nền di động để giúp cho việc tương tác với người dùng dễ dàng hơn thông qua những thiết bị điện thoại thông minh

TỪ KHÓA

Từ khóa: JSF, Primefaces, Hibernate, HQL, Quản lý nhà hàng

Trang 11

9

ABSTRACT

Today, information technology is being developed strongly, quickly and penetrate many areas of science, engineering as well as in life It became an effective tool in many industries such as transportation, military and medicine Especially, in management in general and in particular the restaurant manager

In the past, when the computer has not been widely used, most of the restaurant management jobs are handmade so very laborious and costly in human resources as well as costs Nowadays, with the development of information technology, the management of agencies, businesses, schools, are completed in a better way

The research and development of restaurant management software that runs on the Web are interested and development, especially during the extensive network of the current Internet It not only helps to manage the program more compact, managers can manage at any where and any time, and enables customers to interact with the site, in order to promote brand Restaurant diners come to the dining favorite The main objective of this essay is "Building management software toolkit restaurant with JSF, Primefaces and Hibernate"

Through research and implementation, website completed to meet the objectives of the subject Medium software can interact with customers via their homepage, but you can make the management of managers and employees more easily with site management, friendly web interface, convenient for people manual, quick handling, saving time is an advantage of the program

With topics on extending the scale databases to fulfill the business of a restaurant, and can build a mobile-based software to allow for the interaction with the site more easy when the user easy to use smartphone

KEYWORD

Keyword: JSF, Primefaces, Hibernate, HQL, Quản lý nhà hàng

Trang 12

10

CHƯƠNG 1 TỔNG QUAN

Trên địa bàn thành phố Cần Thơ hiện nay xuất hiện ngày càng nhiều những quán

ăn, nhà hàng với qui mô lớn, nhỏ khác nhau Đa số việc quản lý ở những nơi này thường được thể hiện qua sổ sách, hóa đơn viết bằng tay gây khó khăn cho việc quản

Để khắc phục vấn đề trên, nhiều quán ăn, nhà hàng đều đang thực hiện kinh doanh theo hướng tin học hóa bằng cách sử dụng các phần mềm quản lý và bước đầu mang đến sự tiện lợi trong việc quản lý, làm cho việc quản lý bớt phần nhàm chán và làm thay đổi bộ mặt của nhà hàng trong mắt thực khách

Tuy nhiên, những phần mềm về quản lý nhà hàng, quán ăn chủ yếu chạy trên PC

mà khả năng tương thích giữa PC với các phần mềm có phần hạn chế làm cho phần mềm không mang tính khả thi cao Do đó, việc xây dựng chương trình quản lý trên nền web ngày càng được quan tâm và phát triển

Với thực trạng trên, cần phải xây dựng một hệ thống quản lý nhà hàng chạy trên nền Web nhằm đáp ứng nhu cầu quản lý 24/24h và có thể quản lý nhà hàng ở bất cư

nơi đâu Cụ thể, mục tiêu chính của bài luận văn này là “Xây dựng hệ thống website

quản lý nhà hàng với JSF, Primefaces & Hibernate ” nhằm hỗ trợ việc quản lý nhà

hàng trên web một cách nhanh chóng và kịp thời

Xây dựng một hệ thống có khả năng quản lý thông tin các món ăn, thực đơn, hóa đơn của nhà hàng, có khả năng thực hiện các nghiệp vụ một cách nhanh chóng và chính xác, cung cấp các chức năng cho thực khách và nhân viên nhà hàng có thể tương

tác từ xa

Đối với nhân viên :

 Quản lý bàn, loại bàn, khu vực, trạng thái bàn

 Quản lý thực đơn, phân cấp, tìm kiếm, chọn các món ăn

 Quản lý kho, nguyên liệu, định lượng sản phẩm, hạn chế thất thoát, tồn kho chính xác

 Sử dụng online, mạng LAN, mạng Internet Ở nhà hoặc đi công tác đều quản lý được

 Báo cáo thống kê, quản lý công nợ khách hàng, nhà cung cấp

Trang 13

11

Đối với khách hàng:

 Phần mềm có chức năng giới thiệu các thực đơn hiện có của nhà hàng nhằm cung cấp cho khách hàng thông tin tổng quan về các món ăn

 Xem thông tin về các chương trình khuyến mãi, ưu đãi

 Khách hàng có thể gửi mail liên hệ đến nhà quản lý

 Tìm kiếm các món ăn theo tên và theo loại

Phương pháp nghiên cứu là tìm hiểu và xây dựng phần mềm quản lý nhà hàng với JSF, Primefaces & Hibernate

- Về lý thuyết:

 Nắm vững kỹ thuật phân tích thiết kế hệ thống

 Nắm vững các phương pháp tổ chức, phân tích và thiết kế cơ sở dữ liệu

 Nắm vững ngôn ngữ HQL

 Nắm vững các kỹ thuật lập trình

- Về kỹ thuật:

 Sử dụng ngôn ngữ JSF và Primefaces cho việc xây dựng ứng dụng web

 Sử dụng Hibernate để kết nối cơ sở dữ liệu

 Sử dụng hệ quản trị cơ sở dữ liệu MySQL để tạo và quản lý cơ sở dữ liệu trên

 Sử dụng Web Service hỗ trợ xây dựng bản đồ

 Sử dụng template StartBootstrap cho việc thiết kế giao diện

- Về chức năng:

 Cho phép nhân viên cập nhật các danh mục một cách dễ dàng

 Lập hóa đơn và các loại phiếu được thực hiện nhanh chóng

 Hỗ trợ việc xem và tìm kiếm món ăn cho khách hàng

 Giúp người quản lý xem và thống kê doanh thu

 Quảng cáo món ăn của nhà hàng cũng như có thêm thu nhập từ việc quảng cáo sản phẩm của các khách hàng yêu cầu

Trang 14

12

Đề tài quản lý nhà hàng tuy không phải là mới mẻ, nhưng những phần mềm trước đây chủ yếu đều làm việc trên máy tính nên không có khả năng tương thích cao Do

đó, Việc xây dựng phần mềm quản lý nhà hàng trên nền web bằng bộ công cụ JSF, Primefaces và Hibernate được xem là một đề tài mới và đáng chú ý

Nhằm cung cấp thông tin về các nghiệp vụ cần có của nhà hàng, cũng như cung cấp thêm những kiến thức đối những người đã biết hoặc những người chưa biết về JSF, Primefaces và Hibernate Em đã tìm hiểu, phân tích và viết nên cuốn luận văn này Cấu trúc của cuốn luận văn này gồm 3 chương, mỗi chương sẽ được chia thành nhiều đề mục nhằm giúp cho người đọc dễ nắm bắt về nội dung cần tìm hiểu Ở mỗi phần nội dung còn có nhiều hình ảnh minh họa để làm rõ hơn về vấn đề đưa ra

Nội dung chính của luận văn bao gồm:

Chương 1: Giới thiệu tổng quan về đề tài, vấn đề đặt ra để giải quyết bài toán, phạm vi của đề tài và phương pháp để thực thiện đề tài

Chương 2: Những cơ sở lý thuyết tìm hiểu để giúp cho việc giải quyết đề tài thêm gọn nhẹ: Giới thiệu về JSF và các thành phần của JSF, giới thiệu về Primefaces và một số hướng dẫn cơ bản, Hibernate và cách truy vấn HQL, một số thông tin về Web service Chương 3: Từ kết quả điều tra, thu thập thông tin, tiến hành phân tích, thiết kế các mô hình và hoàn thiện chương trình Từ đó đưa ra kết luận và kiến nghị

Trang 15

cấu trúc cây của các thẻ, mỗi thẻ là một thành phần giao diện (component) và

FacesServlet servlet sẽ thực hiện công đoạn chuyển đổi ra giao diện tương ứng cho người dùng với định dạng HTML

JSF Framework được xây dựng trên nền tảng MVC Pattern trên Web và hỗ trợ khả năng xử lý sự kiện điều này tương tự như mô hình Swing – xây dựng ứng dụng desktop Do vậy, JSF còn được mệnh danh là Swing được chạy trên phía Server (Server Side)

JSF còn hỗ trợ cơ chế rendering trong việc hỗ trợ giao diện cho người dùng trong quá trình xử lý (User Interface) và đây là đặc tính nổi bật của JSF theo nghĩa JSF đa số

hỗ trợ chữ V (View) trong mô hình MVC chuẩn (event – biến cố là một phần trong View)

Do tính chất hỗ trợ giao diện cho nên JSF đưa ra một tập các thư viện trên trang jsp – tag library để hỗ trợ giao diện, checking ràng buộc – validation, ép kiểu dữ liệu – conversion, hỗ trợ đa ngôn ngữ - localization, …

2.1.1.1 Đặc điểm của JSF

Một trong những lợi điểm lớn nhất của công nghệ JSF là nó cho phép một sự phân chia rạch ròi giữa behavior (cách xử lý) và presentation (cách trình bày) Xây dựng ứng dụng web với công nghệ JSP lưu trữ từng phần của việc phân chia này Tuy nhiên, một ứng dụng JSP không thể ánh xạ những request HTTP thành những xử lý sự kiện các thành phần cụ thể hoặc quản lý các thành phần UI như những đối tượng có trạng thái trên server Công nghệ JSF cho phép bạn xây dựng các ứng dụng Web nhằm bổ sung việc phân chia rõ ràng hơn behavior và presentation được cho phép bởi kiến trúc

Trang 16

và thông thường chứa:

 Các thành phầns JavaBean (được gọi là những mô hình đối tượng trong công nghệ JSF)

 Các event listener

 Các trang, chẳng hạn như JSP

 Các lớp helper phía server, chẳng hạn như các bean truy cập dữ liệu

Thêm vào những thành phần ở trên, một ứng dụng JSF cũng có:

 Một thư viện thẻ tùy biến thực thi các thành phần UI trên một trang

 Một thư viện thẻ tùy biến thay thế các xử lý sự kiện, kiểm tra và những hành động khác

 Những thành phần UI thay thế trạng thái các đối tượng trên server

 Các kiểm tra, xử lý sự kiện, và xử lý navigation

Mỗi ứng dụng JSF phải bao gồm một thư viên thẻ tùy biến nhằm định nghĩa các thẻ thay thế các thành phần UI và một thư viện thẻ tùy biến nhằm thay thế các hành động cốt lõi khác, chẳng hạn như các kiểm tra và các xử lý sự kiện Cả hai loại thư viện thẻ này được cung cấp bởi việc bổ sung JSF

Thư viện thẻ tùy biến xóa bỏ những gì cần thiết cho các thành phần UI trong HTML hoặc ngôn ngữ đánh dấu khác, kết quả là những thành phần tái sử dụng hoàn toàn Và thư viện core tạo nên sự dễ dàng để đăng ký các sự kiện, kiểm tra và những hành động khác Thư viện thẻ tùy biến có thể là thư viện thẻ HTML cơ bản chứa cùng với công nghệ JSF tham khảo bổ sung, hoặc bạn có thể định nghĩa thư viện thẻ của riêng mình nhằm tạo ra các thành phần tùy biến hoặc xuất ra kiểu khác HTML

Cuối cùng, công nghệ JSF cho phép bạn chuyển đổi và kiểm tra dữ liệu trên những thành phần riêng biệt và thông báo bất kỳ lỗi gì trước khi dữ liệu phía server được cập nhật

Trang 17

15

2.1.1.2 Vai trò của Framework

Bởi vì việc phân chia công việc được cho phép bởi thiết kế công nghệ JSF, việc phát triển và sửa chữa các ứng dụng JSF có thể xử lý dễ dàng và nhanh chóng Các thành viên của một nhóm phát triển thông thường bao gồm một danh sách dưới đây Trong nhiều nhóm, các nhà phát triển riêng biệt đóng nhiều hơn một trong những vai trò dưới đây:

 PageAuthors: người sử dụng ngôn ngữ đánh dấu, giống như HTML, để tạo ra các trang cho ứng dụng Web Khi sử dụng framework công nghệ JSF, page authors sẽ hầu hết sử dụng thư viện thẻ

 Application Developers: người lập trình mô hình các thành phần, các xử lý sự kiện, các kiểm tra, và navigation của trang Application developer có thể cung cấp các lớp helper mở rộng

 Component Writers: người có kinh nghiệm lập trình UI và đề nghị tạo ra các thành phần tùy biến sử dụng ngôn ngữ lập trình

 Những người này có thể tạo ra các thành phần của riêng họ trực tiếp từ các lớp thành phần, hoặc họ có thể kế thừa các thành phần chuẩn cung cấp bởi công nghệ JSF

 Tool Verdors: người cung cấp các công cụ nhằm tạo ra công nghệ JSF xây dựng UI phía server dễ dàng hơn Những thành viên chính của công nghệ JSF

sẽ là page authors và application developers

2.1.1.3 Mục đích ra đời của JSF

8 mục tiêu thiết kế sau là lí do cho sự ra đời của JSF:

1 Tạo ra một bộ khung gồm các thành phần giao diện người dùng chuẩn

(standard GUI component framework) nhằm giúp cho các công cụ phát triển dễ

dàng hơn cho người dùng trong việc tạo GUI chất lượng cao đồng thời quản lí các kết quả của GUI với xử lí thực thi của chương trình

2 Định ra một tập các lớp cơ sở của Java (lightweight Java base classes) biểu

diễn cho các thành phần UI, trạng thái mỗi thành phần, và các sự kiện đầu vào Những lớp này sẽ xử lí những vấn đề liên quan đến chu kì sống của GUI, đặc biệt là quản lí trạng thái trong suốt chu trình sống của một trang của thành phần GUI đó

3 Cung cấp một tập các thành phần GUI chung, bao gồm các thành phần HTML

form input Những thành phần này sẽ được dẫn xuất từ tập đơn giản các lớp cơ

sở để từ đó có thể định ra các thành phần mới

4 Cung cấp một mô hình JavaBeans để có thể truyền đi (dispatch) các sự kiện từ các GUI controls phía máy khách đến các xử lí hiện thực cụ thể từ phía ứng dụng máy chủ

5 Định ra các hàm APIs để kiểm chứng dữ liệu nhập, bao gồm hỗ trợ kiểm chứng

từ phía máy chủ

6 Chỉ định một mô hình để có thể đa ngôn ngữ hóa hay địa phương hóa các GUI

Trang 18

16

7 Khởi tạo tự động dữ liệu ra phù hợp cho máy khách đích, dựa vào mọi dữ liệu cấu hình ở máy khách đó, bao gồm cả dựa vào phiên bản trình duyệt, ví dụ

8 Việc khởi tạo tự động dữ liệu ra còn kèm theo các đòi hỏi về hỗ trợ người dùng

(accessibility), được qui định bởi WAI

Sau khi tiếp nhận, Faces Servlet xác định bean tương ứng – Model để chuyển xử lý hay xác định trang JSF – View tương tự như cơ chế MVC xác định trang JSP và Model tương ứng để thực hiện xử lý và kết xuất dữ liệu lên form JSF để trình bày Kết quả, xử lý hay giao diện kết xuất phải được đưa qua Faces Servlet để chuyển response về cho người yêu cầu

2.1.2.2 Managed Bean

Managed Bean hay tên gọi khác là Backing Bean

 Bản chất là Java Beans được dùng kết hợp với các thành phần UI interface, Java Beans bao gồm các phương thức hỗ trợ trình bày giao diện cho người

Trang 19

 Java beans phải được khai báo trong tập tin faces-config.xml của ứng dụng

để ứng dụng có thể cơ chế để lưu trữ và tương tác với bean

 Để tương tác giữa form, UI component thì Java Beans sử dụng cấu trúc

#{[JavaBeanName].[property/method]} với [JavaBeanName]là tên java beans khi ta khai báo lớp bin và [property/method] là tên thuộc tính hoặc phương thức của lớp java beans

 Beans có khả năng hỗ trợ Event Handling, hỗ trợ chuyển trang – Navigation,

Hỗ trợ tính toán, xử lý kết quả để kết xuất trình bày giá trị trong các thành phần UI

để trình bày giao diện chính xác và hợp lý từ kết xuất của chương trình trong lúc thực thi

Trang 20

18

Hỗ trợ cơ chế “Look and Feel”

2.1.2.5 Events and Listener

Hỗ trợ cơ chế đón nhận các sự kiện và xử lý sự kiện (Event Handling) trên khái niệm của M (Model) trong MVC kết hợp với Managed Bean

2.1.2.6 Navigation

Cung cấp cơ chế chuyển trang, chuyển xử lý trong quá trình ứng dụng thực hiện tượng tự khái niệm C (Controller) trong mô hình MVC

Có 02 loại mô hình Static và Dynamic Model

 Static Model: di chuyển đến duy nhất một trang cụ thể và không thay đổi hay không thể thay đổi từ lúc lập trình hay trong quá trình trang thực thi (trang chuyển đến đã được xác định chính xác)

 Dynamic Model: cấu hình để chuyển đến trang tương ứng tùy theo kết quả xử

2.2.1 Giới thiệu primefaces

PrimeFace framework được mở rộng từ JSF Đa dạng về các thành phần (HtmlEditor, Dialog, AutoComplete, Charts và nhiều thành phần khác) Xây dựng Ajax dựa trên chuẩn JSF 2.0 Nhẹ, không có cấu hình phức tạp

Trang 21

19

 Đánh giá về primeface

Theo DevRates.com thì PrimeFace được đánh giá với đển 9.4 số với các framework khác

Hình 2.3 Kết quả đánh giá về primeface của DevRates.com

Kết quả trên cho ta thấy frimeface được đánh giá rất tốt, được tin cậy và sử dụng khá nhiều

So sánh primeface vơi các framework tương tự

Hình 2.4 Kết quả so sánh của PrimeFace Hàng ngàn ứng dụng đã được tạo ra với PrimeFaces, sản phẩm thậm chí cạnh tranh như IceFaces được cung cấp bởi PrimeFaces Trên đây là một biểu đồ được tạo ra bởi Google Trends so sánh các PrimeFaces phổ biến với các đối thủ cạnh tranh

Trang 22

20

2.2.2 Primefaces Component

Một số tag phổ biến của PrimeFace

cellEditor CellEditor được dùng trong datatable sử dụng cho việc sửa đổi giá trị

trong một ô của table

commandButton CommandButton mở rộng thêm từ JSF cơ bản và có thêm các tính

năng về ajax và giao diện

commandLink CommandLink mở rộng thêm từ commandLink của JSF cơ bản và

thêm một số tính năng về ajax

confirmDialog ConfirmDialog thay thế cho hộp thoại trong Javascript, hỗ trợ giao

diện, tùy biến mạnh

contextMenu ContextMenu hỗ trợ hiện thị menu khi right click

dataGrid

DataGrid hỗ trợ hiển thị danh sách dữ liệu theo bố cục dạng lưới(grid layout).Hỗ trợ phân trang với tùy chọn mẫu phân trang, số dòng trên một trang và nhiều tùy chọn hơn nữa

graphicImage

GraphicImage mở rộng JSF graphic image với khả năng hiện thị dữ liệu theo kiểu binary giống như là một inputstream.Hỗ trợ hiển thị hình ảnh từ database dễ dàng hơn

growl Growl sử dụng để hiển thị FacesMessages giống như là h:messages

inputMask InputMask định nghĩa các khuân mẫu cho dữ liệu nhập vào như:

email, số điện thoại…

inputText InputText mở rộng inputText của JSF cơ bản với hỗ trợ về giao diện

Trang 23

21

inputTextarea InputTextarea mở rộng inputTextarea của JSF cơ bản với hỗ trợ về

giao diện và khả năng tự động tăng kích thước khi tràn nội dung

message Hiển thị thông báo khi có lỗi xảy ra tại phần tử xác định

messages Hiển thị tất cả các thông báo khi có lỗi xảy ra

panelGrid Hiểu thì dữ liệu thoe cột bằng cách định nghĩa số lượng cột

rowEditor Được khai báo trong datatable dùng để sửa đổi dữ liệu của một dòng

trong table

selectOneMenu Giống như Dropdown ở HTML

selectOneRadio Giống như button ở HTML

subTable Được khai báo trong datatable dùng để gom nhóm dữ liệu trong table

Bảng 2.1 Một số tag phổ biến của Primefaces

(must evaluate to java.lang.Boolean)

Rendered=true hiển thị phần tử, rendered=false ko hiển thị phần tử

(must evaluate to java.lang.Object)

Trang 24

22

lệnh được thực thi

(must evaluate to java.lang.Boolean)

Ajax=true(mặc định),thì submit sẽ được thực hiện với Ajax

(must evaluate to java.lang.Boolean)

Khi giá trị này là true, thì yêu cầu ajax sẽ thực hiện bất đồng bộ

(must evaluate to java.lang.String)

Component sẽ sử lý cục bộ một phần thay

vì toàn bộ giao diện

(must evaluate to java.lang.String)

Dùng để khai báo các component được cập nhật từ ajax

(must evaluate to java.lang.String)

Trước khi yêu cầu ajax được thực thi nó

sẽ được phản hồi ở phía người dùng

(must evaluate to java.lang.String)

Khi yêu cầu ajax hoàn tất sẽ có phản hồi ở phía người dùng

(must evaluate to java.lang.String)

Khi yêu cầu ajax thất bại sẽ có phản hồi ở phía người dùng

(must evaluate to java.lang.String)

Khi yêu cầu ajax gửi thành công sẽ có phản hồi ở phía người dùng

(must evaluate to java.lang.String)

Vô hiệu hoá nút (button)

(must evaluate to java.lang.String)

Đặt tên cho thành phần

Trang 25

23

(must evaluate to java.lang.String)

Vị trí của thành phần nút theo thứ tự tab

(must evaluate to java.lang.String)

Thông tin gợi ý

(must evaluate to java.lang.String)

Thiết lập hành vi cho nút Mặc định là submit

(must evaluate to java.lang.String)

Chỉ cho đọc

(must evaluate to java.lang.String)

Kiểu inline cho các thành phần nút

(must evaluate to java.lang.String)

Lớp kiểu cho nút

(must evaluate to java.lang.String)

Sau khi rời khỏi nút sẽ

có một phản hồi ở phía người dùng

(must evaluate to java.lang.String)

Khi rời khỏi nút và giá trị đã thay đổi sẽ

có phản hồi ở phía người dùng

(must evaluate to java.lang.String)

Khi nhấn nút sẽ có phản hổi từ ở phía người dùng

(must evaluate to java.lang.String)

Khi nhấn đúp chuột vào nút sẽ có phản hồi

ở phía người dùng

(must evaluate to java.lang.String)

Khi focus vào nút sẽ

có một phản hồi ở phía người dùng

(must evaluate to java.lang.String)

Khi ấn giữ phím sẽ có phản hồi ở phía người dùng

Trang 26

24

(must evaluate to java.lang.String)

Khi nhấn rồi nhả phím

sẽ có phản hồi ở phía người dùng

(must evaluate to java.lang.String)

Khi nhả phím sẽ có phản hồi ở phía người dùng

(must evaluate to java.lang.String)

Khi nhấn giữ chuột lên nút sẽ có phản hồi

ở phía người dùng

(must evaluate to java.lang.String)

Khi di trỏ chuột sẽ có phản hồi ở phía người dùng

(must evaluate to java.lang.String)

Khi di chuột ra khỏi nút sẽ có phản hồi ở phía người dùng

(must evaluate to java.lang.String)

Khi di chuột lên nút

sẽ có phản hồi ở phía người dùng

(must evaluate to java.lang.String)

Khi nhả chuột sau khi

đã nhấn lên nút sẽ có phản hồi ở phía người dùng

(must evaluate to java.lang.String)

Biểu tượng của nút

(must evaluate to java.lang.String)

Vị trí của biểu tượng, mặt định là left (bên trái)

Bảng 2.2 Attribute của Primefaces

Trang 27

25

2.2.3 Hướng dẫn viết các tag Primefaces

2.2.3.1 Khai báo cơ bản

Khai báo lớp java bean “TableBean” như sau để làm các ví dụ ở các phần tiếp theo

public class TableBean implements Serializable {

Trang 28

private void populateRandomCars(List<Car> list, int size) {

for(int i = 0 ; i < size ; i++)

private int getRandomYear() {

return (int) (Math.random() * 50 + 1960);

}

private String getRandomColor() {

}

private String getRandomManufacturer() {

}

private String getRandomModel() {

return UUID.randomUUID().toString().substring(0, 8);

Trang 29

public void onEdit(RowEditEvent event) {

event.getObject()).getModel());

FacesContext.getCurrentInstance().addMessage(null, msg);

}

public void onCancel(RowEditEvent event) {

Trang 30

28

Sử dụng lớp Car và TableBean trong phần khai báo cơ bản

1 Tạo data table cơ bản

< p:dataTable var="car" value="#{carBean.cars}" >

Trang 31

29

h:outputText value="#{car.color}" />

</ p:column >

</ p:dataTable >

2 Header and Footer

Khai báo header và footer cho table

< p:dataTable var="car" value="#{carBean.cars}" >

< p:dataTable var="car" value="#{carBean.cars}" >

< p:column sortBy="#{car.model}" headerText=”Model” >

Trang 32

public class CarBean {

private List<Car> cars;

private Car selectedCar;

private Car[] selectedCars;

public CarBean() {

cars = new ArrayList<Car>();

cars.add(new Car( "myModel" ,2005, "ManufacturerX" , "blue" ));

//add more cars

}

//getters and setters

}

Single Selection with Row Click

< p:dataTable var="car" value="#{carBean.cars}" selectionMode="single"

selection="#{carBean.selectedCar}" rowKey="#{car.id}" >

columns

</ p:dataTable >

Multiple Selection with Row Click

< p:dataTable var="car" value="#{carBean.cars}" selectionMode="multiple"

Trang 33

Những lớp Java mà đối tượng hay thể hiện của chúng được lưu trữ vào bảng cơ sở

dữ liệu được gọi là lớp persistent trong Hibernate

Hibernate framework sẽ hoạt động tốt nhất nếu các lớp này tuân theo một số quy tắc lập trình đơn giản (được gọi là mô hình lập trình POJO – Plain Old Java Object) Sau đây là những quy tắc để tạo 1 lớp persistent trong Hibernate:

 Phải có 1 phương thức khởi tạo mặc định (phương thức khởi tạo không có tham số)

 Lớp này nên chứa 1 thuộc tính ID để ánh xạ tới khóa chính trong bảng cơ sở dữ liệu

 Tất cả các thuộc tính trong lớp cần đặt “private” hoặc protected, hoặc default (Hibernate không xử lý các thuộc tính để public)

 Chứa các phương thức set*, get*, is* tương tự như 1 lớp JavaBean

 Class không nên để final

 Các phương thức không nên để public final, chỉ nên để public

Trang 34

32

 Các lớp này không được kế thừa (extend) các lớp đặc biệt khác mà chỉ có thể kế thừa các lớp persistent khác

Ví dụ: Persistent Class trong Hibernate

Dựa trên 1 số quy tắc trên mình đã tạo ra 1 lớp persistent trong ứng dụng Hibernate như sau:

Employee.java

public class Employee {

private int id ;

private String firstName ;

private String lastName ;

private int salary ;

public Employee ()

public Employee ( String fname, String lname, int salary ) {

public void setFirstName ( String first_name ) {

public String getLastName ()

return lastName ;

public void setLastName ( String last_name ) {

public int getSalary ()

return salary ;

public void setSalary (int salary ) {

}

Trang 35

33

2.3.2 Giới thiệu Hibernate Framework.

Hibernate là một trong những ORM Framework Hibernate framework là một framework cho persistence layer Như vậy, nhờ có Hibernate framework mà giờ đây khi bạn phát triển ứ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 Hibernate giúp lưu trữ và truy vấn dữ liệu quan hệ mạnh mẽ và nhanh Hibernate cho phép bạn truy vẫn dữ liệu bằng ngôn ngữ SQL mở rộng của Hibernate (HQL) hoặc bằng SQL thuần

2.3.3 Kiến trúc Hibernate Framework

Hình 2.5 Minh họa kiến trúc Hibernate

Mô tả chức năng các file cấu hình trong Hibernate :

A. Mỗi table trong database là một object trong Hibernate Do đó, bạn cần có một java bean cho mỗi table trong database Các java bean này sẽ có các getters/setters và một số ngoại lệ theo quy ước của Hibernate

B Mỗi file mapping (ánh xạ) có dạng ***.hbm.xml có nhiệm vụ đặc tả mỗi quan hệ giữa các thuộc tính của đối tượng và các trường trong bảng CSDL

Trang 36

 Hibernate cache configuration (class cache, collection cache)

 Hibernate transaction configuration (factory_class, auto_close_sesion, manager_lookup_class)

 Miscellaneous confguration (current_session_context_class, factory_class,…)

 Mapping source configuration

2.3.4 Các thành phần của Hibernate project (các thành phần thư viện

 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

Trang 37

35

2.3.5 Lợi ích khi sử dụng Hibernate cho persistent layer

Trước tiên cần kể tới những khó khăn khi triển khai ứng dụng business dùng ngôn ngữ SQL thuần túy:

 Mã thì rải rác khắp nơi đến những nơi không quản lý nổi

 Nếu thiết kế bị thay đổi sau khi phát triển ứng dụng, phải trả giá rất đắt để nhận

ra những nơi cần phải thay đổi

 Khó tìm và sửa lỗi

 Quản lý các kết nối database là một nhiệm vụ cực kỳ khó khăn vì mã SQL nằm tùm lum, kết nối database cũng vậy

 Quản lý transaction là một nhiệm vụ phức tạp

Lợi ích khi sử dụng Hibernate (với HQL – Hibernate Query Language)

 Tìm kiếm và sắp xếp nhanh

 Làm việc được với dữ liệu lớn

 Làm việc trên nhóm dữ liệu

 Joining, aggregating

 Chia sẽ nhiều người dùng và nhiều vùng

 Giải quyết tương tranh (Transaction)

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

Để 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

Trang 38

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"

Trang 39

37

Thuộc tính dialect đảm 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"

2.3.6.2 Một số thuộc tính khi cấu hình Hibernate

Các thuộc tính cấu hình JDBC:

1 hibernate.connection.driver_class: lớp driver class

2 hibernate.connection.url: url để kết nối tới CSDL thông qua driver

3 hibernate.connection.username: uername để truy nhập vào CSDL

4 hibernate.connection.password: password để truy nhập vào CSDL

5 hibernate.connection.pool_size: số lượng tối đa các kết nối tới CSDL trong 1 thời điểm

Các thuộc tính điểu khiển thực hiện của Hibernate:

Trang 40

3 hibernate.format_sql: định dạng lại câu lệnh SQL và in ra console

4 hibernate.use_sql_comments: cho phép sử dụng comment trong câu lệnh SQL Các thuộc tính transaction hibernate

1.hibernate.transaction.factory_class: tên lớp TransactionFactory để sử dụng với Transaction API (mặc định là JDBCTransactionFractory )

Giá trị của thuộc tính Dialect với từng HQTCSDLQH như sau: [table id=1 /]

<mapping resource="Table/Emp.hbm.xml"/>

</session-factory>

</hibernate-configuration>

Ngày đăng: 22/12/2015, 11:26

HÌNH ẢNH LIÊN QUAN

Hình 2.4  Kết quả so sánh của PrimeFace - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
Hình 2.4 Kết quả so sánh của PrimeFace (Trang 21)
Hình 2.7  Kiến trúc Web service - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
Hình 2.7 Kiến trúc Web service (Trang 47)
Hình 2.8  Mô hình xây dựng Web service - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
Hình 2.8 Mô hình xây dựng Web service (Trang 49)
Hình 3.2  Use case phân rã chức năng lập phiếu, hóa đơn - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
Hình 3.2 Use case phân rã chức năng lập phiếu, hóa đơn (Trang 51)
Hình 3.12  Mô hình tập thực thể kết hợp - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
Hình 3.12 Mô hình tập thực thể kết hợp (Trang 62)
Hình 3.13  Mô hình vật lý - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
Hình 3.13 Mô hình vật lý (Trang 63)
Hình 3.14  Sơ đồ cơ sở dữ liệu quan hệ - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
Hình 3.14 Sơ đồ cơ sở dữ liệu quan hệ (Trang 65)
Hình 3.15  Sơ đồ chức năng cho ứng dụng - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
Hình 3.15 Sơ đồ chức năng cho ứng dụng (Trang 66)
Hình 3.18  Sơ đồ tuần tự cho Hóa đơn - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
Hình 3.18 Sơ đồ tuần tự cho Hóa đơn (Trang 71)
Hình 3.17  Sơ đồ tuần tự đăng nhập - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
Hình 3.17 Sơ đồ tuần tự đăng nhập (Trang 71)
Hình 3.19  Sơ đồ tuần tự Phiếu Nhập - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
Hình 3.19 Sơ đồ tuần tự Phiếu Nhập (Trang 72)
Bảng Nhân Viên - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
ng Nhân Viên (Trang 73)
Hình 3.21  Trang chủ - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
Hình 3.21 Trang chủ (Trang 75)
Hình 3.31  Trang xem doanh thu - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
Hình 3.31 Trang xem doanh thu (Trang 79)
Hình 3.35  Web service tải Món - xây dựng phần mềm quản lý nhà hàng với bộ công cụ jsf, primefaces và hibernate
Hình 3.35 Web service tải Món (Trang 80)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w