1. Trang chủ
  2. » Luận Văn - Báo Cáo

Hãy viết chương trình trên ngôn ngữ Java cho phép cập nhật CSDL có kiểm tra tính gắn bó

19 1,1K 1

Đ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

Định dạng
Số trang 19
Dung lượng 339,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sử dụng ngôn ngữ java để xây dựng chương trình Các đặc điểm của java có thể tóm gọn trong một câu như sau: “Java là một ngôn ngữ đơn giản, hướng đối tượng, phân tán, thông dịch mạnh mẽ,

Trang 1

Đà Nẵng, tháng 3 năm 2010

ĐẠI HỌC ĐÀ NẴNG

*****  *****

TIỂU LUẬN

LẬP TRÌNH MẠNG NÂNG CAO

Đề tài: Hãy viết chương trình trên ngôn ngữ Java cho

phép cập nhật CSDL có kiểm tra tính gắn bó

Giảng viên hướng dẫn: PGS-TS PHAN THANH BÌNH

Học viên thực hiện : Nguyễn Văn Sang

Nguyễn Thị Kim Ngân

Trang 2

MỤC LỤC

LỜI MỞ ĐẦU

1

I BÀI TOÁN 4

II GIẢI QUYẾT BÀI TOÁN 4

1 Sử dụng ngôn ngữ java để xây dựng chương trình 4

2 Thiết kế cơ sở dữ liệu 4

2.1 Thiết kế cơ sở dữ liệu 4

2.2 Đăng kết với ODBC 5

2.3 Kết nối cơ sở dữ liệu trong java 5

3 Mô hình Client/Server 6

3.1 Xây dựng hệ đơn Server theo mô hình Client/Server thường gặp 6

3.2 Xây dựng Server 8

3.3 Xây dựng Client 9

3.4 Xây dựng Monitor để Manager hệ thống 9

4 Kiểm tra tính gắn bó dữ liệu 10

III MỘT SỐ KẾT QUẢ THỬ NGHIỆM 11 KẾT LUẬN

TÀI LIỆU THAM KHẢO

Trang 3

LỜI MỞ ĐẦU

Với sự phát triển của khoa học và kỹ thuật, ngày nay các mạng máy tính đã phát triển một cách nhanh chóng và đa dạng cả về quy mô, hệ điều hành và ứng dụng Khi thông tin có thể được sử dụng chung thì nó mang lại cho người sử dụng khả năng tổ chức lại các công việc với những thay đổi về chất như:

- Ðáp ứng những nhu cầu của hệ thống ứng dụng kinh doanh hiện đại

- Cung cấp sự thống nhất giữa các dữ liệu

- Tăng cường năng lực xử lý nhờ kết hợp các bộ phận phân tán

- Tăng cường truy nhập tới các dịch vụ mạng khác nhau đang được cung cấp trên thế giới

Thông qua môi trường mạng, con người có thể giao tiếp với nhau và chia sẻ thông tin dữ liệu dù ở khoảng cách rất xa Vấn đề đặt ra là làm sao phải đảm bảo dữ liệu trên mạng phải thống nhất Đây cũng chính là một trong những yêu cầu chính của lĩnh vực Lập trình mạng

Nội dung chủ yếu trình bày trong tiểu luận này là giải quyết một vấn đề về lập trình mạng, đó là chia sẻ cơ sở dữ liệu giữa các đối tượng ở xa nhau và đảm bảo tính gắn bó của dữ liệu Chương trình được viết trên ngôn ngữ Java và sử dụng Hệ quản trị

cơ sở dữ liệu Access Chương trình có thể được sử dụng để tham khảo đối với những người muốn tìm hiểu về lập trình mạng bằng Java

Tôi xin chân thành cảm ơn TS Lê Văn Sơn và các bạn lớp Khoa học máy tính khoá 11 - Đại học Đà Nẵng đã giúp tôi hoàn thành tiểu luận này

Học viên thực hiện

Trang 4

I BÀI TOÁN

Giả sử rằng ta có hệ thống CSDL phối hợp với một hoạt động được gọi từ xa nhằm phục vụ cho việc cập nhật hay tra cứu thông tin cần thiết Hãy viết chương trình trên ngôn ngữ Java cho phép cập nhật CSDL có kiểm tra tính gắn bó

1 Đây là hệ đơn Server, có thể hoạt động theo mô hình Client/Server thường gặp

2 Viết chương trình theo kiểu đa truy cập, ngẫu nhiên, từ xa với số lượng truy cập lớn

3 Xây dựng Monitoring để Manager hệ thống có thể kiểm tra và điều khiển quá trình thực hiện

II GIẢI QUYẾT BÀI TOÁN

1 Sử dụng ngôn ngữ java để xây dựng chương trình

