1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo kết thúc môn lập trình java nâng cao Đề tài website mua bán hàng online

63 8 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Website Mua Bán Hàng Online
Tác giả Đỗ Thái Dương, Lê Tuấn Lực
Người hướng dẫn TS. Lý Quỳnh Trân
Trường học Trường Đại Học Kiến Trúc
Chuyên ngành Lập Trình Java Nâng Cao
Thể loại báo cáo
Năm xuất bản 2022
Thành phố Đà Nẵng
Định dạng
Số trang 63
Dung lượng 6,7 MB

Cấu trúc

  • CHƯƠNG 1. KHẢO SÁT THỰC TRẠNG HỆ THỐNG (7)
    • 1.1. Khảo sát thực trạng (7)
    • 1.2. Phát biểu bài toán/đề tài/dự án (8)
    • 1.3. Đề xuất các giải pháp kiến nghị để giải quyết bài toán/đề tài/dự án.6 1.4. Tiền xác định các yếu tố liên quan với dự án (9)
    • 1.5. Xây dựng kế hoạch công việc cụ thể chi tiết để thực hiện (10)
  • CHƯƠNG 2. PHÂN TÍCH, THIẾT KẾ VÀ TRIỂN KHAI THỰC HIỆN (11)
    • 2.1. Tóm lược các nội dung quan trọng cần thực hiện (11)
    • 2.2. Phân tích và thiết kế hệ thống (11)
      • 2.2.1. Tác nhân của hệ thống (11)
      • 2.2.2. Các chức năng của trang web mua bán hàng online (12)
    • 2.3. Biểu đồ use case (13)
      • 2.3.1. Biểu đồ Use case tổng quát (13)
      • 2.3.2. Biểu đồ Usecase khách hàng (14)
      • 2.3.3. Biểu đồ Usecase đăng nhập (14)
      • 2.3.4. Biểu đồ Usecase đăng ký (16)
      • 2.3.5. Biểu đồ Usecase quản lý sản phẩm (17)
      • 2.3.6. Biểu đồ Usecase quản lý giỏ hàng, thanh toán (19)
    • 2.4. Biểu đồ lớp (21)
    • 2.5. Biểu đồ tuần tự (22)
      • 2.5.2. Biểu đồ tuần tự đăng xuất (23)
      • 2.5.3. Biểu đồ tuần tự đăng ký (24)
      • 2.5.4. Biểu đồ tuần tự thanh toán (25)
      • 2.5.5. Biểu đồ tuần tự quản lý sản phẩm (26)
    • 2.6. Đặc tả các quy trình nghiệp vụ (29)
      • 2.6.1. Khách hàng thêm sản phẩm vào giỏ hàng và thanh toán (29)
      • 2.6.2. Người dùng đăng ký tài khoản (30)
      • 2.6.3. Đăng nhập tài khoản (31)
      • 2.6.4. Người dùng đăng xuất (32)
      • 2.6.5. Admin thêm thông tin sản phẩm (33)
      • 2.6.6. Admin chỉnh sửa thông tin sản phẩm (34)
      • 2.6.7. Admin xoá thông tin sản phẩm (35)
    • 2.7. Thiết kế cơ sở database với MySQL Server (36)
  • CHƯƠNG 3. KHÁI QUÁT CÔNG NGHỆ SỬ DỤNG (41)
    • 3.1. Hibernate framework? (41)
      • 3.1.1. Hibernate framework là gì? (41)
      • 3.1.2. Lợi ích khi sử dụng Hibernate framework (41)
    • 3.2. Spring MVC (42)
      • 3.2.1. Spring MVC là gì? (42)
      • 3.2.2. Cấu trúc Spring MVC và các thành phần chứa bên trong Model – (42)
      • 3.2.3. Các lợi ích của Spring MVC là gì? (43)
      • 3.2.4. Thành phần controller trong spring MVC (44)
    • 3.3. Spring boot (44)
      • 3.3.1. Spring boot là gì? (44)
      • 3.3.2. Tác dụng của Spring Boot (45)
    • 3.4. Thành phần cốt lõi của Spring Framework (45)
      • 3.4.1. Spring Bean (46)
      • 3.4.2. Dependency Injection (DI) (46)
      • 3.4.3. Spring Context (46)
    • 3.5. Tổng kết (46)
  • CHƯƠNG 4. ĐÁNH GIÁ KẾT QUẢ ĐẠT ĐƯỢC (47)
    • 4.1. Demo code và giao diện sản phẩm (47)
      • 4.1.1. Giao diện sản phẩm (47)
      • 4.1.2. Một số hình ảnh của source code (55)
  • CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (63)
    • 5.1. Thực hiện được (63)
    • 5.2. Hướng phát triển (63)

