Ứng Dụng Giao Tiếp Với Cơ Sở Dữ Liệu

CÂU HỎI ÔN TẬP, THẢO LUẬN

Điền vào chỗ trống để được câu hoàn thiện.

1. ---------- là các dàn ống (pipelines) để gửi và nhận thông tin trong các chương trình Java.

2. ----------- là luồng lỗi chuẩn.

3. Phương thức ------------- đọc các byte dữ liệu từ một luồng.

4. Phương thức ------------- trả về giá trị boolean, nêu rõ luồng có hỗ trợ các khả năng mark và reset hay không.

5. Phương thức ------------ xả sạch luồng.

6. Nhập/xuất mảng byte sử dụng các lớp ------------ và ---------------------

7. Lớp --------------- được sử dụng truy cập các đối tượng thư mục và tập tin.

8. --------------là một khi chưa để lưu giữ dữ liệu.

Có thể bạn quan tâm!

Xem toàn bộ 232 trang tài liệu này.

BÀI TẬP ỨNG DỤNG

Bài 1. Viết chương trình nhận một dòng văn bản từ người dùng và hiển thị đoạn văn bản đó lên màn hình.

Bài 2. Viết chương trình sao chép nội dụng một tập tin tới tập tin khác.

Bài 3. Viết chương trình tạo ra một tập tin truy cập ngẫu nhiên. kết xuất hiển thị phía dưới đây.

Các bản ghi nên được lưu ở dạng tập tin ‘ dat’ vì vậy người dùng truy 1

Các bản ghi nên được lưu ở dạng tập tin ‘.dat’, vì vậy người dùng truy cập chúng nhanh hơn.

Bài 4. Viết chương trình ghi các giá trị kiểu int, float, double, string,… tới một file có tên ‘abc.txt’. Đọc giá trị số nguyên và double từ tập tin và hiển thị chúng ra màn hình.

Bài 5. Viết chương trình nhận một dòng văn bản từ người dùng và kiểm tra xem tập tin văn bản đã có (test.txt) có nội dung đó không? Nếu có thì in nội dung của văn bản đó ra màn hình.

Bài 6. Một trung tâm tin học cần quản lý các phương tiện giao thông gồm các loại ô tô và xe máy.Mỗi loại phương tiện (ô tô và xe máy ) cần quản lý : màu xe,giá thành,và hãng sản suất.Ngoài ra đối với ô tô cần biết thêm : số ghế ,loại máy động cơ; còn đối với xe máy thì cần biết thêm : công suất.

1/Xây dựng các lớp cho các phương tiện , trong đó lớp ô tô và xe máy là được kế thừa từ lớp phương tiện giao thông nói chung.

2/ Viết chương trình thực hiện theo các menu sau :

Đăng ký loại phương tiện mới

Xóa đi loại phương tiện

Tìm theo hãng sản xuất

Tìm theo màu

Thoát khỏi hệ thống

Người sử dụng có thể chọn một trong các mục nêu trên .Nếu chọn a/ thì hệ thống sẽ hỏi là nhập mới otô hay xe máy, chọn b/ để xóa đi một mục đã đăng ký, c/ thì hệ thống sẽ hỏi tên hàng sản xuất cần tìm.....vvv.Viết chương trình thực hiện các chức năng trên .Thông tin về các loại phương tiện giao thông khi nhậ vào phải được ghi lên tệp để sau đó được đọc để tìm kiếm theo hãng hay theo màu

Bài 7. Phòng quản lý sinh viên của Đại học QG cần quản lý các thông tin về sinh viên của Trường. Mỗi sinh viên cần quản lý : họ và tên, số báo danh, ngày tháng năm sinh,môn học và điểm môn học.Viết chương trình thực hiện theo các menu sau:

1. Nhập thông tin của sinh viên mới

2. Tìm theo số báo danh

3. Hiển thị tất cả danh sách các sinh viên

4. Thoát khỏi hệ thống.

Người sử dụng có thể chọn một trong các mục trên .nếu chọn 1. thì người sử dụng có thể nhập vào một sinh viên mới , chọn 2. để tìm theo số báo danh...vv

Viết chương trình thực hiện các chức năng trên. Thông tin về sinh viên khi nhập vào phải được ghi lên tệp để sau đó được đọc ra để tìm kiếm hay hiển thị danh sách

Chương 6. ỨNG DỤNG GIAO TIẾP VỚI CƠ SỞ DỮ LIỆU

Mục đích

Trong chương này, chúng tôi trình bày về kiến trúc JDBC, cách kết nối cơ sở dữ liệu với JDBC, sử dụng cơ sở dữ liệu lưu trữ trên các hệ quản trị khác nhau như MYSQL, SQLSERVER, ORACLE, cách tạo các truy vấn thao tác trên cơ sở dữ liệu

6.1. Giới thiệu