Các đặc điểm của java có thể tóm gọn trong một câu như sau: “Java là một ngôn ngữ đơn giản, hướng đối tượng, phân tán, thông dịch mạnh mẽ, bảo mật, cấu trúc độc lập, khả chuyển, hiệu quả cao và linh động”

Để soạn thảo một chương trình java có thể sử dụng nhiều trình biên soạn khác nhau như Notepad, Jcreator, Editplus, NetBeans, Jbuilder, VisualAge

Sau khi soạn thảo chương trình java, có thể sử dụng trình biên dịch JDK hoặc SDK để dịch và chạy chương trình

2 Thiết kế cơ sở dữ liệu

Yêu cầu đầu tiên của bài toán là phải có một hệ thống cơ sở dữ liệu Cơ sở dữ liệu này sẽ phối hợp với một hoạt động cập nhật, tra cứu thông tin từ xa

Trong tiểu luận này, Cơ sở dữ liệu được thiết kế không nhằm mục đích quản lý

mà chỉ mô phỏng cho yêu cầu về cập nhật, tra cứu thông tin Do đó có thể thiết kế rất đơn giản

Ở đây có thể kết nối cơ sở dữ liệu đơn giản như sau:

2.1 Thiết kế cơ sở dữ liệu

- Thiết kế cơ sở dữ liệu Books sử dụng hệ quản trị cơ sở dữ liệu Access

- Cơ sở dữ liệu Books sẽ bao gồm table Books

- Table Books gồm một trường Maso để lưu các mã số về các cuốn sách

Trang 5

2.2 Đăng kết với ODBC

Trong Tiểu luận này ta dùng Cơ chế ODBC (Open Database Connectivity) để kết nối đến Cơ sở dữ liệu ODBC là một giao tiếp phổ biến nhất trong thế giới các máy tính cá nhân và dần dần đi vào các môi trường khác ODBC là một cài đặt của hãng Microsoft cung cấp các hàm cho phép các ngôn ngữ lập trình truy cập vào CSDL

Để tạo một kết nối ODBC trên một máy tính, ta thực hiện các bước sau:

- Vào Control Panel chọn Data Sources (ODBC) 32 bit (Win 98, Me) hoặc vào Control Panel/ Administrative Tools chọn Data Sources (ODBC) (Win NT, 2000, XP)

- Chọn tab System DSN, Click vào button Add, chọn phương thức điều khiển

dữ liệu dăng kết: Driver do Microsoft Access, Click

Finish. Bạn sẽ thấy một cửa sổ hiện ra, Click vào Select và chọn file Access, (trong trường hợp này là Books.mdb), bấm vào sau đó Click vào button OK Nhập Textbox Data Source Name : DSNThuVien Sau đó chọn OK Như vậy là bạn đã hoàn thành việc đăng kết Access thông qua ODBC

2.3 Kết nối cơ sở dữ liệu trong java

a Nạp trình điều khiển

Cấu trúc lệnh :

Class.forName("myDriver.ClassName");

Trong đó:

myDriver: tên trình điều khiển

ClassName: tên của Class tương ứng

b Tạo kết nối

Ta tạo đối tượng Connection (có tên là conn) bằng cách gọi phương thức getConnection của lớp DriverManager như sau:

Connection 

conn=DriverManager.getConnection(url,”myLogicName”,”myPassword”)

Trong đó:

url: là một chuỗi nêu lên đặc điểm của CSDL có dạng: jdbc:subprotocol:subname subprotocol: là giao thức con tương ứng với loại CSDL

subname: là tên CSDL (DataSource)

“myLoginName”: là tên người dùng khi đăng nhập vào CSDL

Trang 6

“myPassword”: là mật khẩu người dùng khi đăng nhập vào CSDL

c Tạo đối tượng Statement

Tất cả các lệnh dùng để tác động lên CSDL đều phải thông qua đối tượng

Statement hoặc một đối tượng cùng tính chất như PreparedStatement hay CallableStatement

Tạo đối tượng Statement từ kết nối conn:

Statement stmt = conn.createStatement();

Hoặc

CallableStatement Callstmt=conn.prepareCall();

PreparedStatement Prepstmt=conn.prepareStatement();

Gọi thực thi lệnh sql như sau:

Statement stmt=conn.createStatement();

stmt.executeUpdate(sSQL);

với sSQL là câu lệnh sql

Kết nối cơ sở dữ liệu sử dụng trong bài toán

try  {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connectionknoi=DriverManager.getConnection("jdbc:odbc:DSNThuVien");

Statement lenhSQL = knoi.createStatement();

 } 

catch(ClassNotFoundException ex){

}

catch(SQLException ex){

}

3 Mô hình Client/Server

3.1 Xây dựng hệ đơn Server theo mô hình Client/Server thường gặp