Nội dung

Phát biểu bài toán/đề tài/dự án Đề tài “Xây dựng website mua bán hàng online” tập trung xây dựng một ứng dụng hoạt động trên các nền tảng web và khởi chạy tốt trên tất cả các nền tảng hệ

KHẢO SÁT THỰC TRẠNG HỆ THỐNG

Khảo sát thực trạng

Trong 5 năm qua, các website và ứng dụng mua bán hàng online đang phát triển mạnh mẽ, mặc dù có dấu hiệu thoái trào Tuy nhiên, tính ứng dụng cao của chúng vẫn được duy trì, với giao diện dễ sử dụng cho cả người quản lý và người tiêu dùng Một số điểm nổi bật của các nền tảng này bao gồm tính thân thiện với người dùng và khả năng quản lý hiệu quả.

Để đáp ứng nhu cầu quản lý hiệu quả cho các bên quản lý, đồng thời tạo sự tiện lợi trong việc kết nối giữa khách hàng và nhà phân phối sản phẩm.

Việc kết nối giữa người mua và người bán qua các ứng dụng mua sắm trực tuyến trở nên dễ dàng hơn nhờ vào quản lý và sắp xếp rõ ràng.

Việc hợp tác giữa các bên mua và bán không chỉ tạo điều kiện thuận lợi mà còn giúp tìm ra các giải pháp tối ưu cho nguồn hàng nhập và mua, mang lại lợi ích cho cả người bán lẫn người mua.

- Các chức năng điển hình chung có thể kể đến:

Tra cứu thông tin sản phẩm và hàng hóa sẵn có bao gồm các dữ liệu quan trọng như tên sản phẩm, chức năng, thời gian có sẵn, thông tin người dùng hoặc quản trị viên đã thực hiện giao dịch, cùng với các hóa đơn thanh toán liên quan.

+ Đặt hàng (gọi chung là booking), review booking, chỉnh sửa booking, huỷ booking.

+ Tra cứu và chỉnh sửa thông tin người dùng từ cả admin cũng như user. + Đánh giá booking thông qua lượt thích hoặc số lần tìm mới.

+ Admin quản lý đầu vào sản phẩm, danh mục sản phẩm và người dùng.

Các vấn đề còn tồn đọng cần được cải thiện:

Mặc dù đề tài có tính ứng dụng cao, nhưng độ tin cậy trong quản lý và tương tác giữa admin và người dùng trên ứng dụng hoặc trang web vẫn chưa đạt 100% do các vấn đề bảo mật nhất định.

Giá thành sản phẩm của các ứng dụng nổi tiếng trên thị trường đôi khi chưa được điều chỉnh hợp lý, dẫn đến sự không cân bằng so với mức giá chung mà người dùng mong đợi trên một số trang web nhất định.

Các ứng dụng hiện nay thường có tính thương mại cao và cam kết lắng nghe phản hồi từ người dùng, nhưng thực tế cho thấy họ chưa thực sự quan tâm đến ý kiến đóng góp của người dùng Do đó, cần chủ động lắng nghe và tiếp nhận feedback từ người dùng hơn, không chỉ dừng lại ở các quản trị viên, nhằm cải thiện chất lượng và độ tin cậy của ứng dụng.

Phát biểu bài toán/đề tài/dự án

Đề tài “Xây dựng website mua bán hàng online” nhằm phát triển một ứng dụng hoạt động trên nền tảng web, tương thích với các hệ điều hành hỗ trợ trình duyệt như Chrome và Firefox Mục tiêu chính là tạo điều kiện thuận lợi cho người quản lý (admin) và người dùng (user) trong việc quản lý mua bán hàng trực tuyến, đồng thời tự động hóa các quy trình để nâng cao hiệu quả và tiện ích.

Các chức năng chính của ứng dụng:

- Đăng nhập tài khoản quản lý.

- Đăng nhập tài khoản người dùng.

- Tìm kiếm và xem thông tin về các sản phẩm có sẵn.

- Đặt, cập nhật, review, huỷ các đơn hàng (bookings) cho sản phẩm mong muốn.

- Chỉnh sửa và cập nhật hồ sơ người dùng.

