Tải bản đầy đủ (.pptx) (46 trang)

Java làm việc với CSDL

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 (472.64 KB, 46 trang )

LÀM VIỆC VỚI
CƠ SỞ DỮ LIỆU
Nội dung

Khái niệm JDBC

Các bước sử dụng JDBC trong ứng dụng Java

Các đối tượng Statement

ResultSet

ResultSet cuộn được

ResultSet cập nhật
Khái niệm về JDBC
JDBC: Java Database Connectivity API

Là một phần của các hàm Java API cho môi trường ứng
dụng Java.

JDBC thì tương tự như ODBC drivers, ADO.NET data
providers và OLE DB providers.

Để kết nối đến CSDL, JDBC yêu cầu trình điều khiển
(driver) cho mỗi CSDL.

Các trình điều khiển JDBC đưa ra các kết nối cơ sở dữ
liệu và thực hiện các giao thức (protocol) để trao đổi các
truy vấn và kết quả giữa khách hàng và cơ sở dữ liệu.


Các trình điều khiển JDBC được chia làm 4 nhóm.
Loại 1: JDBC-ODBC bridge

Cầu nối JDBC-ODBC: Cung cấp
các truy cập JDBC thông qua các
truy cập ODBC. Driver này
chuyển các lời gọi JDBC thành lời
gọi các hàm trong ODBC.

Gói driver cho JDBC-ODBC:
sun.jdbc.odbc.JdbcOdbcDriver.

Client -> JDBC Driver -> ODBC
Driver -> Database
Loại 1: JDBC-ODBC bridge

Ưu điểm: Dễ kết nối, kết
nối thẳng đến CSDL.

Khuyết điểm: ODBC
driver phụ thuộc vào hệ
điều hành và đòi hỏi
client phải được cài
driver.

Tốc độ truy xuất chậm.

Trên Access, ODBC driver
bị lỗi khi chuyển mã ký
tự.

Loại 2: Native-API partly Java driver

Chuyển các lệnh gọi JDBC thành các lệnh gọi
API trên máy client của CSDL (như Oracle,
SyBase, DB2, …).

Như vầy, nó đòi hỏi trên máy client cần phải
nạp trước một số lệnh nhị phân của các trình
chạy trên máy client của CSDL.

JDBC driver loại này phụ thuộc nền tảng sử
dụng.

Không phải CSDL nào cũng có driver dạng này.

Driver này tương tích hầu hết tất cả các ứng
dụng Java ngoại trừ Applet.
Loại 3: Network-Protocol driver

Đây là dạng driver giao thức mạng.
Driver này chuyển các lệnh gọi JDBC
thành các giao thức mạng độc lập với
hệ quản trị CSDL (DBMS
Independent Net Protocol).

Chính phần mềm trên máy chủ trung
gian này có thể kết nối các máy
khánh có nên Java với nhiều loại
CSDL khác nhau.


Client -> JDBC Driver -> Network-
protocol driver -> Middleware-Net
Server -> bất cứ CSDL nào
Loại 3: Network-Protocol driver

Ưu điểm: JDBC này rất linh hoạt vì có thể kết nối đến
nhiều loại hệ quản trị CSDL khác nhau mà không cần
cài đặt driver dưới máy client.

Khuyết điểm: Phụ thuộc nhiều vào nhà cung cấp
phần mềm trung gian.

Kết nối thông qua một lớp nữa sẽ có thể dẫn đến tình
trạng thắt cổ chai. Nhưng thông thường điều này
được khắc phục ở các nhà cung cấp phần mềm trung
gian tốt.
Loại 4: Native-Protocol driver

Đây là dạng driver với giao thức
gốc hoàn toàn Java. Được viết
hoàn toàn bằng Java.

Biến các lệnh gọi JDBC thành các
giao thức mạng gọi trực tiếp từ hệ
quản trị CSDL.

Trình này cho phép gọi trực tiếp từ
máy khách đến máy chủ chứa
DBMS và là giải pháp thực tế cho
việc truy cập Intranet.


Client -> Native-protocol JDBC
Driver -> database server.
Loại 4: Native-Protocol driver

Ưu điểm: JDBC này không cần chuyển sang lời gọi
nào (như ODBC).