Trong mô hình này, chương trình ứng dụng được chia thành 2 thành phần:

Trang 7

- Quá trình chuyên cung cấp một số phục vụ nào đó, chẳng hạn: phục vụ tập tin, phục vụ máy in, phục vụ thư điện tử, phục vụ Web Các quá trình này được gọi là các trình phục vụ hay Server

- Một số quá trình khác có yêu cầu sử dụng các dịch vụ do các server cung cấp được gọi là các quá trình khách hàng hay Client

Việc giao tiếp giữa client và server được thực hiện dưới hình thức trao đổi các thông điệp (Message) Để được phục vụ, client sẽ gởi một thông điệp yêu cầu (Request Message) mô tả về công việc muốn server thực hiện Khi nhận được thông điệp yêu cầu, server tiến hành phân tích để xác định công việc cần phải thực thi Nếu việc thực hiện yêu cầu này có sinh ra kết quả trả về, server sẽ gởi nó cho client trong một thông điệp trả lời (Reply Message) Dạng thức (format) và ý nghĩa của các thông điệp

Trang 8

3.2 Xây dựng Server

- Sơ đồ khối cho chương trình chính của Server như sau:

- Tuy nhiên đây là chương trình đa truy cập, ngẫu nhiên, từ xa với số lượng truy

Sơ đồ khối cho MultipleSocketServer:

Bắt đầu Tạo giao diện Đợi kết nối từ các Client

Nhận kết nối

Sai

Đúng Tạo một Thread mới cho MultipleSocketServer

Kết thúc

Bắt đầu Tạo kết nối với CSDL Nhận thông tin từ Client

Thực thi việc Nhập, sửa, xoá, xuất thông tin theo thông tin nhận được Gửi kết quả về cho Client

Kết thúc

Trang 9

3.3 Xây dựng Client

Sơ đồ khối cho chương trình chính của Client như sau:

3.4 Xây dựng Monitor để Manager hệ thống

Monitoring thực hiện các công việc sau:

- Quan sát các Client kết nối vào Server

- Quan sát các công việc mà các client thực hiện trên cơ sở dữ liệu

Để đảm bảo Monitoring luôn nhận được thông tin về các hoạt động truy xuất dữ liệu giữa Client/Server, các hoạt động về việc kết nối và truy xuất dữ liệu sẽ được ghi vào file txtketnoi.txt và txtthaotac.txt

Bắt đầu Tạo giao diện Kết nối đến Server

Thực hiện yêu cầu thêm, sửa, xoá, xuất trên giao diện

Chuyển yêu cầu đến

Server

Nhận kết quả từ Server, xuất kết quả ra màn hình

Kết thúc

Trang 10

4 Kiểm tra tính gắn bó dữ liệu

Cho một hệ thống cho phép cập nhật thông tin hay tra cứu thông tin cần thiết Thông thường một ứng dụng nhiều người dùng (multiuser application) làm việc với CSDL, ta sẽ gặp phải trường hợp hai người cùng truy xuất và cập nhật trên cùng một

dữ liệu Ta gọi đó là trạng thái xung đột Và khi đó số liệu dễ bị sai lạc và làm mất tính toàn vẹn, gắn bó của dữ liệu Do đó, mỗi khi cập nhật thông tin hay tra cứu thông tin, phải kiểm tra để xác định quyền truy cập để đọc hay sửa đổi nội dung các bảng cơ sở

dữ liệu Chỉ cho phép cập nhật khi không có truy vấn nào đang tiến hành

Các hệ CSDL có hỗ trợ transaction sẽ sử dụng cơ chế lock, khoá các khối dữ liệu đang ở trong một transaction ngăn không cho các truy cập từ những người dùng khác Trong java, khi chế độ Auto-Commit được mở, mỗi câu lệnh được xem như một transaction và được commit tức thời sau khi thực hiện xong, thì việc lock dữ liệu sẽ được gọi trong từng câu lệnh Tác dụng của việc lock dữ liệu là giúp người dùng không phải nhận những giá trị sai hay những giá trị chưa được xác lập

Có thể biểu diễn quá trình transaction như sau:

Bắt đầu Tạo giao diện Kết nối đến Server

Thực hiện yêu cầu kiểm tra kết nối, kiểm tra thao tác, thoát

Chuyển yêu cầu đến

Server

Nhận kết quả từ Server, xuất kết quả ra màn hình

Kết thúc

Trang 11

Trong quá trình cập nhật dữ liệu, nếu ta không muốn thực thi các cập nhật, ta có thể gọi lệnh rollback Lúc này các trường (field) sẽ nhận lại các giá trị trước khi các lệnh cập nhật được gọi Rollback một transaction là cách tốt nhất cho phép ta kiểm soát các thay đổi của dữ liệu, giá trị nào đã commit hay chưa Ta cần thực hiện rollback ngay khi nhận được ngoại lệ SQLException Vì khi nhận được ngoại lệ này,