Đề xuất các giải pháp kiến nghị để giải quyết bài toán/đề tài/dự án.6 1.4 Tiền xác định các yếu tố liên quan với dự án

Xây dựng và triển khai giao diện: sử dụng các giao diện có sẵn ở bên thứ 3.

Framework và các công cụ hỗ trợ sử dụng chính: Java Spring Boot, MySQL Server, Hibernate Core.

Ngôn ngữ sử dụng: Java, JSP.

Các mục khác cần chuẩn bị: Máy tính hoặc laptop đi kèm để test one-by-one với máy deploy chính.

Các thư viện sử dụng core đi kèm bao gồm các phiên bản jar tương ứng, hỗ trợ việc triển khai trên nền tảng web Ngoài ra, JavaScript được sử dụng để chèn các dòng script vào nội dung JSP của trang web, tương tự như HTML Đặc biệt, Bootstrap 4 được áp dụng để tối ưu hóa giao diện người dùng.

1.4 Tiền xác định các yếu tố liên quan với dự án

Các tác nhân hay các nhân tố chính sử dụng trang web chính: Admin (quản trị viên) và User (người dùng)

- Các chức năng thiết yếu của Admin bao gồm:

● Quản lý sản phẩm: thêm, sửa, xóa sản phẩm

● Quản lý các User: xoá các User nếu thấy thực sự cần thiết.

● Quản lý danh mục sản phầm: thêm, sửa, xoá danh mục sản phẩm

- Các chức năng thiết yếu của User bao gồm:

● Xem, chỉnh sửa hồ sơ người dùng

● Xem thông tin sản phẩm

● Tìm kiếm và các thông tin về sản phẩm

Xây dựng kế hoạch công việc cụ thể chi tiết để thực hiện

Kế hoạch xây dựng ứng dụng và các công việc cụ thể được thực hiện chi tiết trong khoảng thời gian 2 tuần từ ngày 24/11/2022 đến 08/12/2022 như sau:

Ngày Công việc thực hiện Trạng thái công việc

Phân tích, thiết kế hệ thống ban đầu cho ứng dụng Đã hoàn thành

Phác thảo giao diện từ bên thứ 3 và tiến hành chỉnh sửa một số UI để phù hợp với dự án. Đã hoàn thành

Thiết kế giao diện ứng dụng bằng Java SpringBoot, hoàn thành các giao diện sử dụng chung và bàn giao cho teammate. Đã hoàn thành

Xây dựng cầu nối tương tác giữa data (API) và UI của app, apply logic vào trong website tương ứng với UI. Đã hoàn thành

Hoàn thiện ứng dụng, thực hiện kết nối với MySQL để testing và fix một số bug UI Đã hoàn thành

08/12/2022 Review sản phẩm với teammate và hoàn thiện báo cáo. Đã hoàn thành

PHÂN TÍCH, THIẾT KẾ VÀ TRIỂN KHAI THỰC HIỆN

Tóm lược các nội dung quan trọng cần thực hiện

- Phân tích thiết kế hệ thống ban đầu cho ứng dụng.

- Phác thảo giao diện từ bên thứ ba và chỉnh sửa giao diện UI/UX phù hợp.

- Thiết kế kiến trúc chung cho ứng dụng sử dụng các mô hình MVC hoặc

MVVM hoặc hướng tiếp cận sử dụng Servlet.

- Liệt kê & xây dựng tương tác các chức năng chính, tương tác chính với database trong MySQL.

- Code giao diện UI/UX sử dụng JSP.

- Tiến hành apply các data tương ứng với các logic của project thông qua mô hình MVC.

- Tiến ành apply các logic tương ứng với UI của project.

- Chạy thử trên localhost và các máy tính khác so sánh kết quả.

- Kiểm thử & fix bug (nếu có).

Phân tích và thiết kế hệ thống

2.2.1 Tác nhân của hệ thống

Admin là nhân tố chủ chốt trong hệ thống trang web, đảm nhận vai trò quản lý và giám sát toàn bộ hoạt động diễn ra Họ có khả năng thực hiện hầu hết các chức năng của hệ thống và đề xuất các giải pháp nhằm tối ưu hóa việc quản lý trang web.

Khách hàng là tác nhân chính trong việc truy cập website, đăng ký tài khoản, tìm kiếm và xem sản phẩm, cũng như danh mục sản phẩm Họ có thể chỉnh sửa hồ sơ cá nhân và thực hiện mua hàng thông qua hai bước quan trọng: lập hóa đơn và thanh toán sản phẩm.

