TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
LẬP TRÌNH JDBC
(JAVA DATABASE CONNECTIVITY)
NỘI DUNG
Khái niệm cơ bản
Tại sao cần JDBC
Kiến trúc JDBC & JDBC APIs
Các bước làm việc với Database dùng JDBC
Một số lớp và phương thức cơ bản trong JDBC API
Các loại JDBC Drivers
Ví dụ minh họa
Tham khảo
Prentice Hall - Core Java 2 Volume II Advanced Features.pdf
(chapter 4)
O'Reilly - Java Database Programming with JDBC.pdf
Các khái niệm cơ b
30 trang |
Chia sẻ: huongnhu95 | Lượt xem: 568 | Lượt tải: 0
Tóm tắt tài liệu Giáo trình Lập trình Java - Chương 6: Lập trình JDBC (java database connectivity), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ản
CSDL
JDBC
JDBC
CSDL
JDBC
JDBC: Java Database Connectivity
JDBC API: tập các class, interface, exceptions. JDBC API cung
cấp chuẩn kết nối độc lập CSDL giữa ngôn ngữ lập trình java và
nhiều CSDL.
Các RDBMS hay các nhà sản xuất phần mềm thứ 3 phát triển
các drivers cho java đều phải tuân thủ đặc tả JDBC của SUN.
Các java developers dùng các JDBC drivers để phát triển các
ứng dụng có truy cập, thao tác CSDL.
Các khái niệm cơ bản
Tại sao cần JDBC?
JDBC giúp các Java Developers tạo nên các ứng dụng truy
xuất cơ sở dữ liệu mà không cần phải học và sử dụng các
APIs do các công ty sản xuất phần mềm khác nhau bên thứ
ba cung cấp. JDBC đảm bảo rằng bạn sẽ có thể phát triển
nên các ứng dụng truy cập cơ sở dữ liệu có khả năng truy
cập đến các RDBMS khác nhau bằng cách sử dụng các JDBC
driver khác nhau.
Kiến trúc JDBC
JDBC API
Các bước làm việc với CSDL
Bước 1: nạp JDBC driver
Bước 2: tạo kết nối với CSDL dùng driver đã nạp ở bước 1
Bước 3: thao tác với CSDL
Nạp drivers: dùng phương thức Class.forName(String) để load
JDBC driver class vào trong ứng dụng.
Class.forName( "com.somejdbcvendor.TheirJdbcDriver”);
Hoặc Class.forName( "com.somejdbcvendor.TheirJdbcDriver”).newInstance();
Ví dụ: Class.forName (“com.mysql.jdbc.Driver”).newInstance ();
Các bước làm việc với CSDL
Tên Driver class của nhà cung cấp
Tạo kết nối với CSDL: dùng phương thức getConnection() của
lớp DriverManager để tạo kết nối JDBC xuống CSDL
DriverManager.getConnection().
Ví dụ:
DriverManager.getConnection("jdbc:odbc:ThuchanhJava", “username", “password”);
DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/mydatabase”, “username“, “password”);
Các bước làm việc với CSDL
Thao tác với CSDL:
Các bước làm việc với CSDL
Các bước làm việc với CSDL
Thao tác với CSDL:
Ví dụ minh họa – JDBC ODBC
Connection myCon;
Statement myStatement;
ResultSet myResultSet;
String sUsername, sPassword;
try {
new sun.jdbc.odbc.JdbcOdbcDriver();
myCon = DriverManager.getConnection("jdbc:odbc:ThuchanhJ2EE", "", "");
myStatement = myCon.createStatement();
myResultSet = myStatement.executeQuery("Select * from Account");
Ví dụ minh họa - JDBC ODBC
while (myResultSet.next()) {
sUsername = myResultSet.getString(1);
sPassword = myResultSet.getString(2);
if (sUsername.equals("admin") && sPassword.equals("admin"))
return true;
}
myResultSet.close(); myStatement.close(); myCon.close();
}
catch(Exception e) {
System.out.println(e.toString());
}
JDBC Driver SQL Server 2000
Connection myCon;
Try {
// JDBC Driver for SQL Server 2000
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
myCon = DriverManager.getConnection("jdbc:microsoft:sqlserver://hntin:1433;
DatabaseName=ThuchanhJ2EE; User=sa; Password=sa");
}
catch (Exception e) {
}
JDBC Driver SQL Server 2000
Lưu ý:
Cần cài đặt SQL Server Service Pack 4 trước khi dùng JDBC
Driver kết nối trực tiếp đến SQL Server
Kiểm tra xem cổng 1433 của SQL Server đã mở chưa bằng
cách vào cửa sổ dòng lệnh gõ telnet 1433
DriverManager - Nạp các JDBC driver vào trong bộ nhớ. Có
thể sử dụng nó để mở các kết nối tới một nguồn dữ liệu.
Connection - Biểu thị một kết nối đến một nguồn dữ liệu.
Được dùng để tạo ra các đối tượng Statement,
PreparedStatement và CallableStatement.
Statement - Biểu diễn một lệnh SQL tĩnh. Có thể sử dụng nó
để thu về đối tượng ResultSet.
PreparedStatement - Một giải pháp thay thế hoạt động tốt
hơn đối tượng Statement, thực thi một câu lệnh SQL đã được
biên dịch trước.
Một số lớp và phương thức cơ bản
CallableStatement – biểu diễn một thủ tục được lưu trữ. Có
thể được sử dụng để thực thi các thủ tục được lưu trữ trong
một RDBMS có hỗ trợ chúng.
ResultSet - biểu diễn một tập kết quả trong cơ sở dữ liệu tạo ra
bởi việc sử dụng một câu lệnh SQL là SELECT.
SQLException - một lớp xử lý lỗi ngoại lệ chứa các lỗi truy cập
cơ sở dữ liệu.
DataSource - Trừu tượng hóa một nguồn dữ liệu. Đối tượng
này có thể sử dụng thế cho
Một số lớp và phương thức cơ bản
Một số lớp và phương thức cơ bản
Java.Sql.Statement Interface
Các phương thức cơ bản:
ResultSet executeQuery(String sql) throws SQLException
int executeUpdate(String sql) throws SQLException
Java.Sql.ResultSet Interface
Lưu kết quả trả về của thao tác truy vấn CSDL.
Các phương thức cơ bản
boolean first() throws SQLException
boolean last() throws SQLException
boolean next() throws SQLException
boolean previous() throws SQLException
boolean absolute(int row) throws SQLException
type getType(int |String)
Một số lớp và phương thức cơ bản
Các loại JDBC Dirvers
JDBC-ODBC Bridge plus ODBC Driver
A native API partly Java technology-enabled driver
Pure Java Driver for Database Middleware
Direct-to-Database Pure Java Driver
Các loại JDBC Dirvers
Type 1: JDBC-ODBC Bridge
Database
ODBC
Driver
Java
Applications
JDBC Driver Type 1
JDBC-ODBC Library
Các loại JDBC Dirvers
JDBC-ODBC ủy nhiệm công việc truy cập dữ liệu cho ODBC API.
Chúng là trình điều khiển chậm nhất trong số còn lại.
Client -> JDBC Driver -> ODBC Driver -> Database
Ưu điểm
Dễ dàng kết nối
Nhược điểm
Chậm, do thông qua cầu ODBC.
ODBC cần install trên máy client
Các loại JDBC Dirvers
Type 2: Java to Native API
Database
Database
Library
Java
Applications
JDBC Driver Type 2
Các loại JDBC Dirvers
Dùng Java Native API (JNI) để gọi đến các thư viện API của
database.
Ưu điểm
Nhanh hơn kiểu 1, không cần ODBC.
Nhược điểm
Client side lib cần được install trên máy client
Không phải tất cả các database đều có Client Side Library
Các loại JDBC Dirvers
Type 3: Java to Network Protocol Or All- Java Driver
Database
JDBC Middleware
(java)
Java
Applications
JDBC Driver Type 3
Network protocol
Các loại JDBC Dirvers
Dùng Network protocol để giao tiếp với JDBC middleware trên
server.
Ưu điểm
Không cần DB lib trên máy client.
Middle ware có thể cung cấp các dịch vụ như caching connections,
query, etc.
Nhược điểm
Cần coding cho riêng các kiểu DB ở tầng middle ware.
Thêm tầng server có thể làm tốn thời gian thao tác DB.
Các loại JDBC Dirvers
Type 4: Java to Database Protocol
Database
Java
Applications
JDBC Driver Type 4
Các loại JDBC Dirvers
Drivers thuần java và hiện thực/dùng database protocol để giao
tiếp trực tiếp với CSDL. Thường là những JDBC drivers nhanh
nhất. Thường dùng socket kết nối trực tiếp với mỗi DBMS khác
nhau
Client -> JDBC Driver -> Native-protocol JDBC Driver ->
database server.
Ưu điểm
Performance tốt nhất so với các kiểu khác
Nhược điểm
Phụ thuộc vào database. Các DBMS khác nhau dùng các
network protocols khác nhau.
Các file đính kèm theo tài liệu này:
- giao_trinh_lap_trinh_java_chuong_6_lap_trinh_jdbc_java_datab.pdf