Bài giảng Lập trình Java - Chương 6: Lập trình 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.

 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.

pdf 30 trang kimcuc 6700
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình Java - Chương 6: Lập trình JDBC", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình Java - Chương 6: Lập trình JDBC

Bài giảng Lập trình Java - Chương 6: Lập trình JDBC
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ả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. 

File đính kèm:

  • pdfbai_giang_lap_trinh_java_chuong_6_lap_trinh_jdbc.pdf