2.2.2 Các chức năng của trang web mua bán hàng online:

 Đăng ký: cho khách hàng đăng ký tài khoản để đăng nhập vào hệ thống bằng tài khoản.

 Đăng nhập: cho phép admin, khách hàng đăng nhập vào hệ thống bằng tài khoản.

 Thêm sản phẩm: cho phép admin thêm sản phẩm vào hệ thống

 Xóa sản phẩm: cho phép admin xóa các sản phẩm khỏi hệ thống

 Cập nhật sản phẩm: cho phép admin cập nhật lại thông tin sản phẩm trên hệ thống

 Tìm kiếm: Giúp admin, khách tìm kiếm thông tin bài viết, sản phẩm.

 Thêm sản phẩm vào giỏ hàng: cho phép khách hàng chọn để lưu các sản phẩm mình yêu thích vào giỏ hàng.

 Mua hàng: khách hàng có thể mua các sản phẩm mình yêu thích trên hệ thống.

 Xem chi tiết sản phẩm: khách hàng có thể xem chi tiết các sản phẩm.

Biểu đồ use case

2.3.1 Biểu đồ Use case tổng quát

2.3.2 Biểu đồ Usecase khách hàng

Hình 2 Biểu đồ Usecase khách hàng

2.3.3 Biểu đồ Usecase đăng nhập

Hình 3 Biểu đồ Usecase đăng nhập Đặc tả Use Case đăng nhập:

 Tên Use Case: Đăng nhập hệ thống

 Tác nhân: Khách hàng, Quản trị viên

 Mô tả: Cho phép tác nhân đăng nhập vào website để thực hiện các chức năng riêng biệt

Trong quá trình đăng nhập, tác nhân mở giao diện đăng nhập và nhập tên đăng nhập cùng mật khẩu của mình Hệ thống sau đó sẽ kiểm tra và xác minh thông tin mà tác nhân đã cung cấp.

 Khởi động hệ thống: Chọn form đăng nhập

 Nếu là admin thì đăng nhập với quyền quản trị Nếu là người dùng thì đăng nhập để xem phim

 Điền đầy đủ thông tin: Username, Password

 Chọn nút “Login” hoặc “Cancel”

Khi người dùng chọn nút "Login", hệ thống sẽ xác minh tính chính xác của Username và Password Nếu thông tin đăng nhập đúng, chương trình sẽ được kích hoạt tự động Ngược lại, nếu thông tin không chính xác, hệ thống sẽ thông báo lỗi và yêu cầu người dùng nhập lại.

 Nếu chọn nút “Cancel”: Chương trình sẽ kết thúc.

 Điều kiện trước: Phải có sẵn tài khoản trong hệ thống.

 Điều kiện sau: Phải kích hoạt được hệ thống.

 Thông tin chính xác hệ thống đưa tác nhân truy cập hệ thống.

Nếu thông tin tài khoản hoặc mật khẩu không khớp với dữ liệu trong hệ thống, hệ thống sẽ thông báo đăng nhập thất bại và yêu cầu tác nhân cung cấp lại thông tin hoặc chọn thoát Tác nhân có thể lựa chọn tiếp tục nhập lại thông tin.

“Thoát”, hệ thống sẽ đưa tác nhân trở lại trang chủ.

 Kết thúc quá trình đăng nhập

 Yêu cầu đặc biệt: cần kết nối với mạng Internet

 Kết quả trả về: Thông báo tác nhân có đăng nhập thành công hay không  Các luồng tương tác: Tác nhân đăng nhập vào hệ thống.

2.3.4 Biểu đồ Usecase đăng ký

Hình 4 Biểu đồ Usecase đăng ký Đặc tả Use Case đăng ký:

 Tên Use Case: Đăng ký hệ thống

 Tác nhân: Khách hàng, Quản trị viên

 Mô tả: Cho phép tác nhân đăng ký thông tin vào website để tạo tài khoản.

 Tác nhân tiến hành mở giao diện đăng ký.

 Tác nhân điền đầy đủ thông tin mà hệ thống yêu cầu.

 Hệ thống tiến hành cập nhập thông tin và gửi email xác nhận đăng ký tài khoản cho tác nhân.

 Tác nhân bấm vào link xác nhận đăng ký.

 Hệ thống lưu thông tin đăng ký, đưa ra thông báo đăng ký thành công và đưa tác nhân đến màn hình đăng nhập

 Kết thúc quá trình đăng ký.

 Yêu cầu đặc biệt: Thông tin về họ tên, số điện thoại, địa chỉ và email cần phải chính xác

 Kết quả trả về: Thông báo tác nhân có đăng ký thành công hay không.

 Các luồng tương tác: Tác nhân đăng ký tài khoản.

