Kết nối cơ sở dữ liệu với JDBC - Pdf 12

1
1
Kết nối cơ sở dữ liệu với JDBC
Lập trình hướng đối tượng Java
Chương 7
Biên soạn: Th.S Nguyễn văn Lành
Bài giảng dành cho sinh viên Cao đẳng Công nghệ 2
Mục tiêu
 Hoàn thành chương nầy, sinh viên cần
đạt được những yêu cầu sau
 Hiểu các khái niệm và thuật ngữ, ý tưởng
của JDBC.
 Hiểu và vận dụng tốt 6 bước truy xuất CSDL
 Nắm vững các vấn đề liên quan đến truy xuất
CSDL: các loại statement, các cách thi hành
câu lệnh sql, cách truy xuất ResultSet
 Hiểu transaction và cơ chế quản lý trong
JDBC
Bài giảng dành cho sinh viên Cao đẳng Công nghệ 3
Nội dung
 Giới thiệu chung về JDBC
 Trình điều khiển JDBC
 Phân loại
 Database URL
 Các lớp tác vụ cơ bản của JDBC
 Statement
 ResultSet
 Quản lý transaction
 Xử lý đa người dùng
Bài giảng dành cho sinh viên Cao đẳng Công nghệ 4
Giới thiệu chung về JDBC

 Tính khả chuyển cao nhưng kém hiệu quả
Database
Database
Network Interface
Server
Aplication
Aplication
JDBC Driver
JDBC Driver
ODBC Driver
ODBC Driver
Network Interface
Disk
Disk
Client
Bài giảng dành cho sinh viên Cao đẳng Công nghệ 7
Type 2: Native-API
 JDBC driver tương tác trực tiếp với database API
 1 phần mã Java
 1 phần mã tự nhiên của DBMS
Database
Database
Network Interface
Server
Aplication
Aplication
JDBC Driver
JDBC Driver
Native Database Library
Native Database Library

 Hiệu quả nhất
Database
Database
Network Interface
Server
Aplication
Aplication
JDBC Driver
JDBC Driver
Network Interface
Disk
Disk
Client
Bài giảng dành cho sinh viên Cao đẳng Công nghệ 10
Database URL
 Database URL: chuỗi biểu diễn địa chỉ DBMS qui định
bởi JDBC driver.
 Cú pháp tổng quát
jdbc:subprotocol name:other_stuff
 subprotocol name: qui định bởi driver ghi trong tài liệu sử dụng
của driver.
 Đối với JDBC-ODBC driver là odbc
 Other_stuff: phụ thuộc driver
 Đối với JDBC-ODBC driver là Data Source Name khai báo trong
Datasource ODBC của Windows
 Ví dụ
 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
Connection con= DriverManager.getConnection(“jdbc:odbc:ATM”);
Database
URL

 DriverManager.getConnection(dbURL)
 Kết nối connection tiêu tốn tài nguyên của máy chủ
DBMS
 Mở connection khi cần.
 Đóng connection khi kết thúc tác vụ
 Connection Pool là giải pháp đa người dùng cho các
ứng dụng CSDL với tải người dùng lớn.
Bài giảng dành cho sinh viên Cao đẳng Công nghệ 14
Câu lệnh Statement
 Ba loại Statement
 Statement: thi hành câu lệnh tùy ý tại thời điểm chạy
 PreparedStatement : câu lệnh SQL được biên dịch trước
 CallableStatement: gọi thủ tục trên DBMS
 Sử dụng kết nối connection để tạo câu lệnh
 Statement s = con.createStatement();
 PreparedStatement ps= con.prepareStatement(String);
 CallableStatement cs= con.prepareCall(String);
 Câu lệnh Statement có thể được sử dụng nhiều lần cho
những tác vụ khác nhau, những câu lệnh SQL không
liên quan nhau.
Bài giảng dành cho sinh viên Cao đẳng Công nghệ 15
Prepared Statements
 Sử dung PreparedStatement để tăng hiệu quả
thi hành câu lệnh SQL
 Câu lệnh SQL sẽ được biên dịch 1 lần trước khi
