Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 88 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
88
Dung lượng
6,54 MB
Nội dung
Nội dung Xây Dựng Phần Mềm Hướng Đối Tượng OOP(Object Oriented Programming) Th.s Hồ Đình Khả Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Hình thức đánh giá: Thi cuối kì: Thực ứng dụng máy Tài liệu tham khảo: [1] Michael A.Smith, Java: an Object-Oriented Language, McGraw-Hill, 2000 [2] Prof Alfons Kemper, Ph D.: Object oriented Data modeling And programming In java,2000 [3] Copyright by Sams Publishing :Sams Teach Yourself Object Oriented Programming in 21 Days, 2002 JEDI Slide Bài Giảng- ĐHCNSG Trường Đại học Cơng nghệ Sài gòn Khoa Công nghệ Thông tin Chương 1: Tổng quan OOP Chương 2: Ngôn ngữ Java công cụ Chương 3: Cài đặt Class Object Chương 4: Cấu trúc tuyển tập Chương 5: Lưu trữ (file, DBMS) Chương 6: Thiết kế GUI Chương 7: Mơ hình N-Layer Chương 8: Report Chương 9: Mơ hình phân bố (Option) Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Chương Tổng Quan OOP (Object Oriented Programming) Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Mục tiêu Object Oriented Programming Trừu tượng hóa liệu (Data Abstraction) Lớp đối tượng (Class and Object ) Phương thức thiết lập hủy (Construction Destruction ) Persistence, Data encapsulation, Inheritance Polymorphism Thuận lợi Object-oriented programmings Phương pháp thiết kế thực hệ thống phần mềm Đặt trọng tâm vào đối tượng Đối tượng bao hàm: hành vi thuộc tính Đối tượng giao tiếp thông qua thông điệp Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin So sánh lập trình cấu trúc Lập trình OOP Procedural programming :Bao gồm tập chức (functions hay algorithms) giải vấn đề Algorithms + Data Structures = Programs OOP : diễn đạt liệu (data), sau tìm kiếm giải thuật điều hành liệu Ví dụ: Viết chương trình tính lương nhân viên Lương trả dựa vào : số hay phụ cấp Ngồi lương phải khấu trừ thuế (Social Security Medicare) Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Lập trình cấu trúc Chia tốn thành vấn đề nhỏ , ứng với vấn đề nhỏ, thủ tục viết Chương trình viết cách sử dụng thủ tục theo trình tự xử lí Chúng ta cần viết thủ tục tương ứng: computePay(): cung cấp liệu computeSSTax () computeMedicareTax(), Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Object-Oriented Programming Xác định objects toán Employees, Company Xây dựng class mô tả attributes behaviors đối tượng Viết chương trình tính lương nhân viên Lương trả dựa vào : số hay phục cấp Ngồi lương phải khấu trừ thuế (Social Security Medicare) Object-Oriented Programming Xác định objects toán Employees, Company Xây dựng class mô tả attributes behaviors đối tượng Attributes đối tượng Employee mà employee “has”, ví dụ : name, address, employee number, Social Security number, hours worked variables Behaviors Employee mà employee “does”, ví dụ: lương phải trả, mail bảng lương,… methods Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thông tin Procedural Programming Object-Oriented Programming Nếu thủ tục lập trình cấu trúc cần liệu để thực tác vụ, liệu truyền vào thủ tục Với lập trình OOP, đối tượng thực nhiệm vụ cho bạn, phương thức truy xuất liệu mà khơng phải truyền vào phương thức Data Abstraction Ví Dụ: Viết chương trình tính diện tích, chu vi hình chữ nhật Viết chương trình tính diện tích, chu vi hình tròn Viết chương trình tính điểm trung bình sinh viên, điểm trung bình= (điểm lý thuyết + điểm thực hành)/2 Chương trình cho phép nhập thơng tin sv, tính điểm trung bình, in điểm sv Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Cho phép quản lí tốt chương trình phức tạp Functions & Procedures Modules Abstract Data Types Class/Objects Data Abstract cho phép Mở rộng ngôn ngữ : Định nghĩa thêm kiểu Chế tác thể liệu khác Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Data Abstraction (tiếp ) Data Abstraction Các đặc trưng Person Name Address Age Height Hair color Các đặc trưng Customer Name Address Thuộc tính Hành động Tên khách hàng Chấp nhận tên khách hàng Địa khách hàng Chấp nhận địa khách hàng Kiểu xe mua Chấp nhận kiểu xe đặt hàng Người bán (saleman) Chấp nhận tên người bán Phát sinh hóa đơn Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Data Abstraction (tiếp…) Data Abstraction trình nhận diện nhóm liệu hành động có liên quan tới thực thể riêng biệt Thuận lợi: Nhận diện đặt trưng hành động thiết yếu Giúp lọai trừ chi tiết không cần thiết Class Một Class định nghĩa mẫu hay kiểu chung lọai đối tượng theo thuộc tính hành vi Class Customer Tên khách hàng Địa khách hàng Kiểu xe mua Tên người bán Chấp nhận tên Chấp nhận địa Chấp nhận lọai xe đặt mua Chấp nhận tên người bán Phát sinh hóa đơn Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Object Class/Object Message Passing Generalization/Specialization Polymorphism Relationships: Associations, Aggregations Behaviors Rules Một Object thể class Stephen Boston Opel Astra Robin Stephen Object class Customer Trường Đại học Cơng nghệ Sài gòn Khoa Công nghệ Thông tin Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin So Sánh Class Object Object (tiếp…) Attribute Những đặc trưng mô tả đối tượng Operation Là dịch vụ hàm đuợc cung cấp thể lớp đối tượng Method Diễn tả cách thức mà đối tượng vận động, phản ứng Message Yêu cầu cho operation Event Tác nhân gởi từ object to object khác Trường Đại học Cơng nghệ Sài gòn Khoa Công nghệ Thông tin Class định nghĩa thực thể, object thực thể thực Class mơ hình ý niệm,định nghĩa tất đặt trưng hành động object, đối tượng mơ hình thực Class prototype object Tất object thuộc class có đặt trưng hành động giống Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Các tốn ví dụ Các tốn ví dụ Viết chương trình tính diện tích, chu vi hình chữ nhật Viết chương trình tính diện tích, chu vi hình tròn Viết chương trình tính điểm trung bình sinh viên, điểm trung bình= (điểm lý thuyết + điểm thực hành)/2 Chương trình cho phép nhập thơng tin sv, tính điểm trung bình, xuất thơng tin sv Viết chương trình tính diện tích, chu vi hình chữ nhật Viết chương trình tính diện tích, chu vi hình tròn Viết chương trình tính điểm trung bình sinh viên, điểm trung bình= (điểm lý thuyết + điểm thực hành)/2 Chương trình cho phép nhập thơng tin sv, tính điểm trung bình, xuất thơng tin sv Object: Hình chữ nhật Class Object: Hình tròn Class Variables Attributes: Bán kính Variables Behaviors: Tính diện tích, tính chu vi Methods Behaviors: Tính diện tích, tính chu vi Methods Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Các tốn ví dụ Attributes: Chiều dài, chiều rộng Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Viết chương trình tính diện tích, chu vi hình chữ nhật Viết chương trình tính diện tích, chu vi hình tròn Viết chương trình tính điểm trung bình sinh viên, điểm trung bình= (điểm lý thuyết + điểm thực hành)/2 Chương trình cho phép nhập thơng tin sv, tính điểm trung bình, in điểm Mơ hình hóa đối tượng ClassName Properties Data - Attributes Fields Variables Object: Sinh viên Class Attributes: Mã sv, họ tên, ngày sinh, nơi sinh, lớp, môn học, điểm lý thuyết, điểm thực hành, điểm trung bình Variables Behaviors: Nhập thơng tin sinh viên, tính điểm trung bình, in điểm Methods Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Instance Data + Behaviors Methods Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Mơ hình hóa đối tượng Mơ hình hóa đối tượng Object: Hình chữ nhật Class Object: Hình tròn Class Attributes: Chiều dài, chiều rộng Variables Attributes: Bán kính Variables Behaviors: Tính diện tích, tính chu vi Methods Behaviors: Tính diện tích, tính chu vi Methods Hình chữ chữ nhậ nhật Hình tròn - Chiều dài - Bán kính - Chiều rộng + Tính diện tích + Tính diện tích + Tính chu vi + Tính chu vi Trường Đại học Cơng nghệ Sài gòn Khoa Công nghệ Thông tin Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Bao Bọc Che Dấu Thông tin (Encapsulation and information hiding) Constructor, Destructor,Persistence Thiết lập (Constructor): Cấp phát nhớ Khởi tạo thuộc tính Cho phép truy xuất thuộc tính phương thức Huỷ (Destructor) Giải phóng khơng gian cấp phát Cấm truy xuất thuộc tính phương thức Tính bền vững (Persistence) Tính bền vững khả đối tượng để lưu trữ liệu thời gian sống đối tượng Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Q trình che dấu thực chi tiết đối tượng từ user gọi Encapsulation Nguyên tắc bao bọc liệu ngăn cấm truy nhập trực tiếp gọi che dấu thông tin Thuận lợi: Tất thuộc tính phương thức yêu cầu thực cơng việc khởi tạo Chỉ thuộc tính và/hoặc phương thức truy xuất khác rõ Tất thấy đối tượng đóng gói phương thức giao tiếp (interface) đối tượng Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Tính thừa kế (tt) Tính thừa kế (Inheritance) Cách tổ chức Classes Vehicle Automobile Sedan Motorcycle Sports Car Luxury Bus Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Bus School Bus Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Tính thừa kế (tt ) Tính thừa kế (tt…) Trường Đại học Cơng nghệ Sài gòn Khoa Công nghệ Thông tin Inheritance Cơ chế cho phép lớp chia thuộc tính thao tác định nghĩa hay nhiều lớp Subclass Là class thừa kế từ class khác Super class Là class mà từ class khác thừa kế hành vi Multiple Inheritance Là class thừa kế từ hay nhiều lớp Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Tính Đa Hình (Polymorphism) Tính đa hình thao tác cài đặt khác lớp hay lớp khác Operation Display Text Line Picture Các bước thiết kế Thiết kế coding Thiết kế Định nghĩa vấn đề Thiết kế đối tượng Phát triển giải thuật cho phương thức đối tượng Mô tả giải thuật, dùng pseudocode Viết code Kiểm tra code Debug Làm nào? Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Những thuận lợi Khả đối phó với ứng dụng thuộc lọai khó Nâng cao tính quán phân tích, thiết kế lập trình Nâng cao chia ứng dụng Tính dùng lại kết phân tích thiết kế lập trình Giảm bớt lỗi Sự thay đổi nhanh Trường Đại học Cơng nghệ Sài gòn Khoa Công nghệ Thông tin Tổng kết Phương pháp Object-oriented cho phép giải hầu hết vấn đề Sự trừu tượng liệu q trình nhận diện nhóm thuộc tính hành động quan hệ tới thực thể cụ thể Class định nghĩa thực thể, object thực thể thực Construction Destruction Persistence, Data encapsulation, Inheritance Polymorphism Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Câu hỏi Các đối tượng giới thực chứa _ _ Một trạng thái đối tượng lưu trữ _ Một hành vi đối tượng phơi bày thông qua _ Các liệu nội che đậy từ giới bên ngòai truy xuất qua phương thức biết liệu _ Bản thiết kế cho đối tượng phần mềm gọi _ Hành vi chung, phổ biến định nghĩa _ thừa kế vào _ Một tập phương thức với không thực gọi _ Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin 10 Nội Dung JCheckbox, JRadioButton JComboBox JDateChooser Menu Mơ hình Model - View JList JTable Frame Lop Frame Hocvien Chương GUI (Graphics User Interface) Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin JCheckBox, JRadioButton 6/1/2010 JComboBox JCheckBox: Cho phép chọn nhiều giá trị Phương thức: setSelected(boolean b) isSelected() Sự kiện: actionPerform() JRadioButton: Chỉ cho phép chọn giá trị Dùng ButtonGroup để nhóm radio thành nhóm ButtonGroup group = new ButtonGroup(); group.add(radio1); group.add(radio2); … Trường Đại học Cơng nghệ Sài gòn Khoa Công nghệ Thông tin OOP JAVA OOP JAVA Chứa danh sách phần tử Cho phép chọn Phương thức: addItem(String item) removeItemAt(int index) getItemCount() getSelectedIndex() getSelectedItem() Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA JDateChooser Menu Là bean cho phép chọn ngày tháng Gói thư viện: jcalendar-1.3.3.jar Class: com.toedter.calendar.JDateChooser Phương thức getDate(): trả ngày tháng chọn (kiểu java.util.Date) JMenu JMenuBar JMenuItem Chuyển từ java.util.Date java.sql.Date java.util.Date utilDate = new java.util.Date(); java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thông tin OOP JAVA Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Mơ hình Model - View JList Hiển thị liệu View Notify view(s) model.getState() Chứa liệu Model Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin 6/1/2010 OOP JAVA OOP JAVA Chứa danh sách phần tử Cho phép chọn nhiều giá trị Ứng dụng mơ hình View-Model View: JList Model: DefaultListModel Cách gắn kết Model vào View DefaultListModel model = new DefaultListModel(); JList list = new JList(); list.setModel(model); Phương thức: DefaultListModel: addElement(String e) removeElementAt(int index) getSize(); JList: getSelectedIndex() getSelectedValue() getSelectedIndices() getSelectedValues() Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA JTable Lop Frame Hiển thị liệu dạng bảng (giống bảng tính Excel) Cho phép chọn nhiều giá trị Ứng dụng mơ hình View-Model View: JTable Model: DefaultTableModel Cách gắn kết Model vào View DefaultTableModel model = new DefaultTableModel(); JTable table = new JTable(); table.setModel(model); Phương thức: DefaultTableModel: addColumn(String name) addRow(Object[] row) addRow(Vector row) getRowCount(); setValueAt(Object value, int row, int col) getValueAt(int row, int col) JTable: getSelectedRow() getSelectedRows() getSelectedRowCount() Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thông tin OOP JAVA Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA Hocvien Frame Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thông tin 6/1/2010 OOP JAVA Giới thiệu Chương Mơ Hình N Layer Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thông tin Áp dụng phát triển ứng dụng Dễ quản lý thành phần hệ thống Không bị ảnh hưởng thay đổi Tạo thuận lợi cho coding, dễ sửa lỗi Reuses Phân biệt kiến trúc đa tầng/nhiều lớp Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Mơ hình Presentation Layer Presentation Business logic Data Access Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA Giao tiếp với người dùng cuối Thu thập liệu hiển thị kết quả/dữ liệu Lớp sử dụng dịch vụ lớp Business Logic cung cấp Trong Java bạn dùng Windows Forms, hay Mobile Forms, JSP để thực lớp Data Transfer Object (DTO) DataBase OOP JAVA Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA Presentation Layer(tt) Business Logic Layer Gồm hai thành phần UI:User Interface Components UIP:User Interface Process Components UI Thu thập hiển thị thông tin cho người dùng cuối TextBox, Button, DataGrid UIP Quản lý qui trình chuyển đổi UI Components Ví dụ :chịu trách nhiệm quản lý hình nhập liệu loạt thao tác định trước Lớp thực nghiệp vụ hệ thống Sử dụng dịch vụ lớp Data Access cung cấp Cung cấp dịch vụ cho lớp Presentation Lớp sử dụng dịch vụ nhà cung cấp thứ (3rd parties) để thực cơng việc ví dụ sử dụng dịch vụ cổng tóan trực tuyến VeriSign, Paypal… Lớp không nên sử dụng trực tiếp dịch vụ lớp Data Access mà nên sử dụng thông qua dịch vụ lớp Business Logic sử dụng trực tiếp vậy, bỏ qua ràng buộc, logic nghiệp vụ mà ứng dụng cần phải có Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thông tin OOP JAVA Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Business Logic Layer(tt) Data Access Layer Có thành phần chính: Business Components Business Entities Service Interface OOP JAVA Service Interface :Giao diện lập trình mà lớp cung cấp cho lớp Presentation sử dụng Business Entities: Các thực thể mô tả đối tượng thông tin mà hệ thống xử lý Các business entities dùng để trao đổi thông tin lớp Presentation lớp Data Access Business Components: Các thành phần thực dịch vụ mà Service Interface cung cấp, chịu trách nhiệm Lớp thực nghiệp vụ liên quan đến lưu trữ truy xuất liệu ứng dụng Sử dụng dịch vụ hệ quản trị sở liệu Mysql,SQL Server, Oracle,… để thực nhiệm vụ Trong lớp có thành phần Data Access Logic Data Sources Servive Agents kiểm tra ràng buộc logic(constraints), qui tắc nghiệp vụ(business rules) sử dụng dịch vụ bên khác để thực yêu cầu ứng dụng Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thông tin OOP JAVA Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA Data Access Layer(tt) Data Access Logic components (DALC) Là thành phần chịu trách nhiệm lưu trữ vào truy xuất liệu từ nguồn liệu - Data Sources RDMBS, XML, File systems… Trong Java DALC thường thực cách sử dụng package java.sql để giao tiếp với hệ sở liệu Service Agents thành phần trợ giúp việc truy xuất dịch vụ bên ngòai cách dễ dàng đơn giản truy xuất dịch vụ nội Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin CASE STUDY Xây Dựng Ứng Dụng DataBase Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA Mục Tiêu Chuẩn Bị Công Cụ Ánh xạ Class Diagram vào DBMS Phân tích ứng dụng theo mơ hình Layer Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA JDK 1.6 DBMS: Mysql 5.0 trở lên Username: root Password: root Eclipse 3.3 + Database tool + Visual Class Library JDBC MYSQL: Sao chép vào Folder:C:\Program Files\Java\jre1.6.0\lib\ext Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thông tin OOP JAVA Cài đặt Database Thiết kế ứng dụng Khởi động IE Nhập: http://localhost/phpmyadmin Nhập: username:root, password:root Tạo Database: Name: data MySQL charset: UTF-8 Cài đặt Table Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA Khởi động Eclipse Kiểm tra nối kết CSDL công cụ Database development Tạo Project Xậy dựng Package DTO: chứa class đối tượng đóng vai trò vận chuyển liệu layer Xây dựng Package DAO: chứa class đối tượng truy xuất database (DBMS) Xây dựng Package BUS: chứa class đối tượng xử lí nghiệp vụ Xây dựng Package Presentation: chứa class GUI Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA Kiểm tra kết nối database Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA Chọn connection profile Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA Nhập tên Connecton Profile: dataMysql Kích Next Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA Trường Đại học Cơng nghệ Sài gòn Khoa Công nghệ Thông tin OOP JAVA Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thông tin OOP JAVA Xây dựng ứng dụng DTO Trường Đại học Cơng nghệ Sài gòn Khoa Công nghệ Thông tin OOP JAVA Dựa vào sơ đồ khai báo Class Nội dung class bao gồm Fields Class Variable Các phương thức khởi dựng Các phương thức get(), set() VD: class sinhvienDTO class lopDTO Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin DAO: Package Database OOP JAVA DAO: Package Database (tt) Database.properties: Khai báo thông tin kết nối database Class ConectionToolkit.java: Các phương thức kết nối database Ứng với bảng database tạo class DAO tương ứng VD: sinhvienDAO Database.properties: Khai báo thơng số cấu hình DBMS driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/data user=root pass=root Trường Đại học Cơng nghệ Sài gòn Khoa Công nghệ Thông tin OOP JAVA Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA DAO: Package Database (tt) DAO: Package Database (tt) Tạo ConectionToolkit.java package Database public class ConectionToolkit { public static Connection getconection() { ResourceBundle rb=ResourceBundle.getBundle("DataBase.database"); Tạo class giao tiếp với table Cho phép layer Bus truy xuất CSDL VD: class sinvienDAO String driver=rb.getString("driver"); public class SinhvienDAO { String url=rb.getString("url"); public SinhvienDAO() {} String username=rb.getString("user"); //Các phương thức giao tiếp với Layer BUS String password=rb.getString("pass"); public static void createSV(sinhvienDTO s) { } Connection conn; public static boolean isSinvien(String mssv) { } try { public static void delete(String id) { } Class.forName(driver); public static List listsv() { } conn=DriverManager.getConnection(url,username,password); // Tìm kiếm return conn; public static List finebyName(String name) {} }catch(Exception e){System.out.println("Loi Ket Noi");} return Trường Đại họcnull;}} Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin public static void updateSV(sinhvienDTO o) { } OOP JAVA Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thông tin DAO: Package Database (tt) DAO: Package Database (tt) OOP JAVA Thêm record Kiểm tra tồn public static void createSV(sinhvienDTO s) throws SQLException{ Connection conn = ConectionToolkit.getconection(); String query = "INSERT INTO sinhvien" + "(mssv,holot,ten,diem)" + "VALUE (?,?,?,?)"; public static boolean isSinvien(String mssv) { Connection conn = ConectionToolkit.getconection(); PreparedStatement ps = (PreparedStatement) conn.prepareStatement(query, Statement.KEEP_CURRENT_RESULT); String query = "select * from sinhvien where mssv="+"'mssv'"; ps.setString(1, s.getMssv()); Statement stmt = conn.createStatement(); ps.setString(2, s.getHolot()); java.sql.ResultSet a=stmt.executeQuery(query); ps.setString(3, s.getTen()); if (a.first()){ return false; ps.setDouble(4, s.getDiem()); } else { return true; }} ps.executeUpdate(); ps.close(); conn.close();} Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA DAO: Package Database (tt) DAO: Package Database (tt) Tìm kiếm public static List finebyName(String name) { Xóa public static void delete(String id) throws SQLException{ List listsv=new ArrayList(); Connection conn = ConectionToolkit.getconection(); Connection conn=ConectionToolkit.getconection(); String query = "delete from sinhvien where mssv="+id; String query="select * from sinhvien where ten like "+ "'%"+name+"%'"; Statement stmt = conn.createStatement(); Statement stmt=conn.createStatement(); stmt.execute(query); java.sql.ResultSet a=stmt.executeQuery(query); } while(a.next()) { sinhvienDTO sv=new sinhvienDTO(a.getString("mssv"),a.getString("holot"),a.getString("ten"), a.getDouble("diem")); listsv.add(sv);} return listsv; } Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thông tin BUS: Package Business OOP JAVA Presentation: Package Presentation Tạo class giao tiếp với Layer Presentation Sử dụng giao tiếp DAO xử lí nghiệp vụ VD class sinhvienBUS Giao tiếp với người dùng Xử dụng giao tiếp BUS public static void main(String[] args) { public class sinhvienBus { sinhvienDTO sv1=new sinhvienDTO("111111","Ho Phuong","Tring",10); public sinhvienBus() { } sinhvienBus svbus=new sinhvienBus(); public boolean CreateSV(sinhvienDTO o) { try { //kiem tra ton tai //svbus.CreateSV(sv1); if (SinhvienDAO.isSinvien(o.getMssv())) { //svbus.DeleteSV(sv1.getMssv()); SinhvienDAO.createSV(o); //svbus.updateSV(new sinhvienDTO("12346","Ho Dinh","Que",10)); return true; List a=svbus.finebyName("K"); } else { Iterator i=a.iterator(); System.out.println("co roi!"); while (i.hasNext()){ sinhvienDTO sv=i.next(); return false; }} System.out.println(sv.getHolot()+" "+sv.getTen()); Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA }} Đại catch (SQLException Trường học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin e) {e.printStackTrace();}} OOP JAVA Nội Dung Tạo report java project Thiết lập Data Source Tạo truy vấn cho report Thiết kế report Gọi report java Chương Crystal Report Trường Đại học Cơng nghệ Sài gòn Khoa Công nghệ Thông tin Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Tạo report java project Tạo report java project (tt) Kích phải chuột vào project, chọn New Other (hoặc nhấnCtrl + N) Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin 6/1/2010 OOP JAVA OOP JAVA Chỉ đường dẫn để lưu report Nhập tên cho report dssv Nhấn Finish Để cho dễ quản lý, ta nên tạo thư mục reports project, lưu tất report thư mục Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA Thiết lập datasource Thiết lập Data Source (tt) Trong cửa sổ Data Source Explorer, kích phải vào Database Connections, chọn New Xuất hộp thoại New Connection Profile, chọn MySQL danh sách database Đặt tên Name: Sample Database Nhấn Next Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin Nhập thơng tin kết nối database: sample user: java2 password: 12345 Nhấn nút Test Connection để kiểm tra kết nối Sau nhấn nút Finish OOP JAVA Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thông tin Tạo truy vấn cho Report Tên Database Kích phải chuột vào vùng khoanh tròn, chọn Add Table… Chọn table Nhấn OK Kích phải vào khoảng trắng Editor chọn Edit in SQL Query Builder (hoặc nhấn Alt + Q) Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin 6/1/2010 Tạo truy vấn cho Report (tt) Kích phải chuột vào Data Source vừa tạo (Sample Database), chọn Open SQL Scrapbook Trong cửa sổ SQL Scrapbook Editor, thiết lập thông số sau: Tên Data Source OOP JAVA OOP JAVA Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thông tin OOP JAVA Tạo truy vấn cho Report (tt) Tạo truy vấn cho Report (tt) Check vào field muốn hiển thị Chọn tab Conditions, tạo điều kiện kết bảng (Hocvien.lopid = Lop.lopid) Nhấn OK Trường Đại học Cơng nghệ Sài gòn Khoa Công nghệ Thông tin OOP JAVA Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin 6/1/2010 OOP JAVA Gọi report java Thiết kế Report Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin Sau nhấn OK xong, kích phải chuột vào khoảng trắng cửa sổ SQL Editor chọn Crystal Reports chọn Add To Existing Report Chọn report dssv.rpt Nhấn OK OOP JAVA Phải add thư viện Crystal Reports Java Project Runtime Library Kích phải vào project chọn Build Path Add Libraries… Trường Đại học Cơng nghệ Sài gòn Khoa Công nghệ Thông tin OOP JAVA Gọi report java (tt) Gọi report java (tt) Trong chương trình, phải import lớp sau để xem report: ReportViewerBean OpenReportOptions ReportClientDocument ReportSDKException Đoạn chương trình hiển thị report JFrame: JFrame frame = new JFrame(); frame.setExtendedState(JFrame.MAXIMIZED_BOTH); frame.getContentPane().add(viewer, BorderLayout.CENTER); frame.setVisible(true); … try { ReportClientDocument doc= new ReportClientDocument(); doc.setReportAppServer(ReportClientDocument.inprocConnectionString); doc.open("reports/dssv.rpt", OpenReportOptions._openAsReadOnly); Đường dẫn report ReportViewerBean viewer = new ReportViewerBean(); viewer.init(); viewer.setReportSource(doc.getReportSource()); Trường Đại học Cơng nghệ Sài gòn Khoa Cơng nghệ Thơng tin 6/1/2010 OOP JAVA viewer.start(); } catch (ReportSDKException e) { System.err.println(“Report Error!”); } … Trường Đại học Công nghệ Sài gòn Khoa Cơng nghệ Thơng tin OOP JAVA ... Object-oriented programmings Phương pháp thiết kế thực hệ thống phần mềm Đặt trọng tâm vào đối tượng Đối tượng bao hàm: hành vi thuộc tính Đối tượng giao tiếp thông qua thông điệp Trường Đại học Công... Object-Oriented Programming Xác định objects toán Employees, Company Xây dựng class mô tả attributes behaviors đối tượng Attributes đối tượng Employee mà employee “has”, ví dụ : name, address, employee... Attribute Những đặc trưng mô tả đối tượng Operation Là dịch vụ hàm đuợc cung cấp thể lớp đối tượng Method Diễn tả cách thức mà đối tượng vận động, phản ứng Message Yêu cầu cho