2.3.5 Biểu đồ Usecase quản lý sản phẩm

Hình 5 Biểu đồ Usecase quản lý sản phẩm Đặc tả Use Case quản lý sản phẩm:

 Tên Use Case: Quản lý sản phẩm

 Tác nhân: Quản trị viên

 Mô tả: Cho phép có thể thêm các sản phẩm, xóa các sản phẩm và sửa các thông tin của sản phẩm trên hệ thống.

 Tác nhân tiến hành đăng nhập vào hệ thống.

 Tác nhân truy cập trang quản lý sản phẩm bằng tài khoản quản trị viên.

 Hệ thống tiến hành xác minh tài khoản, nếu chính xác hệ thống đưa tác nhân đến trang quản lý.

 Hệ thống tiến hành hiển thị kết quả các danh mục quản lý của sản phẩm.

 Tác nhân thực hiện các tác vụ thêm, sửa, xoá theo yêu cầu của tác nhân, hệ thống sẽ lưu trữ dữ liệu vừa được thêm vào lên database.

 Sau khi thực hiện xong, kết thúc quá trình quản lý bằng việc Tác nhân bấm “Thoát” để kết thúc quá trình quản lý sản phẩm.

 Yêu cầu đặc biệt: Không có

 Kết quả trả về: Thông báo tác nhân có thêm, sửa hay xóa thành công thông tin sản phẩm.

 Các luồng tương tác: Tác nhân quản lí thông tin sản phẩm của cửa hàng.

2.3.6 Biểu đồ Usecase quản lý giỏ hàng, thanh toán:

Hình 6 Biểu đồ Usecase quản lý sản phẩm Đặc tả Use Case đăng ký:

 Tên Use Case: giỏ hàng, thanh toán sản phẩm.

 Mô tả: Cho phép tác nhân quản lý giỏ hàng và thanh toán sản phẩm.

 Tác nhân nhấn nút “Mua” sản phẩm.

 Hệ thống tiến hành tạo ra một giỏ hàng, đưa sản phẩm tác nhân chọn vào.

 Hệ thống thông báo thêm thành công sản phẩm, lưu dữ liệu vào giỏ hàng.

 Tác nhân thực hiện các tác vụ thêm, sửa, xoá, tìm kiếm theo yêu cầu của tác nhân

 Tác nhân có thể tiến hành xóa sản phẩm khỏi giỏ hàng bằng nút

 Hệ thống tiến hành xóa dữ liệu khỏi giỏ hàng, thông báo xóa thành công

 Tác nhân sau khi chọn xong sản phẩm cần mua, nhấn vào nút

 Hệ thống đưa ra một thông báo yêu cầu tác nhân xác nhận việc đặt hàng

 Tác nhân xác nhận đơn hàng bằng nút “Xác nhận” hay có thể hủy bằng nút “Hủy bỏ”

Khi đơn hàng được xác nhận, hệ thống sẽ hiển thị thông báo xác nhận thành công Nhân viên cửa hàng sẽ liên lạc với khách hàng và đồng thời lưu trữ đơn hàng vào cơ sở dữ liệu.

 Hệ thống xóa bỏ đơn hàng

 Nếu hủy đơn hàng, hệ thống sẽ hủy yêu cầu mua hàng và đưa tác nhân về trang giỏ hàng

 Kết thúc quá trình thanh toán.

 Yêu cầu đặc biệt: Tác nhân phải tiến hành đăng nhập tài khoản mới có thể mua hàng

 Kết quả trả về: Thông báo tác nhân có thêm hàng, thanh toán sản phẩm thành công hay không

 Các luồng tương tác: Tác nhân quản lí giỏ hàng và thanh toán.

Biểu đồ lớp

Biểu đồ tuần tự

2.5.1 Biểu đồ tuần tự đăng nhập tài khoản

Hình 8 Biểu đồ tuần tự đăng nhập tài khoản

2.5.2 Biểu đồ tuần tự đăng xuất

Hình 8 Biểu đồ tuần tự đăng xuất