được gọi thi hành nhiều lần.
 Thay đổi đối số mỗi lần thi hành.
 PreparedStatement updateAddr = con.prepareStatement(
"UPDATE Customers SET Address = ? WHERE CustNo= ?");
updateAddr.setString(1, “Danang”);

Thi hành Statement
 Có 3 cách thi hành Statement.
 executeQuery()
 executeUpdate()
 execute()
 executeQuery()
 dùng để thi hành các câu lệnh truy vấn
Select from where
 trả về kết quả truy vấn qua đối tượng ResultSet.
 ResultSet rs = s.executeQuery(“SELECT * FROM Books”);
Bài giảng dành cho sinh viên Cao đẳng Công nghệ 19
Thi hành Statement
 executeUpdate()
 dùng cho câu lệnh cập nhật dữ liệu,
 trả về số bản ghi chịu ảnh hưởng bởi câu lệnh UPDATE,
INSERT, or DELETE.
 trả về 0 , có nghĩa:
 (1) không có bản ghi nào bịảnh hưởng
 (2) thực thi câu lệnh DDL định nghĩa dữ liệu .
 execute()
 khi không biết rõ câu lệnh là truy vấn hay cập nhật.
 dùng cho các trường hợp thực thi SQL động.,
 trả về true nếu câu lệnh là truy vấn.
 gọi getResultSet() để nhận được kết quả truy vấn
 gọi getUpdatedCount() để biết số bản ghi đã cập nhật.
Bài giảng dành cho sinh viên Cao đẳng Công nghệ 20
ResultSet
 ResultSet cho phép truy xuất đến dữ liệu trả về
từ kết quả truy vấn database.
 truy xuất lần lượt từng trường của bản ghi bằng 1

 getColumnName(int column)
 DatabaseMetadata là các lớp cung cấp thông tin về bản
thân CSDL.
 số table
 cấu trúc các table
 Các phiên bản thực thi JDBC driver của các hãng
không giống nhau
Bài giảng dành cho sinh viên Cao đẳng Công nghệ 23
Quản lý Transaction
 Transaction: đơn vị tác vụ
 Theo mặc định, JDBC thực thi trọn vẹn(commit) các
câu lệnh SQL một khi nó được chuyển đến database;
gọi là autocommit.
 Một sốứng dụng mang đặc điểm transaction- yêu cầu
các tác vụ thi hành hoặc cả gói hoặc nothing.
 Tắt chế độ autocommit để thực hiện quản lý transaction theo
đặc điểm của ứng dụng
 Lớp Connection cung cấp hàm setAutoCommit( ) để bật tắt chế
độ auto-commit
 Câu lệnh sql đầu tiên đồng thời bắt đầu 1 transaction, kết thúc
bằng commit() hoặc rollback()
 con.setAutoCommit(false);
s = con.createStatement(); s.executeUpdate(SQLString)
con.commit( ); or rollback();
Bài giảng dành cho sinh viên Cao đẳng Công nghệ 24
JDBC 2.0 Enhancements
 Two parts
 Core Java feature enhancements. In java.sql package
 Extended features. In javax.sql package. Extra download
 Enhancements

 Statement, PreparedStatement, and CallableStatement have
methods for adding update statements to a batch, clearing all
update statements, and executing a batch
.
 Statement s = connection.createStatement();
s.addBatch(“INSERT …. “);
s.addBatch(“INSERT …. “);
s.executeBatch();
 can queue up SQL and execute in one call, improving efficiency
 BatchUpdateException:
 thrown exception when an error occurs in a batch
update
Bài giảng dành cho sinh viên Cao đẳng Công nghệ 27
Bài tập – thực hành
 Download và sử dụng 1 JDBC Driver từ
internet
 Phát triển lớp Account liên kết với table
Account trong cơ sở dữ liệu AllInOne.sql
 Chú ý quản lý transaction trong các tác vụ
nhiều bước của 1 Account
 Kết hợp xử lý lỗi sử dụng Exception


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status