Nội dung Giới thiệu JDBC Một số Class và Interface của JDBC API thường dùng Một số kỹ thuật cơ bản sử dụng JDBC – Đăng ký driver, Mở & đóng kết nối cơ sở dữ liệu – Thực hiện lấ
Trang 1LẬP TRÌNH JAVA
Nguyễn Hoàng Anh – nhanh@fit.hcmuns.edu.vn ĐHKHTN 2011
JDBC CƠ BẢN (JAVA DATABASE CONNECTIVITY)
Trang 2Nội dung
Giới thiệu JDBC
Một số Class và Interface của JDBC API thường dùng
Một số kỹ thuật cơ bản sử dụng JDBC
– Đăng ký driver, Mở & đóng kết nối cơ sở dữ liệu
– Thực hiện lấy, xóa, cập nhật, thêm dữ liệu
– ExecuteBath
– Xử lý lỗi và ngoại lệ
– Transaction
Trang 3GIỚI THIỆU JDBC
3
Trang 7MySQL Driver
Oracle Driver
ODBC Bridge Driver
DB2 Driver
ODBC Bridge Manager
Access
Driver
dBase Driver
Access dBase SQL Server MySQL Oracle DB2
Trang 9JDBC API
9
Trang 10JDBC Interfaces
Class và Interface của JDBC API thuộc gói java.sql
Connection đến cơ sở dữ liệu
đều cài đặt lại Interface này
liệu và cho phép tạo các Statement
liệu và cho phép thực thi các câu lệnh SQL
dụng cho Store procedures
10
Trang 11JDBC API
áp dụng cho Precompiled SQL
liệu , cho phép truy xuất các dòng dữ liệu
dữ liệu và các thuộc tính trong Resultset
dữ liệu kết nối
khi tương tác với cơ sở dữ liệu
11
Trang 13MỘT SỐ KỸ THUẬT CƠ BẢN
SỬ DỤNG JDBC
13
Trang 14Một số kỹ thuật cơ bản sử dụng JDBC
Đăng ký driver
Mở & đóng kết nối cơ sở dữ liệu
Thực hiện lấy, xóa, cập nhật, thêm dữ liệu
Trang 15Đăng ký Driver - MySQL
Bước 1: Thêm thư viện JDBC Driver vào ứng dụng
Bước 2: Đăng ký Driver - MySQL
Trang 16Mở & đóng kết nối cơ sở dữ liệu
Đối tượng Connection được tạo từ getConnection của DriverManager
– Connection getConnection (String url);
– Connection getConnection (String url, String user, String password);
– Connection getConnection (String url, java.util.Properties info);
Trang 17Mở kết nối cơ sở dữ liệu - MySQL
17
JDBC
Java Application
MYSQL DBMS
Trang 18Cơ sở dữ liệu BookOnline
MaDanhMuc: Auto Increment
Trang 19Mở & đóng kết nối cơ sở dữ liệu - MySQL
import java.sql.Connection; import java.sql.Driver;
import java.sql.DriverManager; import java.sql.SQLException;
import java.util.Properties;
public class TestJDBC {
public static void main(String[] args) {
info.setProperty("characterEncoding", "utf8");
info.setProperty("user", "root");
info.setProperty("password", "root");
Trang 20Các câu lệnh SQL
SELECT : Truy vấn dữ liệu từ bảng
DELETE : Xóa dữ liệu từ bảng
UPDATE : Cập nhật dữ liệu vào bảng
INSERT : Thêm dữ liệu vào bảng
…
Trang 21Tạo và thực thi các câu lệnh SQL
Statement statement = connection.createStatement () ;
ResultSet executeQuery (String sql)
boolean execute (String sql)
21
Trang 23Lấy dữ liệu từ bảng - DanhMuc
int maDanhMuc = rs.getInt(“MaDanhMuc”);
String tenDanhMuc = rs.getString(“tenDanhMuc”); System.out.print(maDanhMuc+” “);
System.out.println(tenDanhMuc);
}
connection.close();
Trang 24
Lấy dữ liệu từ bảng - Sach
String maSach = rs.getString(“MaSach”);
String tenSach = rs.getString(“TenSach”);
Double giaBan= rs.getDouble(“GiaBan”);
String soLuong = rs.getInt(“SoLuong”);
int maDanhMuc = rs.getInt(“maDanhMuc”);
Trang 25Xóa dữ liệu - DanhMuc
Statement statement = connection.createStatement();
String sql = “DELETE FROM DANHMUC WHERE MADANHMUC = 1”; int n = statement.executeUpdate (sql);
Trang 26Xóa dữ liệu - Sach
Trang 27Statement statement = connection.createStatement();
String sql = String.format(“UPDATE DANHMUC
SET TENDANHMUC = „%s‟
WHERE MADANHMUC= %d”,
maDanhMuc, tenDanhMuc); int n = statement.executeUpdate (sql);
Trang 28Statement statement = connection.createStatement();
String sql = String.format(“UPDATE SACH
Trang 29Thêm dữ liệu - Sach
Statement statement = connection.createStatement();
String sql = String.format(“INSERT INTO SACH (MaSach, TenSach, GiaBan, SoLuong, MaDanhMuc) VALUES(„%s‟, „%s‟, %f, %d, %d)”, maSach, tenSach, giaBan, soLuong, maDanhMuc); int n = statement.executeUpdate (sql);
Trang 30Thêm dữ liệu - DanhMuc
Statement statement = connection.createStatement();
String sql = String.format(“INSERT INTO DANHMUC (TENDANHMUC) VALUES(„%s‟)”,tenDanhMuc);
int n = statement.executeUpdate (sql);
Trang 31Thêm dữ liệu - DanhMuc
int maDanhMuc = rs.getInt(1);
System.out.println("Mã danh mục vừa thêm: "+maDanhMuc); }
}
connection.close();
Trang 32Thêm dữ liệu - DanhMuc
String [] tenDanhMucs = {"C++", "C#", "Java"};
String sql="INSERT INTO DANHMUC(TENDANHMUC) VALUES ";
for(int i=0; i<tenDanhMucs.length; i++){
int maDanhMuc = rs.getInt(1);
System.out.println("Mã danh mục vừa thêm: "+maDanhMuc); }
Trang 35String maSach = ; String tenSach = ;
double giaBan = ; int soLuong = ; int maDanhMuc = PreparedStatement statement = connection.prepareStatement();
String sql = “INSERT INTO SACH (MaSach, TenSach, GiaBan,
SoLuong, MaDanhMuc) VALUES(?,?,?,?,?)”;
Trang 36Statement statement1= con.createStatement();
Statement statement2= con.createStatement();
Trang 37Statement statement1= con.createStatement();
Statement statement2= con.createStatement();
Trang 38Statement statement1= con.createStatement();
Statement statement2= con.createStatement();
Savepoint save1 = con.setSavepoint();
Trang 39CallableStatement - Xử lý Store Procedure
39
Trang 40Store Procedure - MySQL
Trang 41Store Procedure - MySQL
INSERT INTO DANHMUC(TENDANHMUC) VALUES (tenDanhMuc);
SET maDanhMuc = LAST_INSERT_ID();
Trang 42TÀI LIỆU THAM KHẢO
Trang 43Tài liệu tham khảo
Nguyễn Hoàng Anh, Tập slide bài giảng và video môn Lập Trình Java, ĐH KHTN, 2010
http://download.oracle.com/javase/tutorial/jdbc/basics/ , 2011
43
Trang 44HỎI VÀ ĐÁP