2.5.3 Biểu đồ tuần tự đăng ký:

Hình 9 Biểu đồ tuần tự đăng ký

2.5.4 Biểu đồ tuần tự thanh toán:

Hình 10 Biểu đồ tuần tự thanh toán

2.5.5 Biểu đồ tuần tự quản lý sản phẩm:

- Chức năng thêm sản phẩm:

Hình 11 Biểu đồ tuần tự quản lý sản phẩm: Thêm sản phẩm

- Chức năng cập nhật thông tin sản phẩm:

Hình 12 Biểu đồ tuần tự quản lý sản phẩm: Cập nhật thông tin sản phẩm

- Chức năng xoá sản phẩm:

Hình 13 Biểu đồ tuần tự quản lý sản phẩm: Xoá sản phẩm

Đặc tả các quy trình nghiệp vụ

2.6.1 Khách hàng thêm sản phẩm vào giỏ hàng và thanh toán

Hình 14 Biểu đồ đặc tả thêm sản phẩm vào giỏ hàng

2.6.2 Người dùng đăng ký tài khoản:

Hình 15 Biểu đồ đặc tả người dùng đăng ký tài khoản

Hình 16 Biểu đồ đặc tả người dùng đăng nhập tài khoản

Hình 17 Biểu đồ đặc tả người dùng đăng xuất

2.6.5 Admin thêm thông tin sản phẩm:

Hình 18 Biểu đồ đặc tả admin thêm thông tin sản phẩm

2.6.6 Admin chỉnh sửa thông tin sản phẩm:

Hình 19 Biểu đồ đặc tả admin sửa thông tin sản phẩm

2.6.7 Admin xoá thông tin sản phẩm:

Hình 20 Biểu đồ đặc tả admin xoá thông tin sản phẩm

Thiết kế cơ sở database với MySQL Server

KHÁI QUÁT CÔNG NGHỆ SỬ DỤNG

Hibernate framework?

The Hibernate framework is a lightweight, open-source ORM (Object Relational Mapping) solution that simplifies Java application development for database interaction.

ORM là công cụ giúp đơn giản hóa việc tạo, thao tác và truy cập dữ liệu, đóng vai trò quan trọng trong lập trình Kỹ thuật này cho phép ánh xạ các đối tượng vào dữ liệu được lưu trữ trong cơ sở dữ liệu, mang lại hiệu quả và tiện lợi cho các lập trình viên.

Các tool ORM sử dụng JDBC API để tương tác với cơ sở dữ liệu.

3.1.2 Lợi ích khi sử dụng Hibernate framework

Hibernate Framework có các lợi ích như dưới đây:

1 Mã nguồn mở và nhẹ: Hibernate Framework là mã nguồn mở có giấy phép LGPL và nhẹ.

2 Hiệu suất nhanh: Hiệu suất của Hibernate Framework là nhanh bởi vì bộ nhớ cache được sử dụng trong nội bộ Hibernate Framework Có hai loại bộ nhớ cache trong Hibernate Framework, gồm bộ nhớ cache cấp một và bộ nhớ cache cấp hai Bộ nhớ cache cấp một được bật bằng lệnh mặc định.

3 Truy vấn cơ sở dữ liệu độc lập: HQL (Hibernate Query Language) là phiên bản hướng đối tượng của SQL Nó tạo ra các truy vấn cơ sở dữ liệu độc lập.

Trước khi có Hibernate, việc thay đổi cơ sở dữ liệu trong dự án yêu cầu chúng ta phải điều chỉnh các truy vấn SQL, dẫn đến khó khăn trong việc bảo trì Với Hibernate, bạn không cần phải viết các truy vấn cơ sở dữ liệu cụ thể, giúp giảm thiểu sự phức tạp và tăng cường hiệu quả bảo trì.

4 Tạo bảng tự động: Hibernate framework cung cấp phương tiện để tạo ra các bảng cơ sở dữ liệu tự động Vì vậy, không cần phải tạo ra các bảng trong cơ sở dữ liệu bằng tay.

5 Đơn giản lệnh join phức tạp: Có thể lấy dữ liệu từ nhiều bảng một cách dễ dàng với Hibernate framework.

6 Cung cấp thống kê truy vấn và trạng thái cơ sở dữ liệu: Hibernate hỗ trợ bộ nhớ cache truy vấn và cung cấp số liệu thống kê về truy vấn và trạng thái cơ sở dữ liệu.

Spring MVC

