Tải bản đầy đủ (.pdf) (16 trang)

7 lab7 tủ tài liệu bách khoa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.01 MB, 16 trang )

ThS. Trần Thị Thanh Nga
Khoa CNTT, Trường ĐH Nông Lâm TPHCM
Email:


Nội dung
 Data Access Object (DAO) với Java Database

Connectivity (JDBC).


Các Interface cơ bản trong JDBC
 Driver: phần điều khiển
 Connection: tham chiếu đến đối tượng kết nối CSDL
 Statement: chứa và thực thi câu lệnh SQL

 PreparedStatement: chứa và thực thi câu lệnh SQL
(Tạo bởi Connection)

 ResultSet: chứa kết quả của việc thực thi câu lệnh

select.
(Tạo bởi việc thực thi Statement hoặc PreparedStatement)


Statement
 Tạo Statement:

Connection conn = /* Tạo kết nối Connection*/
Statement stmt = conn.createStatement();



Statement
Thực thi câu lệnh SQL:
 Giả sử câu lệnh SQL đưa ra là một câu lệnh insert,
update, hoặc delete:
String sql = /* …………………………*/
int i = stmt.excuteUpdate(sql);

 Phương thức excuteUpdate() trả về số dòng được

thêm, cập nhật, hoặc xóa khi thực thi câu lệnh SQL


Statement
Thực thi câu lệnh SQL:
 Giả sử câu lệnh SQL đưa ra là một câu lệnh select
String sql = /* …………………………*/
ResultSet rs = stmt.executeQuery(sql);

 Phương thức excuteQuery () trả về một tập kết quả

của việc truy suất dữ liệu.
 Sau khi thực hiện xong phương thức executeQuery()
thành công, chúng ta sẽ tiến hành kiểm tra và lấy dữ
liệu trong ResultSet thông qua hai phương thức là
next() và getType() (đã học ở Lab 6)


Ví dụ về câu lệnh Insert



Ví dụ về câu lệnh Update


Ví dụ về câu lệnh Delete


Chú ý
Trong Statement: Các tham số điều kiện của SQL phải
gán trực tiếp trong câu chuỗi SQL truyền vào cho
Statement.
Khó quản lý được các tham số truyền vào.
Lồng ghép chuỗi phải chú ý đối với các tham số tương

ứng với kiểu chữ và kiểu số ..v..v..

Sử dụng PreparedStatement để khắc phục những

yếu điểm trên


PreparedStatement
 Tạo PreparedStatement:

Connection conn = /* Tạo kết nối Connection*/
Statement prstmt = conn.preparedStatement(sql);
prstmt.setType(index,value);
index bắt đầu từ vị trí từ 1, tương ứng với dấu ? xuất
hiện trong câu lệnh SQL tính từ trái qua.
Type: Kiểu dữ liệu tương ứng với kiểu dữ liệu cần

truyền vào SQL.


PreparedStatement
 Tạo PreparedStatement:

Connection conn = /* Tạo kết nối Connection*/
Statement prstmt = conn.preparedStatement(sql);
prstmt.setType(index,value);
index bắt đầu từ vị trí từ 1, tương ứng với dấu ? xuất
hiện trong câu lệnh SQL tính từ trái qua.
Type: Kiểu dữ liệu tương ứng với kiểu dữ liệu cần
truyền vào SQL.


Statement
 Thực thi câu lệnh SQL:
 Tương tự như Statement, đối với câu lệnh SQL là
Insert, Update, hoặc Delete gọi phương thức
executeUpdate() để lấy được số dòng được thêm, cập
nhập, hoặc xóa . Và gọi phương thức executeQuery() để
lấy ra được tập kết quả của việc thực thi câu lệnh Select.
 Lưu ý: Câu lệnh SQL đã truyền vào trong quá trình tạo

PreparedStatement nên không cần truyền lại trong
quá trình thực thi câu lệnh SQL.


VD: Sử dụng PreparedStatement:



Bài tập
 Áp dụng vào đề tài mà nhóm đang thực hiện, trình bày

trong buổi báo cáo tiến độ ở tuần tiếp theo.
 Yêu cầu: Ít nhất phải làm được 02 chức năng có liên
quan đến phần này.


Step 4
Product.jsp
SmartPhone A233

Xóa

<a href=“DeleteProduct?id=233”> Xóa
</a>

Step 1
Con.java
Static Connection getConnection(){
// Config connect DB
}

Step 3
DeleteProduct.java
doget(…..){
String id = request.getParameter(“id”);
boolean del = Product.delete(id);
if(del){

// Delete Successful
// Delete Object in ListProduct
}else{
Delete failure
}
}

Step 2
Product.java
static boolean delete(int id){
// Declare Connection, call from
Con.getConnnection();
//Delete product in Database
}

VD: Thiết kế chức năng xóa sản phẩm trong CSDL



×