JDBC API
IS216.O23 - GROUP 12
Trang 3Nhóm trưởng Nguyễn Thị Hồng
Phạm Trần Dạ Thảo
Trần Thảo Quyên
Trang 5I GIỚI THIỆU
1 JDBC API là gì?
2 Tại sao sử dụng JDBC API?
3 Các thành phần của JDBC
Trang 6- Thuật ngữ JDBC là viết tắt của Java Database Connectivity JDBC là một
thông số kỹ thuật từ Sun Microsystems JDBC là một API tiêu chuẩn được sử
dụng để kết nối và truy cập dữ liệu từ các hệ cơ sở dữ liệu quan hệ (RDBMS) khác nhau như MySQL, Oracle, SQL
Server, v.v trong các ứng dụng Java
JDBC API bao gồm một tập hợp các lớp và giao diện cho phép ứng dụng Java thực hiện các hoạt động như thiết lập kết nối đến cơ sở dữ liệu, thực hiện truy vấn SQL, xử lý kết quả truy vấn và quản lý các tài nguyên cơ bản như kết nối và câu lệnh
I.1 JDBC API LÀ GÌ?
Trang 7Phiên bản JDBC API mới nhất hiện nay là 4.3, là một thành phần trong Java SE, bao gồm 2 gói package: Chứa các lớp là giao diện cơ sở của JDBC API Đây là gói chính trong JDBC API và được sử dụng rộng rãi trong
các ứng dụng Java để thực hiện các thao tác cơ bản với cơ sở dữ liệu
Chứa các lớp và giao diện mở rộng Đây là gói bổ sung cung cấp các
thành phần liên quan đến quản lý kết nối và nguồn dữ liệu, tối ưu hiệu suất khi làm việc với cơ sở dữ liệu
I.1 JDBC API LÀ GÌ?
Trang 8I.2 TẠI SAO SỬ DỤNG JDBC API?
- Trước JDBC, ODBC API là một database API được sử dụng để kết nối và thực hiện truy vấn với cơ sở dữ liệu Nhưng, ODBC API sử dụng
trình điều khiển ODBC được viết bằng ngôn
ngữ C (tức là nền tảng phụ thuộc và không an toàn) Do đó, Java đã định nghĩa API của chính nó (JDBC API) sử dụng trình điều khiển JDBC
(viết bằng ngôn ngữ Java)
- 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
Trang 9Driver Manager: Lớp này quản lý các Database Driver Ánh xạ các yêu cầu kết nối từ ứng dụng Java với Data driver thích hợp bởi sử dụng giao thức kết nối phụ
Driver: Interface này xử lý các kết nối với Database Server Hiếm khi, bạn tương tác trực tiếp với các đối tượng Driver này Thay vào đó, bạn sử dụng các đối tượng DriverManager để quản lý các đối tượng kiểu này
Connection: Đối tượng Connection biểu diễn ngữ cảnh giao tiếp Interface này chứa nhiều phương thức đa dạng để tạo kết nối với một Database
I.3 CÁC THÀNH
PHẦN CỦA JDBC API:
JDBC API cung cấp các Class và Interface sau:
Trang 10Statement: Bạn sử dụng các đối tượng được tạo từ Interface này để đệ trình các lệnh SQL tới Database Ngoài ra, một số Interface kết thừa từ nó cung chấp nhận thêm các tham số để thực thi các thủ tục đã được lưu trữ
ResultSet: Các đối tượng này giữ dữ liệu được thu
nhận từ một Database sau khi bạn thực thi một truy vấn SQL Nó nóng vai trò như một Iterator để cho
phép bạn vọc qua dữ liệu của nó
SQLException: Lớp này xử lý bất cứ lỗi nào xuất hiện trong khi làm việc với Database
I.3 CÁC THÀNH
PHẦN CỦA JDBC API:
Trang 11II KIẾN TRÚC JDBC
Kiến trúc 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 để có thể làm việc với cơ sở dữ liệu cụ thể mà chương trình muốn kết nối
Trang 12Kiến trúc của JDBC bao gồm hai tầng chính:
Bao gồm các lớp và giao diện được sử dụng để thực hiện
các thao tác với cơ sở dữ liệu Là một phần mềm trung gian giúp kết nối giữa ứng dụng Java và cơ sở dữ liệu Nó có nhiệm vụ chuyển đổi các yêu cầu từ ứng dụng Java thành các yêu cầu mà cơ sở dữ liệu có thể hiểu được và chuyển đổi lại các kết quả từ cơ sở dữ liệu thành các đối tượng Java.
JDBC API
DBC Driver API
II KIẾN TRÚC JDBC
Trang 13III CÁC KHÁI NIỆM CƠ BẢN
2 JDBC URL
1 JDBC Driver
Trang 14III.1 JDBC DRIVER
• Khái niệm: JDBC Driver (hay còn gọi là trình điều khiển JDBC) là một thư viện phần mềm đóng vai trò trung gian giữa ứng dụng Java và hệ quản trị cơ sở dữ liệu (DBMS) Nó cung cấp các lớp và phương thức cho phép ứng dụng Java kết nối, thao tác và truy xuất dữ liệu từ DBMS một cách độc lập với nền tảng và DBMS cụ thể
• Chức năng chính:
• Kết nối: Thiết lập kết nối giữa ứng dụng Java và DBMS
• Thực thi truy vấn: Gửi các câu lệnh SQL đến DBMS và nhận kết quả • Xử lý dữ liệu: Chuyển đổi dữ liệu giữa định dạng Java và định dạng
của DBMS
• Quản lý kết nối: Đóng kết nối và giải phóng tài nguyên khi không sử dụng
Trang 17riêng cho từng cơ sở dữ liệu Ưu
điểm của nó là độc lập với hệ cơ sở dữ liệu, cho phép chuyển đổi giữa các database khác nhau Tuy nhiên nhược điểm là hoạt động chậm do có nhiều cuộc gọi mạng cần thực hiện
Trang 18III.1 JDBC DRIVER
o Type-4 (Thin Driver): Trình điều khiển này còn được gọi là trình điều khiển Java thuần túy vì nó tương tác trực tiếp với cơ sở dữ liệu Nó không yêu cầu bất kỳ thư viện riêng nào cũng như không cần máy chủ trung gian Nó có hiệu suất tốt hơn so với các trình điều khiển khác, nhưng
tương đối chậm do tăng số lượng cuộc gọi mạng.
Trang 19III.1 JDBC DRIVER
· Lựa chọn JDBC Driver: Lựa chọn loại JDBC Driver phù hợp phụ thuộc vào các yếu tố như:o Hệ điều hành
o DBMS
o Nhu cầu của ứng dụng
· Mỗi DBMS đều có JDBC Driver riêng, ví dụ:o MySQL: mysql-connector-java
o SQL Server: sqljdbco Oracle: ojdbc
Trang 20V KIỂU DỮ LIỆU SQL VÀ KIỂU DỮ LIỆU JAVA
SQL TypeJava TypeBITBoolean
SQL TypeJava Type
SQL TypeJava TypeBINARYbyte[]
BẢNG CHUYỂN ĐỔI TỪ KIỂU DỮ LIỆU SQL SANG JAVA
Trang 21Java TypeSQL Type
Java.lang.String VARCHAR or LONGVARCHARbyte[] VARBINARY or
Trang 22VI CÁC THAO TÁC CƠ BẢN TRÊN
CSDL
1 Các lớp cơ bản
2 Ví dụ truy vấn CSDL
3 Ví dụ cập nhật CSDL
Trang 23-> Phương thức executeUpdate(): cũng nhận vào một tham số là chuỗi nội dung câu lệnh SQL Tuy nhiên phương thức này chỉ sử dụng được đối với các cây lệnh cập nhật nội dung SQL Kết quả trả về là số dòng bị tác động bởi câu lệnh SQL
-> Phương thức execute(): là trường hợp tổng quát của hai phương thức trên, nhận vào chuỗi nội dung câu lệnh SQL (truy vấn hoặc cập nhật) Nếu kết quả của câu lệnh là các dòng trong CSDL thì phương thức trả về giá trị true, ngược lại trả về giá trị false Trong trường hợp giá trị true, có thể dùng phương thức getResultSet() để lây các dòng kết quả trả về
VI.1 CÁC LỚP CƠ BẢN
Trang 24VI.1 CÁC LỚP CƠ BẢN
Đối tượng resultset là các dòng dữ liệu trả về của câu lệnh truy vấn CSDL Lớp này cung cấp các phương thức để rút trích các cột trong từng dòng kết quả trả về.
- Tất cả các phương thức đều có dạng: getType(int | String) trong đó tham số có thể là stt của cột hoặc tên cột cần lấy nội dung VD:
getInt(int columnIndex) hoặc getInt(String columnLabel)
- Tại một thời điểm chỉ có thể thao tác trên một dòng của resultset Để thao tác trên dòng tiếp theo sử dụng phương thức next() Phương thức trả về giá trị true trong trường hợp có dòng tiếp theo, ngược lại trả về false.
Trang 25CÁC BẠN!
Bạn có câu hỏi gì không?
CẢM ƠN