Spring MVC là một mô hình ứng dụng giúp phân tách các thành phần thành nhiều lớp riêng biệt, với mỗi lớp đảm nhiệm các nhiệm vụ đặc trưng khác nhau.

Với nhu cầu ngày càng tăng trong việc xây dựng ứng dụng web nhanh chóng và tiện lợi, Spring MVC đã ra đời để hỗ trợ triển khai dự án hiệu quả hơn Spring MVC áp dụng cấu trúc MVC (Model-View-Controller), cung cấp các API giúp việc phát triển ứng dụng web trở nên dễ dàng và có quy tắc hơn.

3.2.2 Cấu trúc Spring MVC và các thành phần chứa bên trong Model – View – Controller

Model là lớp chứa thông tin của các đối tượng (Dữ liệu), tương tác với

Database Trong Spring MVC nó gồm các file POJO, Service, DAO thực hiện truy cập database, xử lý business.

View là khu vực hiển thị nội dung và tương tác trực tiếp với người dùng trong ứng dụng Spring Khi làm việc với Spring, người phát triển sử dụng các template engine mã nguồn mở, giúp tái sử dụng các thành phần chung giữa các trang web và xử lý nhiều loại ngôn ngữ như HTML, XML, Javascript và CSS.

Controller trong Spring MVC tiếp nhận yêu cầu từ người dùng, xử lý yêu cầu để tạo dữ liệu cho view (model) và chọn view để trả lại kết quả Các thành phần chính của controller bao gồm Dispatcher Controller và Handler Mapping.

● Một annotation @Controller được khai báo cùng với định nghĩa của lớp

HomeController và một annotation @RequestMapping được khai báo cùng với định nghĩa của phương thức home().

● Phương thức home() trong lớp HomeController đang trả về một chuỗi

Chuỗi “home” xác định tên view dùng để hiển thị kết quả yêu cầu cho người dùng Biến model lưu trữ dữ liệu cần thiết cho view “home”, trong khi biến locale của đối tượng Locale giúp lấy thông tin về ngày giờ của server đang chạy website.

3.2.3 Các lợi ích của Spring MVC là gì?

Hiện nay, Spring MVC được sử dụng vô cùng phổ biến và được đánh giá cao nhờ sở hữu những điểm mạnh như:

● Các tầng có trong Spring MVC thường độc lập nên việc unit test sẽ trở nên dễ dàng hơn rất nhiều.

● Phần view của chúng sẽ được tích hợp với nhiều Framework về UI như là: JSF, Freemarker hoặc Themeleaf,

● Spring MVC base có trên các POJO class nên hành động của chúng thường sẽ đơn giản hơn.

● Có thể hỗ trợ được cả Annotation và XML config giúp cho quá trình phát triển trở nên sạch hơn và nhanh hơn rất nhiều.

● Có thể cung cấp giúp việc phân chia trở nên rõ ràng, linh hoạt hơn giữa các controller, service, data access layer.

3.2.4 Thành phần controller trong spring MVC

Controller là công nghệ chủ chốt giúp Spring MVC trở nên phổ biến và hiệu quả Thành công của Spring MVC dựa vào các thành phần chính.

● Mỗi một annotation @controller được khai báo với định nghĩa của lớp

Annotation @RequestMapping được sử dụng để định nghĩa URL yêu cầu và phương thức HTTP cho phương thức home() Trong annotation này, thuộc tính value xác định URL, trong khi thuộc tính method chỉ định phương thức yêu cầu HTTP.

Phương thức home() trong lớp HomeController trả về chuỗi "home", giúp định nghĩa tên view và hiển thị kết quả yêu cầu cho người dùng.

● Với phương thức home() có nhiệm vụ xây dựng một biến model giúp lưu trữ dữ liệu cần thiết dành cho view “home” sử dụng.

● Phương thức home() còn dùng biến locale của đối tượng Locale giúp lấy dữ liệu ngày giờ của server đang chạy trên website.

Spring boot

Spring Boot là một framework của Spring được nhiều lập trình viên ưa chuộng, vì nó giúp đơn giản hóa quá trình phát triển ứng dụng Với Spring Boot, lập trình viên có thể tập trung vào việc phát triển các tính năng kinh doanh mà không phải lo lắng về cấu hình phức tạp.

Spring Boot được coi như là điểm khởi đầu để xây dựng tất cả các ứng dụng dựa trên nền tảng Spring.

3.3.2 Tác dụng của Spring Boot