Không cần lớp trung gian để liên hệ với các CSDL.

Được viết bằng Java nên hoàn toàn không phụ thuộc
nào nền tảng sử dụng.

Cải thiện hiệu suất truy cập.

Khuyết điểm: Cần driver riêng cho từng loại CSDL
Cơ chế hoạt động của JDBC

Chương trình Java tạo một đối tượng kết nối để
kết nối với cơ sở dữ liệu.

Tạo một đối tượng lệnh (Statement) và chuyển
các câu SQL đến CSDL thông qua đối tượng này
và nhận kết quả trả về.

Một chương trình Java dùng JDBC cần một
trình điều khiển cho nguồn dữ liệu mà nó cần
giao tiếp.

Lưu ý: Các lớp JDBC nằm trong gói java.sql

Kiến trúc JDBC
Java
JDBC Driver
Application Server
Database
SQL command Results
Giao tiếp trong gói java.sql
Giao diện Mô tả
Array
Kiểu mảng.
Blob
Kiểu dữ liệu Blob.
CallableStatement
Giao diện dùng để thực thi các các hàm đã được cài sẵn (Stored
Procedure).
Clob
Kiểu dữ liệu Clob.
Connection
Một phiên kết nối với CSDL cụ thể.
DatabaseMetaData
Thông tin về toàn bộ CSDL.
Driver
Giao diện mà các trình điều khiển đều phải cài đặt.
NClob
Kiểu dữ liệu Nclob.
ParameterMetaData
Đối tượng dùng để lấy thông tin về kiểu và thuộc tình cho mỗi tham số
được đánh dấu trong đối tượng PreparedStatement .
PreparedStatement
Đối tượng dành cho các câu lệnh được biên dịch trước (precompiled

SQL statement).
Ref
Một tham khảo đến giá trị của một dữ liệu có cấu trúc.
ResultSet
Tập hợp các records cho phép truy xuất đến cac bảng trong CSDL.
Giao tiếp trong gói java.sql
Giao tiếp Mô tả
ResultSetMetaData
Một đối tượng dùng để lấy thông tin về loại và thuộc tính cùa các cột trong một
đối tượng ResultSet.
RowId
Một thể hiện của giá trị cột trong SQL.
Savepoint
Một điểm lưu, một điểm trong giao dịch hiện tại, có thể được tham chiếu thông
qua phương thức Connection.rollback.
SQLData
Giao tiếp dùng để ánh xạ kiểu dữ liệu người dùng.
SQLInput
Luồng dữ liệu nhập chứa các giá trị biểu diễn các kiểu dữ liệu cấu trúc hay phân
biệt.
SQLOutput
Luồng dữ liệu xuất cho việc ghi xuống CSDL các thuộc tính của các kiểu dữ liệu
người dùng.
SQLXML
Kiểu ánh xạ cho kiểu XML trên SQL.
Statement
Đối tượng dùng để thực thi các câu lệnh SQL và nhận về kết quả.
Struct
Mô tả dữ liệu kiểu cấu trúc.
Lớp trong gói java.sql

Lớp Mô tả
Date Biểu diễn kiểu DATE.
DriverManager Một dịch vụ quản lý bộ các JDBC Driver.
Chú ý: Giao tiếp DataSource, phần mới trong JDBC 2.0 API, cải
tiến một cách khác để kết nối đến một data source.
DriverPropertyInfo Thông tin driver để tạo kết nối.
SQLPermission Quản lý quyền truy cập cho các kết nối.
Time Biểu diễn kiểu TIME.
Timestamp Biểu diễn kiểu TIMESTAMP.
Types Lớp định nghĩa các hằng cho phép định danh các kiểu dữ liệu
SQL, hay còn gọi là kiểu dữ liệu JDBC.
Ngoại lệ trong gói java.sql
Ngoại lệ Mô tả
BatchUpdateException Ngoại lệ xảy ra thi thực thi các bó lệnh.
DataTruncation Ngoại lệ xảy ra khi có sự cắt bớt dữ liệu lúc đọc hoặc ghi.
SQLException Ngoại lệ khi lỗi trong các câu truy vấn SQL.
SQLWarning Ngoại lệ cung cấp các thông tin nhắc nhở khi truy cập
CSDL.
Giao tiếp trong gói javax.sql
Giao tiếp Mô tả
ConnectionEventListener Giao tiếp dùng trong các thành phần chia sẻ.
ConnectionPoolDataSour
ce
Là nguồn tạo các đối tượng PooledConnection.
DataSource Là nguồn tạo các đối tượng Connection.
PooledConnection Đối tượng kết nối cung cấp và quản lý các điểm kết nối chia sẻ.
RowSet Giao tiếp này hỗ trợ cho mô hình JavaBeans.
RowSetInternal Đối tượng biểu hiện như một máy đọc hay ghi.
RowSetListener Giao tiếp này được tạo bởi một thành phần muốn được thông báo
các sự kiện đã xảy ra cho một RowSet.