Hầu hết các chương trình máy tính hiện này đều liên quan đến việc truy xuất thông tin trong cơ sở dữ liệu. Vì vậy các thao tác hỗ trợ lập trình cơ sở dữ liệu là chức năng không thể thiếu của các ngôn ngữ lập trình hiện đại, trong đó có Java. JDBC API là thư viện chứa các lớp và giao diện hỗ trợ lập trình viên Java kết nối và truy cập đến các hệ cơ sở dữ liệu. Phiên bản JDBC API mới nhất hiện nay là 3.0, là một thành phần trong J2SE, nằm trong 2 gói thư viện:

- Java.sql: chứa các lớp và giao diên cơ sở của JDBC API.

- Javax.sql: chứa các lớp và giao diện mở rộng.

JDBC API cung cấp cơ chế cho phép một chương trình viết bằng Java có khả năng độc lập với các hệ cơ sở dữ liệu, có khả năng truy cập đến các hệ cơ sở dữ liệu khác nhau mà không cần viết lại chương trình. JDBC đơn giản hóa việc tạo và thi hành các câu truy vấn SQL trong chương trình.

6.2. Kiến trúc JDBC, cách tạo ứng dụng JDBC

Kiến trúc của của JDBC tương tự như kiến trúc ODBC do Microsoft xây dựng. Theo kiến trúc này các thao tác liên quan đến cơ sở dữ liệu trong chương trình được thực hiện thông qua các JDBC API. Sau đó các JDBC API sẽ truyền các yêu cầu của chương trình đến bộ quản lý trình điều khiển JDBC, là bộ phận có nhiệm vụ lựa chọn trình điều khiển thích hợp để làm việc với cơ sở dữ liệu cụ thể mà chương trình muốn kết nối.

C

C

C

D

Establish link

Driver

Database

DriverManager

Connection

Statement

ResultSet


Hình 6.1. Kiến trúc JDBC

Kiến trúc của JDBC gồm 2 tầng: tầng đầu tiên là các JDBC API, có nhiệm vụ chuyển các câu lệnh SQL cho bộ quản lý trình điều khiển JDBC; tầng thứ 2 là các JDBC Driver API, thực hiện nhiệm vụ liện hệ với trình điều khiển của hệ quản trị cơ sở dữ liệu cụ thể.

6.3. Các khái niệm cơ bản

6.3.1. JDBC Driver

Trình điều khiển JDBC là đoạn chương trình, do chính nhà xây dựng hệ quản trị CSDL hoặc do nhà cung ứng thứ ba cung cấp, có khả năng yêu cầu hệ quản trị CSDL cụ thể thực hiện các câu lệnh SQL.

Danh sách các trình điều khiển JDBC cho các hệ quản trị CSDL khác nhau được Sun cung cấp và cập nhật tại địa chỉ:

http://www.oracle.com/technetwork/indexes/downloads/index.html. Các trình điều khiển JDBC được phân làm 04 loại khác nhau.

Loại 1: có tên gọi là Bridge Driver.Trình điều khiển loại này kết nối với các hệ CSDL thông qua cầu nối ODBC. Đây là trình điều khiển được sử dụng phổ biến nhất trong những ngày đầu Java xuất hiện. Trình điều khiển loại này luôn được cung cấp kèm trong bộ J2SE với tên: sun.jdbc.odbc.JdbcOdbcDriver


Java Application, Applet, Servlet

Mã Java


JDBC Driver


ODBC

Database Driver

Database

Mã Native


Hình 6.2. Trình điều khiển JDBC Driver

Loại 2: Native API Driver. Trình điều khiển loại này sẽ chuyển các lời gọi của JDBC API sang thư viện hàm (API) tương ứng với từng hệ CSDL cụ thể. Trình điều khiện này thường do nhà xây dựng hệ CSDL cung cấp. Để có thể thi hành chương trình mã lệnh làm việc với hệ CSDL cụ thể cần phải được cung cấp đi kèm với chương trình.


JDBC Driver

Java Application, Applet, Servlet

Java


Database Driver


Database

Mã Native


Hình 6.3. Trình điều khiển Native API Driver


Loại 3: Có tên gọi là JDBC-Net Driver. Trình điều khiển loại này sẽ chuyển các lời gọi JDBC API sang một dạng chuẩn độc lập với các hệ CSDL, và sau được chuyển sang lời gọi của hệ CSDL cụ thể bởi 1 chương trình trung gian.

Trình điều khiển của các nhà cung ứng thứ 3 thường thuộc loại này. Lợi thế của trình điều khiển loại này là không cần cung cấp mã lệnh kèm theo và có thể sử dụng cùng một trình điều khiển để truy cập đến nhiều hệ CSDL khác nhau.


Java Application, Applet, Servlet

JDBC Driver

Internet

Java Middle Ware

Java Native Driver

Mã Java


Mã Java



Database


Hình 6.4. Trình điều khiển JDBC-Net Driver