Spring Boot được sử dụng để phát triển các dự án Spring vì nó mang lại nhiều lợi ích và lý do chính đáng cho sự phát triển của nó.

● Giúp xây dựng ứng dụng Spring độc lập (stand-alone) bao gồm gần như mọi thứ REST API, WebSocket, Web, Streaming …

● Giúp giảm tối ưu công đoạn cấu hình và không yêu cầu cấu hình thông qua XML.

● Có thể nhúng trực tiếp Tomcat, Jetty, Undertow… do đó không cần phải triển khai tập tin WAR.

● Tích hợp các loại mô-đun khác nhau trong các loại Spring như Spring

Data, Spring MVC, Spring Security, Spring JDBC, Spring ORM…

● Các starter dependency làm cho việc thêm các hỗ trợ phù hợp cho project giúp cấu hình ban đầu nhanh hơn.

● Bạn có thể dễ dàng phát triển các ứng dụng Spring dựa trên các loại ngôn ngữ khác như Java hoặc Groovy.

● Spring Boot có thể tự động cấu hình Spring mỗi khi cần thiết.

● Hỗ trợ nhiều IDE như Spring Tool Suite, IntelliJ IDEA, NetBeans hoặc cũng có thể cấu hình đơn giản và dùng Sublime Text để phát triển luôn.

● Không sinh code cấu hình và không yêu cầu phải cấu hình bằng XML …

Thành phần cốt lõi của Spring Framework

Spring Core là thành phần cốt lõi quan trọng của Spring Framework, nổi bật với sự vững chắc, giúp xây dựng nhiều thành phần khác trong hệ sinh thái Spring Các thành phần hỗ trợ cho Spring Core đóng vai trò thiết yếu trong việc phát triển ứng dụng.

Spring Bean là trung tâm của Spring Core và đóng vai trò quan trọng trong ứng dụng Spring Spring Framework được xây dựng dựa trên các POJO hoặc Spring Bean, mà bạn có thể hiểu là những đối tượng Java đơn giản.

Dependency Injection là một trong những tính năng mạnh mẽ của Spring Framework, giúp quản lý các phụ thuộc trong ứng dụng một cách hiệu quả Trong các phiên bản gốc của EJB, khái niệm Dependency Injection thường không được chú trọng hoặc nhận thấy rõ ràng.

Các phiên bản EJB 3.x đã giới thiệu các annotation để hỗ trợ việc inject dependency, nhờ vào sự thành công của Spring Dependency Injection được coi là một trong những mẫu thiết kế phần mềm quan trọng, cho phép các đối tượng phụ thuộc được inject vào lớp cần thiết.

Spring Context integrates various components and extends features from Spring Bean, enhancing functionalities such as internationalization through resource bundles, event propagation, and resource loading.

Tổng kết

Spring là một thành phần quan trọng trong hệ sinh thái Java, đóng vai trò thiết yếu trong việc phát triển ứng dụng ITNavi đã chia sẻ những kiến thức tổng quan giúp người đọc hiểu rõ hơn về Spring và tầm ảnh hưởng của nó trong lĩnh vực lập trình Java.

ĐÁNH GIÁ KẾT QUẢ ĐẠT ĐƯỢC

Demo code và giao diện sản phẩm

Trang chủ khi người dùng đăng nhập thành công:

Giao diện Cập nhật hồ sơ người dùng khi click vào nút Profile từ trang chủ:

Giao diện sản phẩm có sẵn:

Giao diện mua sản phẩm:

Trang chủ khi truy cập bằng quyền admin thông qua địa chỉ: (tên domain)/admin

Trang chủ khi admin đăng nhập thành công:

Trang quản lý danh mục sản phẩm (categories) khi chọn vào nút Manage trong mục Categories ở trên:

Giao diện thêm danh mục sản phẩm khi chọn vào nút Add Category:

Giao diện cập nhật thông tin cho danh mục sản phẩm khi chọn vào nút Update bên trong danh mục:

Trang quản lý sản phẩm (products) khi chọn vào nút Manage trong mục Products:

Trang thêm sản phẩm khi chọn vào Nút Add Product:

Trang cập nhật thông tin sản phẩm khi chọn vào nút Update bên trong sản phẩm:

Trang quản lý người dùng khi chọn vào Manage bên trong mục Customers:

4.1.2 Một số hình ảnh của source code:

Ngày đăng: 04/12/2024, 14:59

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w