ta chỉ có thể biết là có một cái gì đó không đúng nhưng không thể chỉ ra được là cái gì

đó đã commit hay chưa

III MỘT SỐ KẾT QUẢ THỬ NGHIỆM

1/ Server sau khi khởi động sẽ đợi các kết nối từ Client:

Tạo Connection Chấm dứt auto-commit

Các lệnh SQL Update, Insert, Delete

commit

commit

Các lệnh SQL Update, Insert, Delete

Transaction

Transaction

Trang 12

2/ Khi Client kết nối vào Server

Lưu ý là có thể nhiều Client kết nối vào Server một cách đồng thời, ngẫu nhiên,

đa truy cập

Client:

Server:

Trang 13

3/ Client thực hiện cập nhật dữ liệu

Ví dụ: Chèn cuốn sách có mã số 14 vào cơ sở dữ liệu

Thao tác:

- Kích nút “Chen”

- Một cửa sổ mới xuất hiện, nhập mã số sách cần chèn vào và kích nút “Chen”

để chèn vào hoặc “Tro ve” để tắt cửa sổ

- Kết quả sẽ hiển thị trên cửa sổ của Client

4/ Client thực hiện sửa dữ liệu

Trang 14

Ví dụ: sửa mã số sách 14 thành 15

Thao tác:

- Kích nút “Sua”

- Một cửa sổ mới xuất hiện, nhập mã số sách cần sửa vào và kích nút “Sua” để sửa hoặc “Tro ve” để tắt cửa sổ

- Kết quả sẽ hiển thị trên cửa sổ của Client

5/ Client thực hiện xoá dữ liệu

Ví dụ: xoá cuốn sách có mã số 15

Thao tác:

- Kích nút “Xoa”

- Một cửa sổ mới xuất hiện, nhập mã số sách cần xoá và kích nút “Xoa” để xoá hoặc “Tro ve” để tắt cửa sổ

- Kết quả sẽ hiển thị trên cửa sổ của Client

Trang 15

6/ Client thực hiện xem tất cả dữ liệu

Thao tác:

- Kích nút “Xuat” để xem tất cả các sách hiện có

7/ Monitoring kết nối vào Server

Trang 16

8/ Monitoring kiểm tra các kết nối

Thao tác: Kích nút “KT ket noi”, Monitoring sẽ hiển thị tất cả các Client kết nối vào Server

9/ Monitoring kiểm tra các thao tác

Thao tác: Kích nút “KT thao tac”, Monitoring sẽ hiển thị tất cả các hoạt động mà Client thực hiện trên cơ sở dữ liệu:

Trang 18

KẾT LUẬN

Trong tiểu luận này đã giải quyết các vấn đề cơ bản đặt ra ban đầu như:

 Thực hiện kết nối Client/Server, trong đó một Server có thể nhận kết nối từ nhiều Client cùng lúc

 Mỗi Client có thể kết nối vào cơ sở dữ liệu tại Server và thực hiện các hoạt động thêm, sửa, xoá, xuất, thoát Quá trình này có kiểm tra tính gắn bó về dữ liệu

 Xây dựng Monitoring dùng để kiểm tra quá trình cập nhật dữ liệu

 Chương trình được xây dựng bằng ngôn ngữ Java

Tuy nhiên, do bản thân mới bước đầu tìm hiểu và làm quen với ngôn ngữ lập trình Java nên chương trình được viết chưa tối ưu, chưa khai thác hết được những đặc điểm nổi trội của ngôn ngữ Java như: Giao diện chương trình, kế thừa, đóng gói, tính mềm dẻo,

Hy vọng rằng trong thời gian đến, khi tìm hiểu sâu hơn về Java, bản thân cũng như các bạn trong lớp sẽ có những kỹ năng tốt hơn về Lập trình bằng ngôn ngữ Java

để phục vụ tốt hơn cho công việc của mình

Trang 19

TÀI LIỆU THAM KHẢO

1 Trần Tiến Dũng, Giáo trình lý thuyết và bài tập Java, Nhà xuất bản giáo dục, 1999

2 Ngô Bá Hùng - Nguyễn Công Huy, Bài giảng Lập trình truyền thông, Khoa Công nghệ thông tin, Đại học Cần Thơ

3 Các tài liệu trên Internet

Ngày đăng: 12/11/2014, 08:52

HÌNH ẢNH LIÊN QUAN

Sơ đồ khối cho MultipleSocketServer: - Hãy viết chương trình trên ngôn ngữ Java cho phép cập nhật CSDL có kiểm tra tính gắn bó
Sơ đồ kh ối cho MultipleSocketServer: (Trang 8)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w