Professional Documents
Culture Documents
JDBC PDF
JDBC PDF
JDBC?
Java DataBase Connectivity
Là một API chứa tập hợp các lớp và giao
diện hỗ trợ lập trình viên Java kết nối và truy
cập đến các hệ cơ sở dữ liệu.
Là một chuẩn truy xuất cơ sở dữ liệu rất
phổ biến. Các RDBMS hay các nhà sản xuất
phần mềm bên thứ ba phát triển các driver
cho Java đều cần tuân thủ chặt chẽ đặc tả
JDBC.
JDBC
JDBC API là một thành phần trong J2SE, nằm trong 2
gói thư viện:
• java.sql: chứa các lớp và giao diện cơ sở của
JDBC API.
• javax.sql: chứa các lớp và giao diện mở rộng.
JDBC tồn tại là để giúp các nhà phát triển Java tạo
nên các ứng dụng truy xuất cơ sở dữ liệu mà không
cần phải tìm hiểu và sử dụng các API độc quyền do
các công ty sản xuất phần mềm khác nhau bên thứ ba
cung cấp.
Giới thiệu về JDBC
Ðể thiết lập kết nối đến CSDL ta gọi phương thức tĩnh
getConnection() của lớp DriverManager, khi đó trả về
một thể hiện của lớp Connection.
public static Connection getConnection(String url) throws
SQLException
public static Connection getConnection(String url,
String user, String pass) throws SQLException
public static Connection getConnection(String url,
Properties info) throws SQLException
Ví dụ kết nối MySQL
Phân loại cầu
nối JDBC
Kiến trúc JDBC
Java
Dùng Network protocol để giao tiếp với
Applications
JDBC middleware trên server.
Chuyển đổi các lời gọi JDBC thành giao
JDBC Driver Type 3
thức mạng. Sau đó, một phần mềm trung gian
Network protocol (middleware) chạy trên máy server chuyển đổi
JDBC Middleware giao thức mạng thành giao thức DBMS đặc
(java)
thù. Sự chuyển này đặt ở phía server mà
không đòi hỏi cài đặt trên máy tính client.
Database
Ưu điểm: không cần thư viện phía client
Type 4: Java to Database Protocol
Ưu điểm:
JDBC API định nghĩa tập các lớp và giao diện để giao tiếp
với cơ sở dữ liệu.
Classes:
• Date, DriverManager, DriverPropertyInfo, Time,
TimeStamp, Types
Interfaces:
• CallableStatement, Connection, DatabaseMetaData,
Driver, PreparedStatement, ResultSet, Statement,
ResultSetMetaData
javax.sql package
Các bước lập
trình tương tác
cơ sở dữ liệu
Các bước Tạo ứng
dụng sử dụng jdbc
Import packages
Ví dụ:
Connection con=DriverManager.getConnection(…);
Statement stmt=con.createStatement();
Thực hiện câu truy vấn SQL & Xử lý kết quả trả về
Dùng phương thức executeQuery() của Statement interface.
public ResultSet executeQuery(String sql) throws SQLException
Ví dụ:
ResultSet rs = stmt.executeQuery("select * from emp");
while(rs.next()){
System.out.println(rs.getInt(1)+" "+rs.getString(2));
}
executeUpdate(): dùng cho câu lệnh SQL liên quan UPDATE, INSERT,
Ví dụ:
con.close();
Nạp trình điều khiển
Sử dụng phương thức tĩnh forName() của lớp Class với tham
số là tên trình điều khiển cơ sở dữ liệu.
• Class.forName(“<JDBC Driver>”)
Ví dụ:
• Ðể nạp trình điều khiển sử dụng cầu nối ODBC do Sun
cung cấp, chúng ta sử dụng câu lệnh sau:
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”)
Nạp trình điều khiển
21
Thao tác CSDL
java.sql.Statement
Một đối tượng Statement được sử dụng để
truyền câu truy vấn hoặc câu lệnh SQL đến CSDL
và nó được tạo từ đối tượng Connection đã khởi
tạo.
Ðể tạo đối tượng statement ta gọi phương thức
createStatement() của đối tượng Connection:
Statement statement
= connection.createStatement();
Tạo đối tượng Statement
Ðối với câu vấn tin dạng SELECT, nếu truy vấn thành
công thì kết quả trả về là tập các bản ghi dữ liệu được
lưu trong đối tượng ResultSet.
• 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 này đều có dạng:
Type getType(int|String)
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 chúng ta sử
dụng phương thức next().
Ðối tượng ResultSet – Ví dụ
Cập nhật dữ liệu
Ví dụ
Insert
Ví dụ
Update
Đối tuợng PreparedStatement
Kết nối và thao tác với CSDL SQL Server thông qua cầu
nối ODBC
35
Làm việc với Stored Procedure
Stored Procedure:
• Là nhóm các câu lệnh SQL có thể được gọi bằng 1
tên.
• Đọan mã, chương trình con thực hiện 1 công việc
nào đó được gọi như một phương thức hày hàm.
• Trước đây các stored procedure được viết theo ngôn
ngữ riêng của các DBMS, các DBMS thế hệ mới cho
phép viết các store procedure dùng Java và JDBC
API.
Thao tác với Stored procedures
Stored procedures?
Stored procedures có thể:
• Có kết quả trả về.
• Không có kết quả trả về.
Giá trị trả về từ một Stored procedure được chuyển
qua tham số OUTPUT.
Các dạng tham số sử dụng trong Stored procedures:
• Input (IN parameters)
• Output (OUT parameters)
• Both (INOUT parameters)
CallableStatement interface
Ðể thực thi Stored procedures, chúng ta cần phải sử dụng đối
tượng CallableStatement.
CallableStatement kế thừa các phương thức từ Statement và
PreparedStatement.
Ví dụ:
CallableStatement cs =
con.prepareCall("{call Stored_procedures_name}");
ResultSet rs = cs.executeQuery();
? Represents a placeholder for a parameter (IN, OUT,
INOUT).
Parameters
IN
• Dùng phương thức set<Type>(int|String,<Type>) để
chuyển giá trị cho các tham số
• Ví dụ: Callable_Statement.setString(2, "HS009");
OUT
• Mỗi tham số dạng OUT phải được đăng ký thông qua
phương thức registerOutParameter(…).
• Dùng phương thức get<Type>(int|String) để nhận giá
trị của tham số OUT.
INOUT
CallableStatement interface
Ví dụ gọi Stored sp_GetHocSinhs để lấy danh sách học sinh: không
chuyển tham số
• Là cơ chế đảm bảo tính toàn vẹn của dữ liệu trong database.
• Một Transaction mặc định bắt đầu khi có một câu lệnh