I. JDBC và trình điều khiển truy xuất cơ sở dữ liệu
I.1. Kết nối với cơ sở dữ liệu
Kết nối với cơ sở dữ liệu, JDBC đòi hỏi hai yếu tố là trình điều khiển (tương ứng với các kiểu kết nối) và thông tin để kết nối (như địa chỉ máy chủ, tên tài khoản đang đăng nhập và mật khẩu …). Đối với cơ chế truy xuất thông qua ODBC của Windows, chúng ta sử dụng trình điều khiển JdbcOdbcDriver do Sun cung cấp. Khai báo tên lớp này như sau:
String drivername = “sun.jdbc.odbc.JdbcOdbcDriver”;
Sau đó gọi phương thức tĩnh forName của lớp Class để nạp và khởi tạo trình điều khiển:
Class.forName (drivername).newInstance ();
Tiếp đó cung cấp cho trình điều khiển các thông tin cụ thể như: tên cơ sở dữ liệu, tên người dùng, mật khẩu như sau:
String connectionURL = “jdbc:odbc:quanliNV”;
String username = “sa” //Tên mặc định đặng nhập vào cơ sở dữ liệu MS SQLServer
String password = “” // Mật khẩu mặc định
Cuối cùng đối tượng Connection sẽ thể hiện kết nối đến cơ sở dữ liệu, gọi phương thức getConnection của lớp DriverManager để yêu cầu trình điều khiển nạp bởi Class.forName () trước đây tiếp nhận thông tin và thực hiện kết nối.
// Đối tượng kết nối JDBC Connection con = null; // Tạo kết nối
con = DriverManager.getConnection (connectionURL, username, password);
II.2. Truy vấn dữ liệu
Bước quan trọng là trích dữ liệu của các bảng trong cơ sở dữ liệu trong cơ sở dữ liệu, định nghĩa câu truy vấn SQL như sau:
SELECT <select list> FROM <table name> [WHERE <search condition list>] [GROUP BY <column name> [, <column name>]…]
<select list>: danh sách các trường cần trích ra từ [danh sách] <table name>, *: liệt kê hết các trường trong bảng.
<table name>: tên 1 hoặc nhiều bảng trong CSDL
[WHERE <search condition list>]: điều kiện cho phép lọc các record với một hoặc nhiều thuộc tính thỏa điều kiện tìm kiếm
Ví dụ: String sqlQuery = “SELECT * FROM NHANVIEN WHERE MANV = ‘DP06’”;
String sqlQuery = “SELECT MANV, HoNV, MACV FROM NHANVIEN”;
JDBC dựa vào đối tượng Statement để yêu cầu truy vấn dữ liệu. Đối tượng này dùng để thực thi mọi câu lệnh SQL. Riêng đối với lệnh SQL SELECT nếu truy vấn thành công, Statement sẽ trả về kết quả là tập dữ liệu truy vấn được có kiểu ResultSet.
Statement stmt = null; ResultSet rs = null;
stmt = con.createStatement (); rs = stmt.executeQuery (sqlQuery);
II.3. Trích xuất dữ liệu
Lệnh SELECT sau khi nhận được kết quả trả về là tập ResultSet, chúng ta gọi phương thức next () để đi đến từng mẫu tin và in ra kết quả của các cột. Phương thức next () sẽ trả về false nếu đã đến cuối tập dữ liệu.
While (rs.next ()) {
//In dữ liệu cột thứ nhất trong mẫu tin out.println (rs.getString (1));
//In dữ liệu của cột thứ 2 trong mẫu tin out.println (rs.getString (2));
… }
II.4. Xử lý các lệnh SQL INSERT / UPDATE / DELETE
Ngoài lệnh SQL SELECT thường sử dụng ra, các lệnh thay đổi dữ liệu như INSERT (tạo một mẫu tin), UPDATE (cập nhật mẫu tin) và DELETE (xóa bỏ mẫu tin) cũng sẽ được sử dụng rất thường xuyên trong chương trình.
INSERT:
Cú pháp: INSERT INTO <table name> [<column name> [, <column name>]…] VALUES (<expression> [, <expression>]…)
<table name>: tên bảng cần thêm mẫu tin
<column name>: tên cột cần thêm dữ liệu, nếu không nêu tên cột nó sẽ tự động thêm dữ liệu vào các cột tương ứng trong bảng của theo mệnh đề VALUES.
Ví dụ: INSERT INTO NHOM (MANHOM, TenNhom) VALUES (‘DA’, ‘Data Entry A’)
String sSQL = “INSERT INTO NHOM (MANHOM, TenNhom) VALUES (‘DA’, ‘Data Entry A’);
UPDATE:
Cú pháp:
UPDATE table_name SET column_name1 = expression1, column_name2 = expression 2, … [WHERE <search_condition>]
table_name: tên bảng cần thay đổi dữ liệu
column_name1, column_name2: tên cột cần thay đổi dữ liệu search_condition: điều kiện tìm kiếm cập nhật.
Ví dụ:
UPDATE NHOM SET MANHOM = ‘DA’, TenNhom = ‘Data Entry B’ String sSQL = “update NHOM set MANHOM = ‘DA’, TenNhom = ‘Data Entry B’;
stat.executeQuery (sSQL);
DELETE
Cú pháp:
DELETE table_name [WHERE <search_condition>] table_name: tên bảng cần xóa dữ liệu
search_condition: điều kiện tìm để xóa dữ liệu Ví dụ:
DELETE NHOM WHERE MANHOM = ‘OF’
String sSQL = “delete NHOM where MANHOM = ‘OF’; Stat.executeQuery (sSQL);
Phần II