CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. Ngôn ngữ lập trình Java 1. Java là gì? Java là một ngôn ngữ lập trình hướng đối tượng (OOP). Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy.
Cú pháp Java được vay mượn nhiều từ C và C++ nhưng có cú pháp hướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn. Do đó việc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn. Lịch sử phát triển Java được khởi đầu bởi James - Gosling và bạn đồng nghiệp ở Sun Microsystems năm 1991. Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa là cây sồi) do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này.
Java được phát hành vào năm 1994. Sau khi Oracle mua lại công ty Sun Microsystems năm 2009 - 2010, Oracle đã mô tả họ là "người quản lý công nghệ Java với cam kết không ngừng để bồi dưỡng một cộng đồng tham gia và minh bạch". Lịch sử phiên bản java: - JDK 1.2 (Playground) 08 tháng 12, 1998 - J2SE 1.3 (Kestrel) 08 tháng 5, 2000 - J2SE 1.0 (Merlin) 06 tháng 02, 2002 - J2SE 5 (1.0) (Tiger) 30 tháng 9, 2004 - Java SE 6 (còn gọi là Mustang), được công bố 11 tháng 12 năm 2006. - Java SE 7 (còn gọi là Dolphin), được bắt đầu từ tháng 8 năm 2006 và công bố ngày 28 tháng 7 năm 2011.
- Java SE 8, 18 tháng 3 năm 2014 - Java SE 9, 21 tháng 9 năm 2017 - Java SE 10, 20 tháng 3 2018 12 - Java SE 11, 25 tháng 9 năm 2018 - Java SE 12, 19 tháng 3 năm 2019 - Java SE 13, 17 tháng 9 2019. - Java SE 14, 17 tháng 3 2020. - Java SE 15, 15 tháng 9 2020. Đôi nét về lịch sử Vào năm 2002, Spring Framework phát hành phiên bản đầu tiên bởi Rod Johnson.
Việc xây dựng các ứng dụng doanh nghiệp trở nên đơn giản và dễ dàng hơn. Rod Johnson đã cho xuất bản một cuốn sách được phổ biến rộng rãi có nhan đề "J2EE Development without EJB". Điều này đã cho Spring Framework rất nhiều động lực để thay thế EJB. Ngày nay, Spring đã trở thành framework mã nguồn mở phổ biến nhất để xây dựng các ứng dụng doanh nghiệp.
Cách tiếp cận thực tế ban đầu của Rod Johnson tiếp tục được phát triển và hướng tới một bộ công cụ hoàn chỉnh dành cho xây dựng các ứng dụng doanh nghiệp. Theo một số nguồn, trên 50% các ứng dụng web Java hiện nay đang sử dụng Spring Framework. Để ngăn chặn sự phức tạp trong phát triển các ứng dụng, Spring Framework thường dựa trên các quan điểm như sau: - Đơn giản hóa công việc phát triển thông qua việc sử dụng các đối tượng Java đơn giản hay còn được gọi là POJO. - Nới lỏng ràng buộc giữa các thành phần thông qua việc sử dụng Dependency Injection và viết các interface.
- Tiếp cận lập trình khai báo bằng cách sử dụng các quy tắc và các khía cạnh chung. - Giảm thiểu các mã nghi thức và soạn sẵn thông qua việc sử dụng các khuôn mẫu và các khía cạnh. Tổng quan về Spring - Spring Core: Spring Core chính là thành phần trung tâm, cốt lõi của Spring Framework. Đây chính là nền tảng để xây dựng nên các thành phần khác.
13 - Spring Bean: Spring Bean là trung tâm của Spring Core và là trái tim của một ứng dụng Spring. - Dependency Injection (DI): Dependency Injection là một sức mạnh nổi bật của Spring Framework. - Spring Context: Spring Context mang mọi thứ lại với nhau. - Spring Expression Language (SpEL): Spring Expression Language là một ngôn ngữ ngắn gọn giúp cho việc cấu hình Spring Framework trở nên linh hoạt hơn.
- Các dự án trong Spring Framework: Spring Framework là một tập hợp của nhiều dự án con. - Spring MVC: Spring MVC được thiết kế dành cho việc xây dựng các ứng dụng nền tảng web. - Spring Data: Cung cấp một cách tiếp cận đúng đắn để truy cập dữ liệu từ cơ sở dữ liệu quan hệ, phi quan hệ, map-reduce,… - Spring Security: Dự án này cung cấp các cơ chế xác thực (authentication) và phân quyền (authorization) cho ứng dụng. - Spring Boot: là một framework giúp phát triển cũng như chạy ứng dụng một cách nhanh chóng.
- Spring Batch: tạo các lịch trình (scheduling) và tiến trình (processing). - Spring Integration: là một implementation của Enterprise Integration Patterns (EIP). - Spring XD: đơn giản hóa công việc phát triển các ứng dụng Big Data. - Spring Social: kết nối ứng dụng của bạn với các API bên thứ ba của Facebook, Twitter, Linkedin,.
14 Hình 1: Mô hình Spring Framework Runtime 1. Tổng quan về hệ cơ sở dữ liệu MySQL MySQL là hệ quản trị CSDL tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là CSDL tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet.
MySQL miễn phí hoàn toàn cho nên có thể tải về MySQL từ trang chủ. Có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,… MySQL là một trong những ví dụ rất cơ bản về hệ quản trị CSDL quan hệ sử dụng ngôn ngữ truy vấn có cấu trúc (SQL). Mô hình Spring MVC Spring MVC là một mô đun con trong Spring framework, cung cấp kiến trúc Model-View-Controller và các thành phần sẵn có để sử dụng và phát triển ứng dụng web một cách linh hoạt. 15 Hình 2: Kiến trúc mô đun Spring MVC Mô hình MVC là kết quả của việc tách các khía cạnh khác nhau của ứng dụng (logic đầu vào, các xử lý logic, UI).
- Model: Là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị CSDL, bao gồm các class/function xử lý nhiều nghiệp vụ như kết nối database, truy vấn dữ liệu, thêm – xóa – sửa dữ liệu,… - View: Là nơi chứa những giao diện như một nút bấm, khung nhập, menu, hình ảnh,. đóng vai trò hiển thị dữ liệu và giúp người dùng tương tác với hệ thống. - Controller: Là nơi tiếp nhận những yêu cầu xử lý được gửi từ người dùng, nó sẽ gồm những class/ function xử lý nhiều nghiệp vụ logic giúp lấy đúng dữ liệu thông tin cần thiết nhờ các lớp nghiệp vụ Model, cung cấp và hiển thị dữ liệu đó ra cho người dùng nhờ lớp View. 16 Hình 3: Sơ đồ luồng xử lý của Spring MVC Đây là chuỗi sự kiện tương ứng khi nhận một yêu cầu HTTP gửi đến DispatcherServlet: Sau khi nhận một HTTP request, DispatcherServlet gửi yêu cầu đến HandlerMapping để xác định controller nào sẽ xử lý yêu cầu này.
Controller sẽ nhận các request và gọi các phương thức dịch vụ phù hợp dựa trên việc sử dụng các method GET/POST… Nếu yêu cầu đó cần truy xuất CSDL thì Controller sẽ ủy nhiệm cho một business logic hay nhiều hơn một model để lấy thông tin và gửi dữ liệu về cho Controller. Lúc này Controller đóng gói mô hình dữ liệu và tên của một view sẽ được tải lên thành đối tượng ModelAndView và gửi trả về cho DispathcherServlet DispatcherServlet gửi gói ModelAndView cho ViewResolver để tìm xem view (thông thường là một trang JSP, HTML) nào sẽ được load lên. Sau khi hoàn tất, DispatcherServlet sẽ chuyển dữ liệu từ model đến view và cuối cùng hiển thị trên trình duyệt. Boostrap Bootstrap là front-end framework, là một bộ sưu tập miễn phí các công cụ để tạo ra các trang web và các ứng dụng web.
Bootstrap bao gồm HTML và CSS dựa trên các mẫu thiết kế cho kiểu chữ, hình thức, các button và các thành phần giao diện khác, cũng như mở rộng tùy chọn Javascript. Boostrap định nghĩa sẵn các class CSS giúp người thiết kế giao diện website tiết kiệm rất nhiều thời gian. Các thư viện Bootstrap có những đoạn mã sẵn sàng cho 17 chúng ta áp dụng vào website của mình mà không phải tốn quá nhiều thời gian để tự viết. Với Bootstrap, việc phát triển giao diện website để phù hợp với đa thiết bị trở nên dễ dàng hơn bao giờ hết.
Bootstrap cung cấp tính năng làm cho trang web có thể tự co giãn để tương thích với mọi thiết bị khác nhau, từ điện thoại di động đến máy tính bảng, máy tính xách tay, máy tính để bàn,. Một khía cạnh khác là làm cho trang web cung cấp được trải nghiệm tuyệt vời cho người dùng trên nhiều thiết bị, kích thước màn hình khác nhau. Một trang có thể hoạt động tốt bất kể sự biến đổi sẽ cung cấp một trải nghiệm người dùng tốt và nhất quán hơn một trang được thiết kế cho một loại thiết bị và kích thước màn hình cụ thể. Giới thiệu về công nghệ MySQL Workbench MySQL Workbench là một công cụ thiết kế cơ sở dữ liệu đa nền tảng được phát triển bởi MySQL.
Nó là một ứng dụng thành công phát triển từ dự án DBDesigner4. MySQL Workbench cung cấp một công cụ giao diện đồ hoạ để làm việc với MySQL Server và CSDL. MySQL Workbench hỗ trợ toàn vẹn cho MySQL Server phiên bản 5.1 và mới hơn, nó cũng tương thích với MySQL Server 5. Nó không hỗ trợ MySQL Server phiên bản 4.
MySQL Workbench có thể sử dụng như là các công cụ giao diện người dùng riêng trên các hệ điều hành như Windows, Linux và OS. 18 CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2. Khảo sát hệ thống 2. Tổng quan về hệ thống Cửa hàng bán điện thoại QA Mobile chuyên cung cấp điện thoại của các hãng như Samsung, Apple, Nokia, LG,.
Các dòng điện thoại thường và điện thoại thông minh. Với nhiều năm hoạt động, phục vụ quý khách hàng. QA Mobile luôn là điểm đến yêu thích của giới công nghệ nói chung và giới săn điện thoại nói riêng. Cửa hàng luôn cập nhật các thông tin, mặt hàng mới nhất trên thị trường thế giới cũng như ở Việt Nam.
Đội ngũ nhân viên trẻ đẹp, năng động, sẵn sàng phục vụ quý khách hàng kịp thời, đầy đủ. Cửa hàng muốn xây dựng một trang web bán điện thoại di động trên mạng với một số chức năng cơ bản như: - Giới thiệu các mẫu điện thoại về hình ảnh. - Các thông tin có liên quan và giá đi kèm. - Các thông tin về điện thoại sẽ luôn được cập nhật thường xuyên.