Tải bản đầy đủ (.docx) (35 trang)

Tìm hiểu về hibernate 4 và struts2 mvc framework và viết ứng dụng xây dựng website bán điện thoại

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (961.12 KB, 35 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỶ THUẬT TP HCM
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
ĐỀ TÀI: TÌM HIỂU VỀ HIBERNATE 4 & STRUTS2 MVC
FRAMEWORK VÀ VIẾT ỨNG DỤNG XÂY DỰNG WEBSITE
BÁN ĐIỆN THOẠI

Giảng viên hướng dẫn : THS Nguyễn Minh Đạo
1
Tiểu luận chuyên
nghành
LỜI CÁM ƠN
Chúng em xin chân thành cám ơn trường đại học Sư Phạm Kỹ Thuật TPHCM, khoa
đào tạo Chất Lượng Cao đã tạo điều kiện thuận lợi cho chúng em thực hiện khóa luận
này.
Chúng em xin được gửi lời cảm ơn chân thành đặc biệt đến thầy Nguyễn Minh Đạo,
người đã tận tình chỉ bảo và hướng dẫn chúng em thực hiện tiểu luận này.
Bên cạnh đó, chúng em xin gửi lời cảm ơn đến các thầy cô giáo, những người đã giảng
dạy, tạo điều kiện cho em tích lũy được những kiến thức quý báu trong suốt 4 năm học
qua.
Dù đã cố gắng hoàn thành đề tài tiểu luận đúng yêu cầu, nhưng do thời gian hạn hẹp
và khả năng còn hạn chế nên chắc chắn sẽ có những thiếu sót không tránh khỏi. Chúng
em mọng nhận được sự thông cảm và tận tình chỉ bảo của các thầy cô và các bạn.
Em xin chân thành cảm ơn!
Tóm tắt
Công nghệ thông tin là một ngành ngày càng phát triển mạnh mẽ trên thế giới, theo xu
hướng phát triển đó thì có nhiều ngôn ngữ lập trình ra đời để đáp ứng cho nhu cầu phát
triển đó, thì một trong các ngôn ngữ lập trình được sử dụng phổ biến đó là Java, là một
2
ngôn ngữ lập trình hướng đối tượng mang nhiều ưu thế vượt trội. Song đó cùng với sự
phát triển thì có rất nhiều công nghệ ra đời hỗ trợ lập trình Java. Trong đó Struts 2


đang là một framework đang được sử dụng mạnh mẽ, sẽ là tối ưu hơn hẳn nếu sử
dụng kết hợp với Hibernate 4.0. Đề tài tập trung nghiên cứu về Struts 2 và Hibernate
4.0 framework, qua đó xây dựng website bán điện thoại online. để làm nổi bật lên ưu
điểm của các công nghệ này.Với các công nghệ mà chúng em nghiên cứu, báo cáo này
sẽ cung cấp những kiến thức căn bản về:
 Struts1
 Struts 2
 So sánh Struts 1 và Struts 2
 Hibernate các phiên bản
 Hibernate 4
Với website mà chúng em xây dựng, người dùng sẽ được cung cấp các chức năng sau:
 Đăng nhập
 Đăng kí
 Quản lí giỏ hàng
 Đặt hàng
 Xem giỏ hàng
 Tìm kiếm sản phẩm
 Đóng góp ý kiến
Còn đối với quản trị viên (administrator) thì có các chức năng sau:
 Quản lí tài khoản
 Quản lí đơn hàng
 Quản lí danh sách sản phẩm
 Quản lý danh mục sản phẩm
 Quản lý nhà sản xuất
3
 Quản lý bình luận
4
Chương 1: Tổng Quan
1.1 Lý do chọn đề tài.
Trong lập trình hướng đối tượng, java là một ngôn ngữ phát triển rất mạnh và

có những ưu điểm vượt trội so với C#. Vì thế, nhóm em chọn theo hướng ngôn
ngữ java, tìm hiểu những công nghệ mới và xây dựng chương trình ứng dụng
trong tiểu luận chuyên ngành này, mở ra hướng phát triển sau này trong việc
thực hiện khóa luận tốt nghiệp.
1.2 Công nghệ sử dụng.
Trong phạm vi đề tài này, nhóm chúng em sử dụng những công nghệ chính
như:
 Struts2 Framework.
 Hibernate 4 Framework
Trên nền các phần mềm lập trình:
 Eclipse JEE 4.0, Netbean IDE 7.1.
Những thông tin chi tiết và mở rộng về công nghệ sẽ được nhóm em triển khai
trong chương 2 và chương 3.
1.3 Tính khoa học và thực tiễn.
Trong lĩnh vực phát triển ứng dụng Web, các công nghệ mới liên tiếp ra đời, cải
tiến để hỗ trợ cho các nhà phát triển, các lập trình viên xây dựng Web cách
nhanh chóng và chất lượng và hiệu quả cao, thêm vào đó là sự bảo mật chứng
thực người dùng, nâng cao tính tin cậy dễ sử dụng, tính thân thiện cao cho
người dùng. Struts & Hibernate là những framework được tin dùng và phổ biến
trong lĩnh vực web java hiện nay do đó tin rằng trang Web sẽ được xây dựng
nhanh chóng, đẹp mắt và bảo mật rất tốt. Hiện nay, được sử dụng phổ biến
nhất là Struts2và Hibernate4 framework.
5
1.4 Mục tiêu nghiên cứu.
 Nghiên cứu và viết báo cáo về kiến thức căn bản Struts2,
Hibernate 4.
 Xây dựng Website Bán Điện Thoại.
6
CHƯƠNG 2: NỘI DUNG NGHIÊN CỨU
2.1 Strust 1.

Struts nguồn gốc được tạo ra bởi Craig R. McClanahan và sau đó được chuyển
giao cho dự án Jakarta của Apache Software Foundation (AFS) vào năm 2000.
Vào tháng 6 năm 2001, Struts đã phát hành phiên bản 1.0. Sau đó, có rất nhiều
người đã tham gia đóng góp cả về mã nguồn và tài liệu cho dự án và Struts
ngày càng trở nên hoàn thiện hơn. Struts là một framework mã nguồn mở được
phát triển trên nền tảng của ngôn ngữ Java, JSP nhằm mục đích tạo ra một
thành phần chuẩn trong việc thiết kế ở tầng Web sử dụng MVC dựa trên nền
tảng của J2EE. Với Struts, người lập trình sẽ không phải quan tâm đến việc xây
dựng mô hình MVC như thế nào mà chỉ cần cấu hình và chạy tầng hiển thị của
dự án, điều này cho phép giảm thiểu chi phí đào tạo, thời gian phát triển dự án
nhanh hơn và cho phép hệ thống chạy ổn định trên các nền và hoặc module
tích hợp khác nhau. Với Struts ta có thể tách làm 3 tầng làm việc riêng biệt
một cách dễ dàng, thích hợp cho một dự án lớn, không bị nhập nhằng giữa việc
tạo giao diện, xử lý và truy xuất cơ sở dữ liệu. Struts 1. xx được công nhận như
một framework phổ biến nhất trong Java, Struts 1. xx đủ chín muồi và là một
giải pháp tốt cho nhóm phát triển để giải quyết các vấn đề chung nhất.
Ưu điểm: Struts 1 được thiết kế dựa trên mô hình MVC. Dùng để xây dựng các
ứng dụng web sử dụng sử dụng Java Servlet và Jsp. Ứng dụng Struts chạy
được trên
nhiều nền tảng, dễ học, dễ sử dụng, có kèm các thư viện thẻ cho việc phát triển
ứng dụng nhanh chóng hơn. Struts cho phép các lập trình viên:
- Phát triển ứng dụng web Jsp/Servlet theo mô hình MVC
- Sử dụng các đối tượng có sẵn của Framework trong file cấu hình Xml
- Sử dụng các mẫu thiết kế xây dựng sẵn của Framework
7
- Sử dụng nhiều tính năng nâng cao (Validation, …)
Những thuận lợi khi sử dụng:
- Struts đảm nhiệm những phần phức tạp nhất khi xây dựng ứng dụng MVC
- Dễ học, dễ sử dụng
- Nhiều tính năng được hỗ trợ

- Nhiều công cu hỗ trợ của bên thứ 3
- Linh động và dễ mở rộng
- Có một cộng đồng đông đảo
- Ổn định và không ngừng phát triển
- Mã nguồn mở hoàn toàn
- Tích hợp tốt với J2EE
- Hỗ trợ một thư viện thẻ cực kỳ hữu dụng
- Tích hợp với Tiles Framework.
Nhược điểm : Khó tìm hiểu, khó chuẩn hóa và đánh giá. Struts khó áp
dụng các phương pháp khác.
8
2.2 Strust2.
2.2.1 Giới thiệu về Strust 2.
- Vào tháng 12/2005,Struts và webwork framework đã được kết hợp với nhau để
phát triển nên Struts 2 Framework. Struts 2 Framework rất thích hợp và dễ dàng
mở rộng để phát triển các ứng dụng web với mức độ khác nhau
- Trang chủ: />- Struts 2.0x ra đời kế thừa nền tảng của webwork framework, được tổ chức
như một nền làm việc chuyên nghiệp với web, nhằm giải quyết các vấn đề phức
tạp, mang tính nghiệp vụ cao, khắc phục các nhược điểm của struts 1.
Struts 2 Framework đơn giản hóa hơn mô hình Struts 1 Framework và hỗ trợ việc xây
dựng ứng dụng Web theo mô hình MVC2 với những tiện ích hơn phiên bản trước như
là rút gọn tập tin cấu hình hay sử dụng Annotation thay thế cho tập tin cấu hình.
- Các bạn có thể sử dụng Eclipse hoặc Netbean IDE 8.0 kết hợp Tomcat 8.0
(tốt hơn nên dùng bản mới).
- Apache Struts 2 requires:
 Servlet API 2.4
 JSP API 2.0
 Java 5
2.2.2 Lợi ích Strust 2.
Struts 2 được xây dựng và phát triển dựa trên nền tảng mô hình MVC nên nó

thừa hưởng được đầy đủ các ưu điểm mà mô hình MVC đem lại.
- Dễ dàng tùy chỉnh (customize) chu kỳ xử lý (request lifecycles ) cho từng
action
9
- Giải quyết hiệu quả vấn đề internationlization và localization trong các ứng
dụng web
- Tự động chuyển đổi kiểu dữ liệu chuỗi truyền thống trong tham số request
parameter thành các đối tượng lớp dữ liệu java => tiết kiệm được thời gian và
công sức cho các lập trình viên
- Cung cấp các thẻ tag,các themes và templates giúp cho việc làm giao diện
GUI trở nên dễ dàng,nhanh lẹ và tăng tính tái sử dụng.
- Tính mở rộng (Extensibility) cao thông qua việc hỗ trợ các plug-in
- Hỗ trợ portal
- Hỗ trợ AJAX
- Dễ dàng tích hợp với Spring framework và Hibernate.
2.2.3 Kiến trúc của Strust 2 Framework.
Hình 2.2.3-1 Kiến trúc Struts2 Framework.
Action ContextCleanUp filter: sử dụng khi tích hợp với các công nghệ khác như
SiteMesh Plugin.
10
FillerDispatcher: sử dụng ActionMapper để xác định Action nào được triệu gọi. Nếu
Action được yêu cầu triệu gọi thì FilterDispatcher ủy nhiệm việc điều khiển lại cho
ActionProxy.
ActionProxy: Sử dụng bộ phận quản lý cấu hình file (Configuration Files manager),
được khởi tạo từ file struts.xml. Sau đó ActionProxy tạo ra một ActionInvocation, thực
thi xử lý triệu gọi bộ chặn (Interceptors) nếu nó được cấu hình và sau đó triệu gọi
Action. ActionInvocation tìm kiếm Action thích hợp, thực thi Action, và xác định các
View, JavaBeans tương ứng để lấy dữ liệu xử lý. Sau đó nó triệu gọi việc sinh ra trang
các JSP hoặc các mẫu để kết xuất dữ liệu trả về.
Các Interceptor được thực thi một lần nữa theo thứ tự ngược lại. Việc trả về kết quả

cuối cùng thông qua các bộ lọc được cấu hình trong file web.xml. Nếu bộ lọc
ActionContextCleanUp được cấu hình, thì FilterDispatcher không dọn dẹp
ThreadLocal ActionContext. Nếu bộ lọc ActionContextCleanUp không có thì
FilterDispatcher sẽ dọn dẹp tất cả các ThreadLocal tồn tại.
2.2.4 Luồng xử lý dữ liệu trong Strust2.
Hình 2.2.4-1 Luồng xử lý dữ liệu Struts2.
a. Người sử dụng gửi yêu cầu đến server để yêu cầu một số tài
nguyên của ứng dụng
b. Bộ điều khiển lọc (FilterDispatcher) xem xét yêu cầu và sau đó
xác định một Action thích hợp
11
c. Các bộ chặn (Interceptors) được ứng dụng: các cấu hình bộ chặn
áp dụng cho các chức năng chung như: luồng công việc, thẩm
định, tải file … được tự động ứng dụng vào yêu cầu
d. Thực thi Action: sau khi phương thức action được thực thi để
thực hiện các hoạt động liên quan đến cơ sở dữ liệu như sắp xếp
hoặc nhận dữ liệu từ cơ sở dữ liệu
e. Sinh kết quả
f. Sau đó kết quả yêu cầu được trả về thông qua bộ chặn theo chiều
ngược lại. Kết quả trả về cho phép chúng ta thực hiện thu dọn
hoặc thêm quá trình xử lý
g. Hiển thị kết quả cho người sử dụng: việc điều khiển cuối cùng
được trả về cho trình chứa servlet, nó sẽ gửi kết quả trả về cho
trình duyệt của người sử dụng.
2.2.5 So sánh Strust 1 và Strust 2.
Struts 1 Struts 2
Sử dụng ActionServlet làm
Controller
Sử dụng Fillter Dispatcher là
Controller

Đón nhận giá trị nhập bằng cách
dùng HTML Form kết hợp
ActionForm object và xử lý
validation nếu cần
Dùng các thuộc tính trong
Action class để đón nhận giá trị nhập
từ Form và thực hiện xử lý cùng với
validation nếu cần
Action bắt buộc implement Action
interface
Action class không cần bắt buộc
implement Action interface
Action là một Singleton pattern.
Duy nhất một instance của Action
đón nhận để xử lý mọi request.
Một Instance của Action sẽ đón
nhận một request khác nhau.
Gây khó khăn cho người dùng khi
cung cấp một hệ thống quá nhiều
taglib
Cung cấp một taglib duy nhất đảm
bảo đầy đủ các thành phần hỗ trợ xử
lý từ đơn giản đến nâng cao
Sử dụng EL và JSTL Sử OGNL để xử lý
Dùng cơ chế biên dịch của JSP để Sử dụng ValueStack cho phép taglib
12
kết nối các thành phần trong xử lý truy vập giá trị trong quá trình xử lý
Chia thành module để chuyển đổi
thao tác và đòi hỏi kết hợp của
switchAction để tạo sự kết hợp giữa

các thành phần khi làm việc theo
nhóm
Sử dụng cơ chế interceptor để đảm
bảo tích hợp nhiều thành phần và
nâng cấp ứng dụng một cách uyển
chuyển linh hoạt, đặc biệt là tích hợp
mà không làm ảnh hưởng các thành
phần có sẵn khi làm việc theo nhóm
Hình 2.2.5-2 Sự khác nhau giửa Struts2 và Struts1.
Sự khác nhau trên, với những ưu điểm của struts 2 so với struts 1 làm cho struts 2 trở
thành công cụ hữu ích cho các nhà thiết kế phần mềm Web hiện tại và tương lai.
2.3 Hibernate 4 Framework.
2.3.1 OMR Framework
Framework là một khái niệm trong phát triển phần mề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.
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. Lập trình
viên hoàn toàn không quan tâm đến loại database sử dụng như Phpmyadmin, SQL,…
2.3.2 Tổng quan về Hibernate.
Hibernate là một framework cho persistence layer, là một dịch vụ lưu trữ và truy vấn
dữ liệu quan hệ mạnh mẽ và nhanh chóng. Hibernate giúp người phát triển các Class
dùng để lưu trữ dữ liệu theo cách thức hướng đối tượng: association, inheritance,
polymorphism, composition và collections. Hibernate cho phép 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 – Hibernate
Query Language (HQL) hoặc là ngôn ngữ SQL nguyên thuỷ cũng như là sử dụng các
API.
13
Không giống như các persistence layer khác, Hibernate không che giấu đi sức mạnh
của ngôn ngữ SQL mà Hibernate còn đảm bảo việc truy vấn cơ sở dữ liệu một cách

mạnh mẽ dễ dàng khi thao tác với SQL truyền thống . Đặc biệt nó còn cung cấp thêm
một ngôn ngữ hổ trợ truy vấn đơn giản và tiện dụng hơn, giúp cho người phát triển
ứng dụng có thêm lựa chọn, đó là Hibernate Query Language. 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.
Các tính năng của Hibernate:
• Hibernate cung cấp ba đầy đủ tính năng tiện ích truy vấn: Hibernate Query
Language, Hibernate Criteria Query API và các truy vấn tự nhiên.
• Bộ lọc để làm việc với dữ liệu tạm thời ,vùng dữ liệu hoặc các dữ liệu được
phân quyền.
• Nâng cao khả năng truy vấn với API: với sự hỗ trợ đầy đủ cho các phép
chiếu ,phép kết hợp và phép chọn.
• Kiểm soát được thời gian chạy: thông qua JMX hoặc Java API, bao gồm cả bộ
đệm trình duyệt ở mức thứ cấp.
• Hỗ trợ IDE Eclipse, bao gồm một bộ Eclipse plug-in để làm việc với
Hibernate , bao gồm biên tập liên kết, tương tác với mẫu truy vấn, công cụ nhận
lại cấu trúc cơ sở dữ liệu.
• Hibernate là miễn phí theo LGPL: Hibernate có thể được dùng để phát triển
phân phối các ứng dụng miễn phí.
• Hibernate có thể mở rộng: Hibernate mang lại hiệu năng cao và kiến trúc 2 lớp
của nó có thể được sử dụng trong môi trường tập trung.
• Giảm thời gian phát triển ứng dụng: Hibernate làm giảm thời gian phát triển các
ứng dụng vì nó hỗ trợ thừa kế, đa hình, thành phần và các framework trong
java.
Hibernate XML cho phép liên kết dữ liệu được biểu diễn như XML và POJOs thay thế
cho nhau.
14
2.3.3 Kiến Trúc Hibernate.
Bảng 2.2.11-1 Kiến trúc Hibernate

15
Hibernate tạo ra một thể hiện của Entity Class ( Java class ánh xạ với các bảng
trong database) để duy trì dữ liệu cho Database, Đối tượng đó được gọi là Transient
Object, chưa được kết hợp với session , hoặc chưa tồn tại trong database. Để duy trì
một đối tượng cho database, phải khởi tạo một thể hiện của Session Factory
interface. Session factory là một singleton instance áp dụng Factory design pattern.
Session factory đọc hibernate.cfg.xml file và dùng Transaction Factory và
ConnectionProvider, nó áp dụng các cài đặt cấu hình trong Database.
Mỗi database connection trong hibernate được tạo ra bằng việc khởi tạo một thể
hiện của session interface. Mỗi session đại diện cho một kết nối đến Database. Và
một đối tượng session được tạo ra từ một đối tượng Session Factory.
Session Factory (org.hibernate.SessionFactory): là khái niệm về việc lưu trữ dữ liệu
duy nhất và thread safe. Bởi các đặc tính đó, nhiều threads có thể truy cập nó một
cách đồng thời và các session sẽ được yêu cầu, và sẽ không thay đổi bảng ánh xạ
của một database cụ thể. SessionFactory sẽ được built trong khoảng thời gian
startup.
Session (org.hibernate.Session) : dùng để lấy kết nối vật lý đến một database. Đối
tượng Session khá gọn nhẹ và được thiết kế để được khở tạo mỗi lần có tương tác
với database. Persistent objects được lưu và rút trích thông qua đối tượng Session.
Đối tượng session không nên tồn tại quá lâu vì nó không đảm bảo tính chất thread
safe.
Persistent objects and collections: các java class có kiến trúc gần giống với các table
trong databse, và có các đối tượng hoặc thể hiện sẽ được lưu trử vào database được
xem là các persistent classes. Hibernate sẽ làm việc tốt hơn nếu các lớp đó tuân theo
một số quy luật đơn giản được biết đến như là mô hình Plain Old Java Object
(POJO). Các Persistent objects sẽ được lưu xuống database thông qua việc
hibernate xác định các bảng tương ứng với các trường được liên kết thông qua file
ánh xạ.
16
Transient and detached objects and collections: một thể hiện của Persistent class mà

hiện tại không có liên quan gì đến org.hibernate.Session. Nó có thể được khởi tạo
bởi ứng dụng và chưa persisted, hoặc nó được khởi tạo bằng việc đóng
org.hibernate.Session.
Transaction: là một đối tượng single-thread, vòng đời ngắn, được ứng dụng dùng để
xác định một đơn vị công việc. Nó trừu tượng hoá ứng dụng từ các giao dịch nền
JDBC, JTA hoặc CORBA.
Để tạo nên ứng dụng Hibernate, có ba điều cần phải có, đó là:
1. Persistence Class:
Persistence class là một Plain Old Java Object hay POJO model. Một POJO là
tương tự như một JavaBean, có những getter và setter để truy câp các thuộc tính của
nó là những instance variable (biến thực thể). Persistence class có những đặc điểm
dưới đây:
 Nó là thay thế hướng đối tượng cho bảng ở cơ sở dữ liệu
 Các thuộc tính của bảng trở thành những instance variable của persistence
class.
 Kiểu dữ liệu của các instance variable là domain của các thuộc tính.
 Đối tượng của persistence class thay hế cho hàng của bảng.

2. Mapping file:
Mapping file là một file XML chứa ánh xạ chi tiết giữa persistence class và bảng nó
thay thế. Các thành phần bắt buộc của file XML này là:
• Hibernate-mapping: Đây là thành phần gốc bao tất cả các thành phần khác
• Class: được sử dụng để ánh xạ tên bản thành persistence class. Tên thuộc
tính được sử dụng để xác định tên lớp, và thuộc tính bản được sử dụng để
xác định bảng mà lớp thay thế. Ví dụ để ánh xạ một bản mang tên ORDERS
thành một persistence class với tên đầy đủ là com.someorg.persist.Order sẽ
17
như dưới đây:
<class name=”com.someorg.persist.Order” table=”ORDERS”>…</class>
• ID: Thành phần này sử dụng để ánh xạ khóa chíh của table thành một

instance variable của class. Thành phần cột con của id có thể sử dụng để ánh
xạ thành biến tương ứng. Giá trị của khóa chính có thể tự động tạo ra được
công bố ở đây. Thành phần generator có thể được sử dụng để nói cho
Hibernate một lớp sẽ được sử dụng ở đâu để tự động tạo id, hoặc id được gán
bởi ứng dụng.
<id name="id" type="string" unsaved-value="null">
<column name="id" sql-type="char(32)" not-null="true"/>
<generator class="assigned"/>
</id>
Ví dụ trên nói cho Hibernate rằng, tên của khóa chính là id mà nó đã được
ánh xạ thành instance variable "id". Kiểu dữ liệu của nó là "string" được ánh
xạ cho cột "id" có kiểu "char(32)" thay thế bởi thuộc tính sql-type. Thuộc ính
lớp của generator chứa giá trị "assigned" nghĩa là ứng dụng bản thân nó sẽ
cung cấp giá trị cho khóa chính.
• Property: thành phần này, thuộc về các cột thành phần con của nó, ánh xạ
những thuộc tính khác (hoặc các côt thành những instance variable của
persistence class. Thuộc tính name của property chứa tên của biến như một
giá trị. Thuộc tính name của thành phần column chứa tên của cột mà instance
variable được ánh xạ. Các thuộc tính length và sql-type trỏ đến độ dài và
kiểu dữ liệu của cột
<property name="name">
<column name="name" sql-type="char(255)" not-null="true"/>
</property>
• Hibernate là một công nghệ hổ trợ kết nối CSDL mạnh mẽ dựa trên mô hình
ORM, cung cấp các tuỳ chọn và tự động thực thi kết nối, quản lý kết nối, tạo
ra các lớp POJO ánh xạ trực tiếp đến các bảng trong CSDL bằng cách sử
dụng Hibernate Reverse tools.
• Ngoài ra, Hibernate còn cung cấp ngôn ngữ truy vấn HQL, là ngôn ngữ hoàn
toàn hướng đối tượng và hiểu các khái niệm như inheritance, polymorphism,
và association

18
19
Chương 5: Kết luận
3. Hibernate Configuration file:
File này có thể được gọi trỏ đến ứng dụng sử dụng Hibernate. Nguyên nhân là nó
chứa cấu hình điều khiển giao tiếp với database ở phía dưới. Ở đây, tất cả các file
mapping được sử dụn bởi ứng dụng được công bố. Địnn dạng thành phần của
hibernate-configuration là thành phần gốc. Hầu hết các thành phần thông dụng sử
dụng trong file XML là:
• Property: Thuộc tính name của thành phần property có thể được sử dụng để
cấu hình những tham số khác nhau. Trong công nghệ Hibernate, những tham
số này được biết như là những tham số property. Kiểu database server
(MySQL, Oracle ), dialect class, URL của database, username/password
là những tham số property khác nhau. Để đặt chúng vào trong mã:
<session-factory>
<! Database connection settings >
<property
name="connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="connection.url">jdbc:hsqldb:data/tutorial</property>
<property name="connection.username">sa</property>
:
:
</session-factory>
• Mapping: Nó là thành phần kết nối tất cả các file mapping,, cũng gọi là các
file hbm, được sử dụng bởi ứng dụng đã công bố. Thuộc tính resource được
cho giá trị của đường dẫn file hbm.
<mapping resource="Event.hbm.xml"/>
19
20
Chương 5: Kết luận

CHƯƠNG 3: XÂY DỰNG WEBSITE
3.1 Thiết kế giao diện người dùng.
3.1.1 Menu quản lý người dùng.
Hình Menu quản lý người dùng khi chưa đăng nhập
Hình 8 Menu quản lý người dùng sau khi đăng nhập.
Hình 9 Menu quản lý người dùng, account của Administrator.
20
21
Chương 5: Kết luận
3.1.2 Menu trái.
21
22
Chương 5: Kết luận
3.1.3 Thêm sản phẩm vào giỏ hàng.
Hình 11 Khi thêm sản phẩm vào giỏ hàng
3.1.4 Màn hình khi đặt hàng.
22
23
Chương 5: Kết luận
3.1.5 Màn hình yêu cầu khách hàng xác nhận đơn đặt hàng.
Hình 13 Màn hình yêu cầu khách hàng xác nhận đơn đặt hàng.
23
24
Chương 5: Kết luận
3.1.6 Mục nhận xét sản phẩm.
Hình 14 Màn hình show comment của các người dùng có nhận xét.
3.2 Màn hình dành cho Administrator.
24
25
Chương 5: Kết luận

3.2.1 Màn hình quản lý Facrory.
3.2.2 Màn hình quản lý Comment.
3.3 Thiết kế màn hình và cơ sở dữ liệu.
3.3.1 Thiết kế sơ đồ use case.
Hình use case quản lý bán hàng.
3.3.2 Mô tả use case.
Use case Đặt hàng
Mô tả chung Use case cho phép người dùng đặt mua
sản phẩm trên trang web kể cả khi
người dùng không có tài khoản
Các actor liên quan User
Điều kiện tiên quyết Không
Luồng chính Use case bắt đầu khi người dùng nhấn
vào nút BuyNow
Người dùng sẽ chọn sản phẩm
Sau đó người dùng nhấn vào nút
PayMent và thanh toán
Tiếp theo người dùng sẽ điến các thông
tin cần thiết vào (Địa chỉ, họ tên, ngày
sinh …) hoặc đăng nhập để đặt hàng.
25

×