RowSetMetaData Đối tượng chứa các thông tin cho đối tượng RowSet.
RowSetReader Đối tượng để đọc trong RowSet.
RowSetWriter Đối tượng để ghi trong RowSet.
XAConnection Đối tượng cung cấp các hỗ trợ cho các giao dịch phân bố.
XADataSource Là nguồn của đối tượng XAConnection.
Lớp trong gói javax.sql
Lớp Mô tả
ConnectionEvent Chứa sự kiện kết nối.
RowSetEvent Các sự kiện khi có thay đổi trong RowSet.
StatementEvent Các sự kiện khi một câu lệnh truy vấn được kết nối.
Sử dụng trình điều khiển JDBC

Thực hiện một kết nối với CSDL: gọi phương thức
getConnection() để nhận về đối tượng Connection.

Thực hiện các lệnh:
– Các câu lệnh có thể được thực hiện tức thì thông qua đối
tượng Statement, hay là một câu lệnh được biên dịch
trước thông qua đối tượng PreparedStatement ,hay là một
lệnh gọi các thủ tục lưu trữ sẵn (store procedures) thông
qua đối tượng CallableStatement.

Các câu lệnh SQL được thực hiện thông qua phương thức
executeQuery() hoặc executeUpdate().
Các bước khi cần truy cập CSDL

Các bước để truy cập CSDL thông qua JDBC:

Đăng ký trình điều khiển JDBC.


Thiết lập một nối kết đến cơ sở dữ liệu.

Tạo và thực thi câu lệnh SQL.

Xử lý các kết quả.

Đóng nối kết cơ sở dữ liệu.
Ví dụ sử dụng JDBC – ODBC Driver
Ví dụ sử dụng JDBC - Trình giao thức gốc
hoàn toàn Java (SQL Server)
Đăng ký trình điều khiển JDBC

Trước khi tạo một đối tượng kết nối cơ sở
dữ liệu, cần đăng ký (nạp) trình điều khiển
JDBC.

Sử dụng phương thức Class.forName()

Cú pháp: Class.forName( “mydriver.ClassName” )

Thí dụ:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServer
Driver");
Thiết lập kết nối đến CSDL
• Phương thức:
DriverManager.getConnection(url, username, password):

Kết quả trả về là 1 đối tượng Connection.


url: chuỗi kết nối có dạng jdbc:subprotocol:subname
• subprotocol: giao thức con tương ứng với loại của HQTCSDL.
• subname: tên của CSDL.

username: tên người dùng khi đăng nhập vào CSDL.

password: mật khẩu người dùng khi đăng nhập vào CSDL.

Ví dụ:
Connection con = DriverManager.getConnection(“jdbc:odbc:myDB”,
“mylogin”,”mylogin”);
hoặc
String dbUrl= "jdbc:sqlserver://localhost\\LightX-
LT:1433;databaseName=vidu;user=sa;password=123Abc“ ;
Connection con=DriverManager.getConnection(dbUrl);
Tạo và thực thi câu lệnh SQL

Câu lệnh SQL có thể được tạo ra và thực thi
nhờ đối tượng Statement.

Đối tượng Statement được tạo ra nhờ thực
thi phương thức createStatement() của 1 đối
tượng Connection.

Ví dụ:
String url = "jdbc:odbc:myDB“ ;
Connection con =
DriverManager.getConnection(url);
Statement s = con.createStatement();

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×