Loại 4: Native Protocol Driver. Trình điều khiển loại này chuyển các lời gọi JDBC API sang mã lệnh của CSDL cụ thể. Đây là trình điều khiển thuần Java, có nghĩa là không cần mã lệnh của hệ CSDL cụ thể khi thi hành chương trình.


Java Application, Applet, Servlet

Mã Java



Internet

JDBC Driver


Database

Java Native Driver

Mã Java


Hình 6.5. Trình điều khiển Native Protocol Driver

6.3.2. JDBC URL

Để kết nối với CSDL, chúng ta cần xác định nguồn dữ liệu cùng các thông số liên quan dưới dạng 1 URL như sau:

Jdbc : <subprotocol> : <dsn> : <others> Trong đó:

<subprotocol>: được dùng để xác định trình điều khiển để kết nối với CSDL.

<dsn>: địa chỉ CSDL. Cú pháp của <dsn> phụ thuộc vào từng trình điều khiển cụ thể.

<other>: các tham số khác

jdbc:odbc:dbname là URL để kết nối với CSDL tên dbname sử dụng cầu nối ODBC. jdbc:microsoft:sqlserver://hostname:1433 là URL để kết nối với CSDL Microsoft SQL Server. Trong đó hostname là tên máy cài SQL Server.

6.4. Kết nối cơ sở dữ liệu với JDBC

Việc kết nối với CSDL bằng JDBC được thực hiện qua hai bước: Bước 1: Đăng ký trình điều khiển JDBC;

Bước 2: Thực thi phương thức getConnection () của lớp DriverManager.

6.4.1. Đăng ký trình điều khiển

Trình điều khiển JDBC được nạp khi mã bytecode được nạp vào JVM. Một cách đơn giản để thực hiện công việc này là thực thi phương thức Class.forName(“<JDBC Driver>”).

Để nạp trình điều khiển sử dụng cầu nối ODBC do Sun cung cấp, chúng ta sử dụng câu lệnh sau Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”).

6.4.2. Thực hiện kết nối

Sau khi đã nạp trình điều khiển JDBC, việc kết nối với CSDL được thực hiện với một trong các phương thức sau trong lớp DriverManager:

public static Connection getConnection(String url) throws SQLException: thực hiện kết nối với CSDL được yêu cầu. Bộ quản lý trình điều khiển sẽ tự động lựa chọn trình điều khiển phù hợp trong số các trình điều khiển đã được nạp.

public static Connection getConnection(String url, String user, String pass) throws SQLException: kết nối tới CSDL với tài khoản user và mật mã pass.

public static Connection getConnection(String url, Properties info) throws SQLException: tương tự hai phương thức trên ngoài ra cung cấp thêm các thông tin qui định thuộc tính kết nối thông qua đối tượng của lớp Properties. Kết quả trả về của các phương thức trên là một đối tượng của lớp Java.sql. Connection được dùng để đại diện cho kết nối đến CSDL.

Tóm lại: Các bước cơ bản để kết nối với cơ sở dữ liệu từ một ứng dụng Java

Bước 1: Nạp trình điều khiển

try{ Class.forName(“oracle.jdbc.driver.OracleDriver”);

}

catch(ClassNotFoundException e)

{

System.out.println(“Loi nap trinh dieu khien:”+e);

}

Bước 2: Xác định URL cơ sở dữ liệu

String host=”dbhost.yourcompany.com”; String dbName=”someName”;

int port=1234;

String oracaleURL=”jdbc:oracle:thin:@”+host+”:”+port+dbName;

Bước 3: Thiết lập liên kết

String username=”hoan_td2001”; String password=”topsecret”;

Connection con=DriverManager.getConnecton(oracleURL,username,password);

Bước 4: Tạo ra một đối tượng Statement

Statement s=con.createStatement();

Bước 5: Xử lý truy vấn

String q=”Select col1, col2, col3 from sometable”; ResultSet rs=s.executeQuery(q);

Bước 6: Xử lý kết quả

while(rs.next())

{

System.out.println(rs.getString(1)+” “+ rs.getString(2)+” “+

rs.getString(3));

}

Cột đầu tiên có chỉ mục là 1 chứ không phải là 0.

Bước 7: Đóng liên kết

con.close();

6.4.3. Các ví dụ

Trong phần ví dụ này tìm hiếu các cách khác nhau để kết nối với tập tin CSDL SQL Server JDB có một bảng tên Products. Bảng này gồm các cột ID, Name, và Number.

Bảng Products được tạo như sau :

Sau khi đã hoàn tất công việc tạo CSDL JDB chúng ta có thể sử dụng đoạn mã 6

Sau khi đã hoàn tất công việc tạo CSDL JDB, chúng ta có thể sử dụng đoạn mã sau để tiến hành kết nối CSDL.

Ví dụ 6.1:

package testconnection; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException;

import java.sql.Statement;

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 29/01/2024