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!
- Những Luồng Được Định Nghĩa Trước (The Predefined Streams)
- File Truy Cập Ngẫu Nhiên (Random Access Files)
- Công nghệ Java - 20
- Cách Tạo Truy Vấn Và Các Kiểu Truy Vấn
- Lập Trình Thao Tác Với Địa Chỉ Ip, Lớp Url Connection
- Ví Dụ Sử Dụng Các Phương Thức Lớp Inetaddress
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 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
Mã 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ã 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;