Những lợi ích mà các phần mềm ứng dụng mang lại là đáng kể: xử lýthông tin nhanh chóng, chính xác, khoa học, giảm bớt nhân lực và công sức,phí tổn thấp và hiệu quả công việc nâng cao một
Trang 1trờng đại học vinh
khoa công nghệ thông tin
-TRẦN HỒNG QUÂN
XÂY DỰNG CHƯƠNG TRèNH QUẢN Lí TRẺ
EM VÀ GIÁO VIấN TRONG TRƯỜNG MẦM NON
BẰNG NGễN NGỮ LẬP TRèNH JAVA
Đồ án tốt nghiệp đại học
Vinh, Thỏng 5 - 2010
Lời cảm ơn
Trang 2Em xin chân thành cảm ơn thầy: Th.s Đặng Hồng Lĩnh đã trực tiếp,tận
tâm, nhiệt tình hớng dẫn giúp em hoàn thành tốt đồ án này
Từ những ý kiến chỉ bảo quý báu của thầy, đã đem lại cho em rất nhiều kiến thức và kinh nghiệm trong lập trình phần mềm cũng nh cách thức trình bày báo cáo
Em cũng xin gửi bày tỏ sự biết ơn sâu sắc của mình tới các thầy cô giáo
đã dạy em trong 5 năm học tại trờng để em có đợc kiến thức nh ngày hôm nay để hoàn thành đợc đồ án này
Xin gửi tới các thầy cô giáo lời biết ơn sâu sắc của em
Vinh ngày 05 tháng 05 năm 2010
Sinh viên : Trần Hồng Quân.
Mục lục
Lời nói đầu 3
Phần I: Khảo sát hệ thống. I Tìm hiểu hệ thống cũ 5
II Đánh giá hệ thống 7
Phần II: Phân tích thiết kế hệ thống. I Lựa chọn hớng phân tích 9
II Phân tích hệ thống cũ 9
III Thiết kế hệ thống mới 10
IV Sơ đồ phân cấp chức năng 10
V Biểu đồ luồng dữ liệu 11
VI Mô hình thực thể và các thuộc tính 17
VII Mô hình dữ liệu quan hệ 21
Phần III: Xây dựng chơng trình.
Sinh viên thực hiện: Trần Hồng Quân Lớp 46k2 CNTT 2
Trang 3I Giới thiệu 22
II Ngôn ngữ và các công cụ sử dụng trong đồ án II.1 Ngôn ngữ lập trình Java 23
II.2 Công cụ sử dụng trong đồ án 27
III Cơ sở dữ liệu III.1 Lợc đồ quan hệ dữ liệu 29
III.2 Chi tiết các bảng trong cơ sở dữ liệu 30
III.3 Thuộc tính của các bảng 34
IV Thiết kế IV.1 Form đăng nhập 37
IV.2 Form chính 37
IV.2.1 Menu Hệ thống 38
IV.2.1.1 Form quản lý tài khoản đăng nhập 38
IV.2.1.2 Form thêm sửa xoá các quyền cho User 39
IV.2.2 Menu chức năng 40
IV.2.2.1 Form quản lý thông tin về trẻ em 41
IV.2.2.2 Form quản lý thông tin về nhóm tuổi 44
IV.2.2.3 Form quản lý thông tin về giáo viên 46
IV.2.2.4 Form quản lý thông tin về các hoạt động của trẻ 48
IV.2.3 Menu thống kê 49
IV.2.3.1 Form danh sách trẻ đợc quản lý bởi giáo viên 49
IV.2.3.2 Form danh sách trẻ thuộc nhóm tuổi 50
Phần V: Kết luận 51
Lời nói đầu
Cùng với sự phát triển của các lĩnh vực kinh tế, xã hội, nhu cầu ứng dụng công nghệ thông tin ngày càng cao và không ngừng biến đổi Khi hệ thống càng phát triển, càng phức tạp thì các phơng thức quản lý cổ điển truyền thống sẽ trở nên cồng kềnh và khó có thể đáp ứng đợc yêu cầu ngày càng cao của hệ thống Để xử lý các thông tin một cách nhanh chóng, chính xác và có hiệu quả, đòi hỏi phải có sự hỗ trợ của một công cụ hiện đại, đó chính là công nghệ thông tin
Sự phát triển nhảy vọt của công nghệ thông tin đã tác động mạnh mẽ
đến các hoạt động xã hội, làm thay đổi một cách sâu sắc đến phong cách sống làm việc của một xã hội Công nghệ thông tin đã trở thành trụ cột chính của nền kinh tế tri thức ứng dụng công nghệ thông tin vào việc quản lý các hoạt động xã hội và nghiên cứu khoa học đợc nhiều ngời quan tâm Phạm vi ứng dụng của công nghệ thông tin ngày càng mở rộng trên nhiều lĩnh vực: truyền thông, đo lờng, tự động hoá, quản lý các hoạt động của con ngời và xã
Trang 4hội Những lợi ích mà các phần mềm ứng dụng mang lại là đáng kể: xử lýthông tin nhanh chóng, chính xác, khoa học, giảm bớt nhân lực và công sức,phí tổn thấp và hiệu quả công việc nâng cao một cách rõ rệt.
Trong lĩnh vực công nghệ thông tin, các ngôn ngữ lập trình, các hệquản trị cơ sở dữ liệu không ngừng phát triển và đổi mới, cho phép chúng taxây dựng các phần mềm ứng dụng hỗ trợ việc quản lý các hoạt động xã hộimột cách tốt nhất Với tầm quan trọng của ứng dụng công nghệ thông tintrong quản lý nên tôi muốn tìm hiểu ngôn ngữ lập trình Java và hệ quản trịcơ sở dữ liệu SQL Server 20005 để xây dựng phần mềm quản lý trẻ em vàgiáo viên trong trờng mầm non
Xây dựng chơng trình Quản lý trẻ em và giáo viên trong trờng mầm non bằng ngôn ngữ lập trình java.
Trang 5PHẦN I : KHẢO SÁT HỆ THỐNG
I Tìm hiểu hệ thống cũ.
Hệ thống quản lý trẻ em và giáo viên trong trờng mầm non áp dụng
đ-ợc cho tất cả các trờng mầm non
Chức năng cơ bản của hệ thống là quản lý thông tin về trẻ em và giáoviên, các hoạt động của trẻ trong trờng, phân công giáo viên giảng dạy
Hệ thống bao gồm các bộ phận với các chức năng cụ thể sau:
* Giáo viên : thực hiện theo công tác và kế hoạch nuôi dỡng chăm sóc,giáo
dục trẻ theo lứa tuổi Quản lý các thông tin về trẻ để kịp thời báo cáo với gia
đình và ban giám hiệu
* Ban giám hiệu: điều hành các hoạt động của trờng ,quản lý hồ sơ của giáo
viên, phân công quản lý và phân công giáo viên giảng dạy theo từng nhómtuổi cho phù hợp Quản lý các hoạt động vui chơi giải trí cũng nh học hànhcủa trẻ mà nhà trờng tổ chức
2 Quản lý nhóm tuổi
Công việc quản lý nhóm tuổi đợc thực hiện:
- Quản lý theo nhóm
- Phân công giáo viên quản lý nhóm
* Quản lý theo nhóm tuổi : Trong trờng mầm non thì trẻ đợc chia thành 8
nhóm tuổi tuỳ theo quy mô từng trờng thì số nhóm tuổi này có thể giảm bớt
- Nhóm 12 tháng đến 18 tháng gọi là nhóm cháo
- Nhóm 18 tháng đến 24 tháng là nhóm cơm nát
Trang 6- Nhóm 24 tháng đến 36 tháng là nhóm cơm thờng
- Nhóm 3 đến 4 tuổi gọi là mẫu giáo bé
- Nhóm 4 đến 5 tuổi gọi là mẫu giáo nhỡ
- Nhóm 5 đến 6 tuổi gọi là mẫu giáo lớn
* Phân công giáo viên quản lý nhóm: Công việc phân công giáo viên quản lý
nhóm tuổi thờng đợc thực hiện vào đầu mỗi năm học, thông thờng 1 giáoviên chỉ đợc phân công quản lý một nhóm, cũng có trờng hợp 1 giáo viên đ-
ợc phân công quản lý nhiều hơn 1 nhóm
3 Quản lý giáo viên
Mỗi giáo viên trong trờng đợc quản lý theo: Tên giáo viên và nhóm
tuổi quản lý
4 Quản lý trẻ
Vào đầu năm học, trờng tiến hành công tác tuyển sinh, ở công đoạnnày các thông tin của trẻ em đợc chọn sẽ đợc ghi vào hồ sơ chung của nhà tr-ờng Các thông tin này thờng lấy ở hồ sơ của phụ huynh nạp lên bao gồm:
- Điện thoại nơi làm việc
- Điện thoại nhà riêng
- Các chú ý về trẻ
II Mục đích xây dựng hệ thống
1 Đánh giá hệ thống cũ.
Về u điểm:
+ Đối với việc quản lý trẻ em và giáo viên trong trờng mầm non nh trên
là đúng nguyên tắc của bộ giáo dục, vốn đầu t nhỏ
+ Đơn giản, đòi hỏi trình độ không cao
Sinh viên thực hiện: Trần Hồng Quân Lớp 46k2 CNTT 6
Trang 7 Về nhợc điểm:
+ Hệ thống quản lý cồng kềnh
+ Kho lu trữ lớn, lu trữ chủ yếu bằng giấy tờ
+ Các chức năng đều tiến hành bằng thủ công cho nên công việc nặng nhọc, mất thời gian
+ Việc tìm kiếm và sửa đổi khó khăn
+ Sử dụng nhiều nhân lực
+ Hiệu quả công việc thấp
+ Độ chính xác không cao
+ Có những công việc phải lặp đi lặp lại
Nh vậy việc quản lý trẻ em và giáo viên bằng cách thủ công nh hiệnnay bộc lộ rất nhiều hạn chế và không phù hợp với tình hình hiện nay
2 Hớng khắc phục:
Vì những tồn tại nh trên, tôi đã mạnh dạn đa ra một hình thức quản lýmới có sự trợ giúp của công nghệ thông tin Đó là sự xuất hiện của máy tínhvới những chức năng kế thừa tơng tự nh công tác quản lý trẻ em và giáo viên
đã thực hiện, tuy nhiên thời gian xử lý, các công việc liên quan tới công việcquản lý đợc nâng cao một cách rõ rệt
Với bài toán trên máy tính các công việc cập nhật thông tin về trẻ em
và giáo viên đợc thực hiện nhanh chóng, các công việc nh bổ sung học sinhmới nào đó hay xoá khỏi danh sách một học sinh nào đó cũng mang lại kếtquả cao Điều này tránh đợc tình trạng tẩy xoá hay thêm các dòng ghi chúkhông cần thiết trong hồ sơ chung của trơng và cũng nh phải kẻ thêm dòngmới để lu trẻ hoặc một giáo viên vừa chuyển đến trờng Bên cạnh đó hệthống mới cũng sẽ đợc thiết kế chức năng tìm kiếm thông tin theo yêu cầucủa ban giám hiệu, giáo viên hay phụ huynh Chức năng này sẽ đáp ứng đầy
đủ nguyện vọng của ngời cần thông tin một cách rất nhanh chóng
Trang 8PHẦN II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
I Lựa chọn hớng phân tích
Khi phân tích thiết kế hệ thống ta có thể chọn một trong hai hớng là ớng chức năng và hớng dữ liệu Trong đề tài này tôi lựa chọn phân tích theohớng chức năng Với cách tiếp cận này, chức năng đợc lấy làm trục chínhcủa quá trình phân tích và thiết kế, tiến hành phân tích trên xuống có cấutrúc
h-Các bớc thực hiện:
- Xây dựng biểu đồ phân cấp chức năng
- Xây dựng biểu đồ luồng dữ liệu
- Xây dựng mối quan hệ giữa các thực thể
- Xây dựng mô hình dữ liệu
II Phân tích hệ thống cũ
Với cách quản lý trẻ em hoàn toàn bằng phơng pháp thủ công truyềnthống gặp nhiều khó khăn trong việc lu trữ và xử lí thông tin Bởi vậy cầnxây dựng một chơng trình quản lý bằng máy vi tính để giúp việc quản lý một
Sinh viên thực hiện: Trần Hồng Quân Lớp 46k2 CNTT 8
Trang 9cách chính xác và hiệu quả hơn làm giảm nhẹ một phần đáng kể nhân lực vàcông sức.
+ Yêu cầu của hệ thống quản lý bằng máy tính:
- Quản lý tốt thông tin về trẻ em và giáo viên
- Xử lý thông tin chính xác, khoa học
- Chơng trình dễ sử dụng, có hiệu quả
- Có khả năng hỗ trợ đa ngời dùng, phù hợp với xu thế pháttriển của mạng máy tính
III Thiết kế hệ thống mới
a Các chức năng chính của hệ thống quản lý trẻ em và giáo viên trong trờngmầm non
+ Xem danh sách giáo viên
+ Xem danh sách nhóm tuổi
+ Xem danh sách các hoạt động của trẻ
+ Xem danh sách trẻ theo giáo viên
Trang 10IV Sơ đồ phân cấp chức năng.
Sơ đồ phân cấp chức năng đợc sử dụng để nêu ra chức năng và quá trình chobiểu đồ luồng dữ liệu, thông qua nó để mô tả các chức năng xử lý của hệthống theo các mức Việc phân rã chức năng đợc thực hiện trong sơ đồ phâncấp chức năng còn đợc dùng để chỉ ra mức độ mà từng quá trình hoặc quátrình con phải xuất hiện trong biểu đồ luồng dữ liệu
Khảo sát thực tế của “ Hệ thống quản lý trẻ em và giáo viên ở trờngmầm non ”, sơ đồ phân cấp chức năng của hệ thống đợc trình bày theo cácmức cụ thể sau:
V Biểu đồ luồng dữ liệu
Biểu đồ luồng dữ liệu dùng để diễn tả tập hợp các chức năng của hệthống trong mối quan hệ trớc sau của tiến trình xử lý và việc trao đổi thôngtin trong hệ thống Biểu đồ luồng dữ liệu giúp ta thấy đợc đằng sau những gì
Sinh viên thực hiện: Trần Hồng Quân Lớp 46k2 CNTT 10
Tìm kiếm
Xem danh sách trẻ Thống kê theo yêu cầu
Xem danh sách giáo viên
Xem danh sách các hoạt
động của trẻ
Xem danh sách trẻ theo
giáo viên Cập nhật nhóm tuổi
Quản lý trẻ em và giáo viên
Xem danh sách các nhóm
tuổi
Trang 11thực tế xảy ra trong hệ thống, làm rõ những chức năng và các thông tin cần thiết Biểu đồ luồng đợc chia thành các mức nh sau:
1 Mức ngữ cảnh
Là mức tổng quát nhất đợc xây dựng ở giai đoạn đầu của quá trình phân tích và đợc dùng để vạch ra biên giới của hệ thống cũng nh buộc ngời phân tích – thiết kế phải xem xét các luồng dữ liệu bên ngoài hệ thống, ở mức này ngời phân tích chỉ cần xác định đợc các tác nhân ngoài của hệ thống và coi toàn bộ các xử lý của hệ thống là một chức năng, trong biểu đồ cha có kho dữ liệu
Biểu đồ luồng dữ liệu mức ngữ cảnh 2 Mức đỉnh Dựa vào sơ đồ phân cấp chức năng ở mức 2 để tách các chức năng thành các chức năng con trên cơ sở tôn trọng 4 nguyên tắc sau: - Các luồng dữ liệu phải bảo toàn - Các tác nhân ngoài cũng phải đợc bảo toàn - Có thể xuất hiện các kho dữ liệu - Có thể bổ sung các luồng dữ liệu nội bộ Quản lý
trẻ em
và giáo viên
Phụ huynh
Giáo viên
Ban giám hiệu
Trang 12- Phải phân rã các chức năng ở mức trên xuống mức dới
- Các tác nhân ngoài bảo toàn từ sơ đồ mức đỉnh
- Kho dữ liệu xuất hiện dần theo yêu cầu quản lý nội bộ
- Bảo toàn các luồng dữ liệu vào ra với các tác nhân ngoài và thêm các luồng nội bộ
- Có thể tách biểu đồ thành từng trang ứng với một hoặc vài chức năng ở mức đỉnh
Sinh viên thực hiện: Trần Hồng Quân Lớp 46k2 CNTT 12
Cập nhật Thông tin
Thống kê
Xử lýThông tin
Phụ huynh
Giáo viênBan giám hiệu
Trang 13Phân công chăm sóc
Cập nhật giáo viên
Nhập hồ sơ trẻ
Cập nhật nhóm tuổi
Cập nhật hoạt
động Ban giám hiệu
Phụ huynh
Trang 14
* Thống kê theo yêu cầu
Sinh viên thực hiện: Trần Hồng Quân Lớp 46k2 CNTT 14
Phụ huynh
Xem danh sách giáo viên
Xem danh sách trẻ
Xem danh sách các hoạt
động
Xem danh sách nhóm tuổi
Xem danh sách trẻ theo giáo viên
Ban giám hiệu Giáo viên
Trang 15VI Mô hình thực thể và các thuộc tính
1 Chuẩn hoá lợc đồ cơ sở dữ liệu
Trong thực tế, một ứng dụng có thể đợc phân tích, thiết kế thành nhiềulợc đồ cơ sở dữ liệu khác nhau và tất nhiên chất lợng thiết kế của các lợc đồcơ sở dữ liệu này cũng khác nhau Chất lợng thiết kế của một lợc đồ cơ sở dữliệu có thể đợc đánh giá dựa trên các tiêu chuẩn nh: sự trùng lặp thông tin,chi phí kiểm tra các ràng buộc toàn vẹn
Sự chuẩn hoá lợc đồ cơ sở dữ liệu có ý nghĩa rất lớn đối với mô hìnhdữ liệu quan hệ Trong thực tế, ở những bớc tiếp cận đầu tiên, ngời phân tíchthiết kế rất khó xác định đợc ngay một cơ sở dữ liệu của một ứng dụng sẽgồm những lợc đồ quan hệ con (thực thể) nào (có chất lợng cao), mỗi lợc đồquan hệ con có những thuộc tính và tập phụ thuộc hàm ra sao? Thông quamột số kinh nghiệm, ngời phân tích - thiết kế có thể nhận diện đợc các thựcthể của lợc đồ cơ sở dữ liệu nhng lúc đó chất lợng của nó cha hẳn đã cao.Bằng phơng pháp chuẩn hoá, ngời phân tích – thiết kế có thể nâng cao chấtlợng của lợc đồ cơ sở dữ liệu ban đầu để đa vào khai thác
Chuẩn hoá là quá trình khảo sát các danh sách thuộc tính và áp dụngmột tập các quy tắc phân tích vào các danh sách đó, chuyển chúng thành mộtdạng mà:
- Tối thiểu việc lặp lại (cùng một thuộc tính có mặt ở nhiều thực thể)
- Tránh d thừa (các thuộc tính có giá trị là kết quả từ tính toán đơngiản đợc thực hiện trên các thuộc tính khác)
Để đánh giá một cách cụ thể chất lợng thiết kế của một lợc đồ cơ sở
dữ liệu, tác giả của mô hình dữ liệu quan hệ E.F Codd, đã đa ra 3 dạng
chuẩn (1NF, 2NF, 3NF) Ngời phân tích - thiết kế bắt đầu với một danh sáchcác thuộc tính dự định đối với một kiểu thực thể, sau khi áp dụng 3 quy tắc
Trang 16chuẩn hoá, từ kiểu thực thể gốc, các kiểu thực thể mới đợc xác định và tất cảchúng đều đợc chuẩn hoá hoàn toàn Có thể nói dạng chuẩn thứ 3 (3NF) làtiêu chuẩn tối thiểu trong việc thiết kế cơ sở dữ liệu.
Căn cứ quá trình khảo sát đã phân tích ở trớc, thống kê danh sách cácthuộc tính và tiến hành chuẩn hoá nh sau:
Họ trẻTên đệmNgày sinhTiền sử bệnhThuốc đang dùngTên phụ huynh
Điện thoại phụhuynh
Ngày đăng ký Ngày nhậnTên nhóm tuổi
Độ tuổi của nhómHọc phí theo nhóm
Mã giáo viênTên giáo viênLơng
Địa chỉ
Số giờ làm việc
Mã trẻMã nhóm tuổiTên trẻ
Họ trẻTên đệmNgày sinhTiền sử bệnhThuốc đang dùngTên phụ huynh
Điện thoại huynhNgày đăng ký Ngày nhậnTên nhóm tuổi
Độ tuổi của nhómHọc phí theo nhóm
Mã giáo viênTên giáo viênLơng
Địa chỉ
Số giờ làm việc
Số trẻ quản lý
Mã trẻMã nhóm tuổiTên trẻ
Họ trẻTên đệmNgày sinhTiền sử bệnhThuốc đang dùngTên phụ huynh
Điện thoại phụhuynh
Ngày đăng kýNgày nhận
Mã nhóm tuổiTên nhóm tuổi
Độ tuổi của nhómHọc phí theo nhóm
Mã giáo viênTên giáo viênLơng
Sinh viên thực hiện: Trần Hồng Quân Lớp 46k2 CNTT 16
Trang 17Mã trẻMã giáo viênMã nhóm tuổi
Mã hoạt độngMã nhóm tuổi
Mã hoạt độngTên hoạt độngChi phí hoạt
động
Mã trẻMã giáo viênMã nhóm tuổi
Mã hoạt độngMã nhóm tuổi
Địa chỉ
Số giờ làm việc
Số trẻ quản lý
Mã trẻMã giáo viên
Mã nhóm tuổiMã giáo viên
Mã nhóm tuổiMã hoạt động
Trang 18Số trẻ quản lý Ngày sinh
VII Mô hình dữ liệu quan hệ
Từ các kiểu thực thể đợc hệ thống ở trên, căn cứ vào quá trình khảo sátthực tế và sau các bớc thực hiện, đã xây dựng lợc đồ dữ liệu theo mô hình quan hệ nh sau:
Sinh viên thực hiện: Trần Hồng Quân Lớp 46k2 CNTT 18
Giáo viên_Nhóm tuổi Hoạt động- Nhóm tuổi
Trẻ em_Giáo viên
Hoạt động_Nhóm
tuổi
Nhóm tuổi
Giáo viên Giáo viên_Nhóm tuổi
Trang 19
PHẦN III: XÂY DỰNG CHƯƠNG TRèNH
I Giới thiệu chơng trình.
- Chơng trình đợc viết bằng ngôn ngữ Java ,là phần mềm dùng để quản lý
trẻ em và giáo viên trong một trờng mầm non Trờng mầm non này nhậnchăm sóc cho trẻ từ 12 tháng cho đến 6 tuổi và cung cấp các hoạt động vuichơi giải trí học hành cho trẻ
Các ngời sử dụng chính ứng dụng:
• Quản trị viên (Những ngời có đầy đủ quyền đối với các chức năng trong hệ thống)
• Thành viên (những ngời đợc quản trị viên cấp quyền để đăng nhập vào đợc
hệ thống và đợc cấp một số quyền nhất định)
Chức năng chính của ứng dụng : hệ thống thực hiện phân quyền theo 3
mức
+ Các chức năng của quản trị viên: ngời quản trị viên có đầy đủ các chức năng của hệ thống
• Quản lý thông tin của trẻ em(Child) (Thêm,Sửa, Xem,Xóa,Tìm kiếm)
• Quản lý thông tin của giáo viên(Nanny) (Thêm,Sửa, Xem,Xóa,Tìm kiếm)
• Quản lý hoạt động của trẻ em (Thêm,Sửa, Xem,Xóa,Tìm kiếm)
• Quản lý thông tin các nhóm tuổi trẻ em (Thêm,Sửa, Xem,Xóa,Tìm kiếm)
• Quản lý hoạt động theo nhóm (Thêm , Xóa, Xem)
• Quản lý ngời dùng và chức năng cho ngời dùng(Thêm,Sửa, Xóa,Xem, Tìm kiếm)
+ Các chức năng của thành viên(User) : thành viên đợc ngời quản trị cấp chomột số quyền cụ thể ứng với các chức năng của hệ thống
+ Trong mỗi quyền mà thành viên đợc cấp thì ngời quản trị viên lại giới hạn cho phép ngời đó đợc thêm, sửa hoặc xoá
Yêu cầu về cấu hình và phần mềm.
Trẻ em Hoạt động
Trang 20 JRE 1.6 hoặc các phiên bản lớn hơn.
Netbean 5.0 hoặc các phiên bản mới hơn
II Giới thiệu về ngôn ngữ và các công cụ sử dụng trong đồ án.
1 Ngôn ngữ lập trình Java.
a Nền tảng đợc thiết lập cho Java.
Vào cuối thập niên 80 và đầu thập niên 90, ngôn ngữ lập trình hớng đối ợng C++ đợc sử dụng phổ biến Dờng nh các lập trình viên đã tìm đợc mộtngôn ngữ lập trình hoàn hảo Bởi vì C++ pha trộn tính hiệu quả cao và cácyếu tố phong cách C với mô hình hớng đối tợng Tuy nhiên, cũng nh trongquá khứ, một lần nữa đã thay đổi sự phát triển của ngôn ngữ máy tính Chỉtrong vòng vài năm, World Wide Web và Internet đã đến với số đông Điềunày chuẩn bị cho một cuộc cách mạng trong ngôn ngữ lập trình,về cơ bảndẫn đến sự ra đời của Java
Java là một công nghệ xây dựng các ứng dụng phần mềm có vị trí rất lớntrong những năm cuối thế kỉ 20, đầu thế kỉ 21 Nó đợc coi là công nghệmang tính cách mạng và khả thi nhất trong việc tạo ra các ứng dụng có khảnăng chạy thống nhất trên nhiều nền tảng mà chỉ cần biên dịch một lần.Ngày nay, Java là một nền tảng tất yếu của các ứng dụng quy mô lớn của cácdoanh nghiệp nhờ vào khả năng mở rộng cũng nh những nền tảng vô cùngphong phú mà nó cung cấp
Sun Microsystem (SUN viết tắt của Stanford University Network), công ty đãphát minh ra ngôn ngữ Java, chính thức ban hành bản Java Development Kit1.0 vào năm 1996 hoàn toàn miễn phí Java đã trải qua 3 bớc phát triển quantrọng: Java 1.0 gắn liền với bản JDK đầu tiên, Java 2 gắn với JDK 1.2 vàJava 5 gắn với J2SDK 1.5
b Ngôn ngữ lập trình Java.
Ngôn ngữ lập trình Java là ngôn ngữ hớng đối tợng (tựa C++) do SUN
đa ra vào giữa thập niên 90 Khác với phần lớn ngôn ngữ lập trình thông ờng, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồnkhi chạy, Java đợc thiết kế để biên dịch mã nguồn thành bytecode, bytecodesau đó sẽ đợc môi trờng thực thi (runtime environment) chạy Bằng cách này,Java thờng chạy nhanh hơn những ngôn ngữ lập trình thông dịch khác nhPython, Perl, PHP, và khả chuyển hơn các ngôn ngữ lập trình biên dịch nhC++ Không nên lẫn lộn Java với Javảcipt, mặc dầu 2 ngôn ngữ cùng loại cúpháp nh C
th-Sinh viên thực hiện: Trần Hồng Quân Lớp 46k2 CNTT 20
Trang 21Ngày nay, đối với Java ngời ta không còn nhắc đến nh là 1 ngôn ngữlập trình mà nhắc đến một công nghệ hay một nền tảng phát triển, nó baogồm các bộ phận :
* Máy ảo Java: JVM
c Sự ra đời của Java.
Ngôn ngữ lập trình Java do James Gosling và các cộng sự trong nhómGreen Team của Công ty Sun Microsystem phát triển Đợc thai nghén nh làmột kiểu ngôn ngữ dùng cho các thiết bị tiêu dùng, SUN giới thiệu Java năm
1995 nh một thứ ngôn ngữ lập trình dành cho các trình duyệt Web Javanhanh chóng đợc áp dụng để xây dựng các công cụ hàng đầu cho các doanhnghiệp cũng nh trong các ứng dụng tối quan trọng
Đáng ngạc nhiên là sự thúc đẩy ban đầu của Java không phải là Internet.Thay vào đó động cơ chính là sự cần thiết của một ngôn ngữ có nền tảng độclập (hay là kiến trúc trung lập) có thể đợc dùng để tạo ra phần mềm đợcnhúng trong nhiều thiết bị tiêu dùng điện tử khác nhau Ta có thể đoán đợc,nhiều kiểu CPU đợc dùng nh là bộ điều khiển Vấn đề rắc rối đối với C vàC++ (hay hầu hết các ngôn ngữ khác) là chúng đợc thiết kế để đợc biên dịchcho một đối tợng nhất định Mặc dù có thể biên dịch một chơng trình C++cho bất cứ loại CPU nào, để làm điều đó đòi hỏi một trình biên dịch C++ đầy
đủ cho CPU đó Vấn đề là trình biên dịch đó rất đắt đỏ và mất nhiều thờigian để tạo ra nó Vì vậy cần một giải pháp dễ dàng và hiệu quả hơn Trong nỗ lực để tìm ra giải pháp đó, Gosling và các đồng nghiệp bắt
đầu làm việc trên một ngôn ngữ linh động và độc lập với nền tảng, nó có thể
đợc dùng để sinh ra mã có thể thực thi đợc trên các CPU khác nhau dới cácmôi trờng khác nhau
Sau hơn 18 tháng để phát triển phiên bản đầu tiên, nhóm đặt tên cho ngônngữ 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) Sau này Gosling biết tên Oak đã đợc sử dụng chomột ngôn ngữ lập trình từ trớc đó nên đổi tên là Java - đây là tên gọi của mộthòn đảo ở Indonexia, nơi nhóm nghiên cứu phát triển đã chọn để đặt tên chongôn ngữ lập trình mới trong một chuyến đi tham quan và làm việc trên hòn
đảo này Hòn đảo Java này là nơi rất nổi tiếng với nhiều khu vờn trồng cafe,
đó chính là lý do chúng ta thờng thấy biểu tợng ly café trong nhiều sản phẩmphần mềm, công cụ lập trình Java của Sun cũng nh một số hãng phần mềmkhác đa ra
Java có vô số những tính năng rất hấp dẫn đối với ngời phát triển nh môhình hớng đối tợng, cấu trúc mã rất dễ hiểu dựa trên C/C++ nhng có tính liênkết và logic nhất quán cao hơn, có ít các cấu trúc không an toàn, ít các tínhnăng xử lý cấp thấp hơn, cơ chế “dọn dẹp” bộ nhớ tự động tích hợp sẵn và
đặc biệt là có khả năng chạy trên nhiều nền phần cứng khác nhau
d Một số đặc điểm của Java.
Trang 22nhận tơng tự nh các ngôn ngữ phổ biến hiện hành đồng thời đòi hỏi khoảngthời gian huấn luyện lại tối thiểu và thân thiện hơn với ngời dùng.
Do đơn giản, ngôn ngữ này cũng rất nhỏ - nên nhớ rằng từ đầu nó đã đợc xâydựng để dùng cho điện tử dân dụng nh đầu chạy bằng video và hộp điềukhiển từ xa, những thiết bị có không gian lu trữ rất hạn chế
Hớng đối tợng (Object Oriented):
Hớng đối tợng trong Java tơng tự nh C++ nhng Java là một ngôn ngữ lậptrình hớng đối tợng hoàn toàn Tất cả mọi thứ đề cập đến trong Java đều liênquan đến các đối tợng đợc định nghĩa trớc, thậm chí hàm chính của một ch-
ơng trình viết bằng Java (đó là hàm main) cũng phải đặt bên trong một lớp.Hớng đối tợng trong Java không có tính đa kế thừa (multi inheritance) nhtrong C++ mà thay vào đó Java đa ra khái niệm interface để hỗ trợ tính đa kếthừa Vấn đề này sẽ đợc bàn chi tiết trong phần sau
Hiểu mạng (network-savvy):
Java đợc lập ra để hoạt động trên mạng và có các thủ tục để có thể quản
lý các giao thức mạng nh TCP/IP, FTP và HTTP Nói cách khác, Java đợcxây dựng để thực hiện hoàn toàn thích hợp trên Internet Chơng trình Javathậm chí có thể xâm nhập vào các đối thợng khác thông qua Internet bằngcách sử dụng URL (địa chỉ Web) để định vị chúng
Mạnh mẽ (robust):
Khả năng mạnh phải phù hợp với thiết kế của ngôn ngữ, và hớng nó vàoviệc khắc phục những h hỏng bộ nhớ và đảm bảo tính toán vẹn dữ liệu Ví
dụ, Java có tính năng "automatic garbage collection" (tự động thu gom rác)
-có nghĩa là bộ nhớ đợc giải phóng một cách tự động - nên lập trình viênkhông phải bận tâm về việc quản lý bộ nhớ và nhờ đó ít có xu hớng làmnhững việc gây hỏng bộ nhớ
An toàn (secure):
Khả năng hớng mạng của Java tự động đa ra yêu cầu về an toàn Đặc tính
an toàn của ngôn ngữ lập trình này bắt nguồn từ việc nó có những phần hạnchế đợc cài sẵn nhằm đề phòng các chơng trình Java thực hiện những chứcnăng nh ghi vào ổ cứng của ngời dùng hay cho phép virus từ mạng hoặc từmôi trờng phân tán thâm nhập vào
Độc lập với cấu trúc (architecture neutral):
Đây là thuộc tính đặc sắc nhất của Java Java đợc tạo ra với tiêu chí "Viết(code) một lần, thực thi khắp nơi" ("Write Once, Run Anywhere" (WORA)).Tính năng biên dịch một lần và chạy nhiều nền có thể đạt đợc nhờ just-in-time compiler (JIT), chuyển mã bytecode của Java sang mã máy khi chơngtrình đang chạy Chơng trình phần mềm viết bằng Java có thể chạy trên mọinền tảng (platform) khác nhau thông qua một môi trờng thực thi với điềukiện có máy ảo java thích hợp hỗ trợ nền tảng đó Môi trờng thực thi của SunMicrosystems hiện hỗ trợ Sun Solaris, Linux, Mac OS, FreeBSD, Windows
và nhiều hệ thống cài đặt trên các thiết bị di động
Di động (portable):
Đối với một phạm vi rộng, Java là loại có thể di chuyển nhờ khả năng độclập với hệ máy Đồng thời, các loại dữ liệu, giao diện, cũng nh dáng vẻ vàcảm nhận của Java đều giống nhau trên mọi hệ máy Hệ thống các thànhphần của java cũng có tính di động cao - nó đợc viết bằng Java
Thông dịch (Interpreter):
Sinh viên thực hiện: Trần Hồng Quân Lớp 46k2 CNTT 22
Trang 23Java là một ngôn ngữ lập trình vừa biên dịch vừa thông dịch Chơng trìnhnguồn viết bằng ngôn ngữ lập trình Java có đuôi *.java đầu tiên đợc biêndịch thành tập tin có đuôi *.class và sau đó sẽ đợc trình thông dịch thôngdịch thành mã máy.
Để chạy Java bytecode, cần cài đặt JRE (Java Runtime Environment) JREcung cấp các th viện cơ bản, Java Virtual Machine, plugin cho trình duyệt, vànhững thứ khác
Tốc độ cao (high perfprmance):
Khi Sun Microsystems mô tả Java có tốc độ cao, có lẽ họ muốn nói vềmã bytecode đợc thông dịch hiệu quả nh thế nào ( Java thờng chạy nhanhhơn những ngôn ngữ lập trình thông dịch khác nh Python, Perl, PHP ) Vềtốc độ các applet hay chơng trình Java thì nói chung đều chậm hơn các ch-
ơng trình Java thì nói chung đều chậm hơn các chơng trình đợc biên dịch viếtbằng C++, vì chơng trình này đã đợc tối u hoá từ trớc cho hệ máy nhất định.Java đã phải trả giá về hiệu suất cho tính không phụ thuộc hệ của nó
Đa luồng (multithreaded):
Đa luồng có nghĩa là ngôn ngữ Java cho phép xây dựng trình ứng dụng,trong đo, nhiều quá trình có thể xảy ra đồng thời Tính đa luồng cho phépcác nhà lập trình có thể biên soạn phần mềm đáp ứng tốt hơn, tơng tác tốthơn, và thực hiện theo thời gian thực
Tính động (dynamic):
Java động vì nó đợc thiết kế để đáp ứng với môi trờng tác nghiệp luôntrong tình trạng thay đổi Khi có yêu cầu mới xuất hiện trên thị trờng, cácloại đối tợng mới có thể đợc bổ sung vào ngay
e Ứ ng dụng.
Ban đầu, Java chủ yếu dùng để phát triển các applet, các ứng dụng nhúngvào trình duyệt, góp phần làm sinh động các trang web tĩnh vốn hết sức tẻnhạt hồi dó Tuy nhiên, cùng với sự phát triển của công nghệ thông tin vànhu cầu của xã hội, Java applet đã dần mất đi vị trí của nó và thay vào đó,các công ty, cộng đồng ủng hộ Java đã phát triển nó theo một hớng khác.Hiện nay, công nghệ Java đợc chia làm ba bộ phận hỗ trợ cho việc phát triểnnhiều loại hình ứng dụng khác nhau cụ thể nh:
J2SE (Java Standard Edition):
Gồm các đặc tả, công cụ, API của nhân Java giúp phát triển các ứngdụng trên desktop và định nghĩa các phần thuộc nhân của Java: platform chophát triển và thực thi các ứng dụng Java trên desktop và server, cũng nh cácthiết bị nhúng, và môi trờng thời gian thực
J2EE (Java Enterprise Edition):
Gồm các đặc tả, công cụ, API mở rộng J2SE để phát triển các ứng dụngqui mô doanh nghiệp, chủ yếu để chạy trên máy chủ (server) Bộ phận hay đ-
ợc nhắc đến nhất của công nghệ này là công nghệ Servlet/JSP: sử dụng Java
để làm các ứng dụng web
J2ME (Java Micro Edition):
Gồm các đặc tả, công cụ, API mở rộng để phát triển các ứng dụng Javachạy trên điện thoại di động, thẻ thông minh, thiết bị điện tử cầm tay, robo
Trang 24Server là một hệ quản trị cơ sở dữ liệu quan hệ mạng máy tính hoạt độngtheo mô hình khách chủ cho phép đồng thời cùng lúc có nhiều ngời dùngtruy xuất đến dữ liệu, quản lý việc truy nhập hợp lệ và các quyền hạn củatừng ngời dùng trên mạng Ngôn ngữ truy vấn quan trọng của Microsoft SQLserver là Transact-SQL Transact-SQL là ngôn ngữ SQL mở rộng dựa trênSQL chuẩn của ISO (International Organization for Standardization) và
ANSI (American National Standards Institute) đợc sử dụng trong SQLServer
b JDBC.
JDBC là viết tắt của “Java DataBase Connectivity” Nó là một API(Application Programming Interface) có chứa một tập hợp các lớp, các giaodiện Java và các thông báo lỗi ngoại lệ nằm trong cùng một đặc tả mà theo
đó cả các công ty sản xuất JDBC driver cũng nh các nhà phát triển JDBC đềuphải tuân thủ chặt chẽ khi phát triển ứng dụng
JDBC là một chuẩn truy xuất cơ sở dữ liệu rất phổ biến Các RDBMS(Relational Database Management Systems – Hệ quản trị cơ sở dữ liệuquan hệ) hay các nhà sản xuất phần mềm bên thứ ba phát triển các driver choJava đều cần tuân thủ chặt chẽ đặc tả JDBC Các nhà phát triển khác sử dụngcác driver này để phát triển nên các ứng dụng có truy cập cơ sở dữ liệu
JDBC tồn tại là để giúp các nhà phát triển Java tạo nên các ứng dụngtruy xuất cơ sở dữ liệu mà không cần phải học và sử dụng các API độc quyền
do các công ty sản xuất phần mềm khác nhau bên thứ ba cung cấp Bạn chỉcần học JDBC và sau đó bạn sẽ đợc đảm bảo rằng bạn sẽ có thể phát triểnnên các ứng dụng truy cập cơ sở dữ liệu có khả năng truy cập đến cácRDBMS khác nhau bằng cách sử dụng các JDBC driver khác nhau
Kiến trúc JDBC:
Trong Java có 2 lớp chủ yếu chịu trách nhiệm về thiết lập kết nối đến một cơ
sở dữ liệu:
1 DriverManager - Nạp các JDBC driver vào trong bộ nhớ Có thể sử dụng
nó để mở các kết nối tới một nguồn dữ liệu
2 Connection - Biểu thị một kết nối đến một nguồn dữ liệu Đợc dùng để tạo
ra các đối tợng Statement, PreparedStatement và CallableStatement.Statement - Biểu diễn một lệnh SQL tĩnh Có thể sử dụng nó để thu về đối t-ợng ResultSet
- PreparedStatement : Một giải pháp thay thế hoạt động tốt hơn đối tợngStatement, thực thi một câu lệnh SQL đã đợc biên dịch trớc
- CallableStatement : biểu diễn một thủ tục đợc lu trữ Có thể đợc sử dụng đểthực thi các thủ tục đợc lu trữ trong một RDBMS có hỗ trợ chúng
- ResultSet : biểu diễn một tập kết quả trong cơ sở dữ liệu tạo ra bởi việc sửdụng một câu lệnh SQL là SELECT
- SQLException - một lớp xử lý lỗi ngoại lệ chứa các lỗi truy cập cơ sở dữliệu
c Swing
Swing là bộ công cụ GUI(Graphical User Interface) thế hệ kế tiếp màSun Microsystems tạo ra cho phép môi trờng phát triển enterprise trong Java.Bằng môi trờng phát triển enterprise, chúng ta hiểu rằng, các lập trình viên
có thể sử dụng Swing để tạo ra các ứng dụng Java có khả năng mở rộng vớimột dãy nhiều thành phần mạnh mẽ Thêm vào đó, bạn có thể kế thừa hoặc
Sinh viên thực hiện: Trần Hồng Quân Lớp 46k2 CNTT 24