1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình Java – Chương 3: Lập trình Java kết nối với CSDL bằng JDBC

43 118 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 43
Dung lượng 1,59 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Lập trình Java Chương 3: Lập trình Java kết nối với CSDL bằng JDBC cung cấp cho người học các kiến thức: Giới thiệu JDBC, một số Class và Interface của JDBC API thường dùng, các bước thực hiện truy cập CSDL sử dụng JDBC,... Mời các bạn cùng tham khảo.

Trang 1

Phát triển UD CSDL 2

Lập trình Java kết nối với CSDL bằng

JDBC

Trang 2

J AVA D ATA B ASE C ONNECTIVITY

• Gi i thi u JDBC ới thiệu JDBC ệu JDBC

• M t s Class và Interface c a JDBC API thột số Class và Interface của JDBC API thường dùng ố Class và Interface của JDBC API thường dùng ủa JDBC API thường dùng ường dùng ng dùng

• Các bưới thiệu JDBC c th c hi n truy c p CSDL s d ng JDBC ực hiện truy cập CSDL sử dụng JDBC ệu JDBC ập CSDL sử dụng JDBC ử dụng JDBC ụng JDBC

– B ước 1 c 1: Đăng ký driver

– B ước 1 c 2: T o đ i t ạo đối tượng kết nối đến CSDL ố Class và Interface của JDBC API thường dùng ượng kết nối đến CSDL ng k t n i đ n CSDL ết nối đến CSDL ố Class và Interface của JDBC API thường dùng ết nối đến CSDL

– B ước 1 c 3: T o đ i t ạo đối tượng kết nối đến CSDL ố Class và Interface của JDBC API thường dùng ượng kết nối đến CSDL ng đ th c hi n các l nh thao tác lên CSDL & ể thực hiện các lệnh thao tác lên CSDL & ực hiện truy cập CSDL sử dụng JDBC ệu JDBC ệu JDBC Xây d ng câu l nh t ực hiện truy cập CSDL sử dụng JDBC ệu JDBC ương ứng (đọc,thêm, xóa, sửa) ng ng (đ c,thêm, xóa, s a) ứng (đọc,thêm, xóa, sửa) ọc,thêm, xóa, sửa) ử dụng JDBC

– B ước 1 c 4: Th c hi n l nh ực hiện truy cập CSDL sử dụng JDBC ệu JDBC ệu JDBC

– B ước 1 c 5: X lý k t qu tr v (optional) ử dụng JDBC ết nối đến CSDL ả trả về (optional) ả trả về (optional) ề (optional)

– B ước 1 c 6: Đóng k t n i ết nối đến CSDL ố Class và Interface của JDBC API thường dùng

• ExecuteBath / X lý l i và ngo i l / Transaction ử dụng JDBC ỗi và ngoại lệ / Transaction ạo đối tượng kết nối đến CSDL ệu JDBC

• Store Procedure

Trang 3

developer t p các interface chu n dùng đ truy xu t d ập CSDL sử dụng JDBC ẩn dùng để truy xuất dữ ể thực hiện các lệnh thao tác lên CSDL & ấp cho java ữ

li u quan h ệu JDBC ệu JDBC

• JDBC đượng kết nối đến CSDLc phát tri n b i JavaSoft.ể thực hiện các lệnh thao tác lên CSDL & ởi JavaSoft

Trang 4

Kiến trúc JDBC

• Khi làm vi c v i JDBC, java developer sẽ làm vi c nh ệu JDBC ới thiệu JDBC ệu JDBC ưnhau đ i v i các h c s d li u khác nhau ố Class và Interface của JDBC API thường dùng ới thiệu JDBC ệu JDBC ơng ứng (đọc,thêm, xóa, sửa) ởi JavaSoft ữ ệu JDBC

• Java developer không ph thu c vào m t h c s d li u ụng JDBC ột số Class và Interface của JDBC API thường dùng ột số Class và Interface của JDBC API thường dùng ệu JDBC ơng ứng (đọc,thêm, xóa, sửa) ởi JavaSoft ữ ệu JDBC

c th nào ụng JDBC ể thực hiện các lệnh thao tác lên CSDL &

• Java developer không c n ph i quan tâm đ n s khác nhau ần phải quan tâm đến sự khác nhau ả trả về (optional) ết nối đến CSDL ực hiện truy cập CSDL sử dụng JDBC khi giao ti p v i các HQTCSDL khác nhau ết nối đến CSDL ới thiệu JDBC

Trang 5

Kiến trúc JDBC

Trang 7

Hoạt động của JDBC

Trang 8

JDBC API

• Class và Interface c a JDBC API thu c gói ủa JDBC API thường dùng ột số Class và Interface của JDBC API thường dùng java.sql

• DriverManager dùng đ n p các driver và t o ể thực hiện các lệnh thao tác lên CSDL & ạo đối tượng kết nối đến CSDL ạo đối tượng kết nối đến CSDL

Connection đ n c s d li u ết nối đến CSDL ơng ứng (đọc,thêm, xóa, sửa) ởi JavaSoft ữ ệu JDBC

• Driver: Driver c a c s d li u, m i JDBC Driver đ u ủa JDBC API thường dùng ơng ứng (đọc,thêm, xóa, sửa) ởi JavaSoft ữ ệu JDBC ỗi và ngoại lệ / Transaction ề (optional)cài đ t l i Interface này ặt lại Interface này ạo đối tượng kết nối đến CSDL

• Connection :Thi t l p m t Connection đ n c s d li u ết nối đến CSDL ập CSDL sử dụng JDBC ột số Class và Interface của JDBC API thường dùng ết nối đến CSDL ơng ứng (đọc,thêm, xóa, sửa) ởi JavaSoft ữ ệu JDBC

và cho phép t o các Statement ạo đối tượng kết nối đến CSDL

• Statement: G n k t v i m t connection đ n c s d li u ắn kết với một connection đến cơ sở dữ liệu ết nối đến CSDL ới thiệu JDBC ột số Class và Interface của JDBC API thường dùng ết nối đến CSDL ơng ứng (đọc,thêm, xóa, sửa) ởi JavaSoft ữ ệu JDBC

và cho phép th c thi các câu l nh SQL ực hiện truy cập CSDL sử dụng JDBC ệu JDBC

• CallableStatement tương ứng (đọc,thêm, xóa, sửa) ng t Statement nh ng áp d ng ực hiện truy cập CSDL sử dụng JDBC ư ụng JDBC cho Store procedures

Trang 9

• ResultSetMetaData: Cung c p các thông tin nh ki u d ấp cho java ư ể thực hiện các lệnh thao tác lên CSDL & ữ

li u và các thu c tính trong Resultset ệu JDBC ột số Class và Interface của JDBC API thường dùng

• DatabaseMetaData: Cung c p các thông tin c a c s d ấp cho java ủa JDBC API thường dùng ơng ứng (đọc,thêm, xóa, sửa) ởi JavaSoft ữ

li u k t n i ệu JDBC ết nối đến CSDL ố Class và Interface của JDBC API thường dùng

• SQLException: Cung c p thông tin các ngo i l x y ra khi ấp cho java ạo đối tượng kết nối đến CSDL ệu JDBC ả trả về (optional)

tương ứng (đọc,thêm, xóa, sửa) ng tác v i c s d li u ới thiệu JDBC ơng ứng (đọc,thêm, xóa, sửa) ởi JavaSoft ữ ệu JDBC

Trang 10

JDBC API

Trang 11

Một số bước kỹ thuật cơ bản sử dụng

JDBC

• B ước 1 c 2: T o đ i tạo đối tượng kết nối đến CSDL ố Class và Interface của JDBC API thường dùng ượng kết nối đến CSDLng k t n i đ n CSDLết nối đến CSDL ố Class và Interface của JDBC API thường dùng ết nối đến CSDL

• B ước 1 c 3: T o đ i tạo đối tượng kết nối đến CSDL ố Class và Interface của JDBC API thường dùng ượng kết nối đến CSDLng đ th c hi n các l nh thao tác lên ể thực hiện các lệnh thao tác lên CSDL & ực hiện truy cập CSDL sử dụng JDBC ệu JDBC ệu JDBC CSDL & Xây d ng câu l nh tực hiện truy cập CSDL sử dụng JDBC ệu JDBC ương ứng (đọc,thêm, xóa, sửa) ng ng (đ c,thêm, xóa, s a) ứng (đọc,thêm, xóa, sửa) ọc,thêm, xóa, sửa) ử dụng JDBC

• B ước 1 c 4: Th c hi n l nhực hiện truy cập CSDL sử dụng JDBC ệu JDBC ệu JDBC

• B ước 1 c 5: X lý k t qu tr v (optional)ử dụng JDBC ết nối đến CSDL ả trả về (optional) ả trả về (optional) ề (optional)

• B ước 1 c 6: Đóng k t n iết nối đến CSDL ố Class và Interface của JDBC API thường dùng

Trang 12

Bước 1 : Đăng ký driver JDBC

• Chu n b driver tẩn dùng để truy xuất dữ ị driver tương ứng với HQTCSDL & thực hiện đăng ương ứng (đọc,thêm, xóa, sửa) ng ng v i HQTCSDL & th c hi n đăng ứng (đọc,thêm, xóa, sửa) ới thiệu JDBC ực hiện truy cập CSDL sử dụng JDBC ệu JDBC ký

• Đăng ký driver MySQL:

– Đăng ký:

• Cách 1: S d ng Class.forName ử dụng JDBC ụng JDBC

Class.forName(" org.gjt.mm.mysql ");

• Cách 2: DriverManager.registerDriver

Driver driver = new org.gjt.mm.mysql Driver();

DriverManager registerDriver(driver);

– Các package c n s d ng: ần phải quan tâm đến sự khác nhau ử dụng JDBC ụng JDBC

import java.sql.Connection;

import java.sql.Driver;

import java.sql.DriverManager;

Trang 13

Bước 2 : Tạo & mở kết nối đến CSDL

• CSDL minh h a:ọc,thêm, xóa, sửa)

Trang 14

Bước 2 : Tạo & mở kết nối đến CSDL

• S d ng phử dụng JDBC ụng JDBC ương ứng (đọc,thêm, xóa, sửa) ng th c ứng (đọc,thêm, xóa, sửa) getConnection c a DriverManager ủa JDBC API thường dùng

• M t s cú pháp:ột số Class và Interface của JDBC API thường dùng ố Class và Interface của JDBC API thường dùng

password);

Trang 15

Bước 2 : Tạo & mở kết nối đến CSDL

Trang 16

public class DemoJDBC {

public static void main(String [] args){

//1 Đăng ký driver và t o k t n i đ n CSDLạo kết nối đến CSDL ết nối đến CSDL ối đến CSDL ết nối đến CSDL

Driver driver = new org.gjt.mm.mysql.Driver();

DriverManager.registerDriver(driver);

//2 T o k t n i đ n CSDLạo kết nối đến CSDL ết nối đến CSDL ối đến CSDL ết nối đến CSDL

String conString = " jdbc:mysql :// localhost : 3306 / NhanVienDB ";

Properties info = new Properties();

info.setProperty("characterEncoding", "utf8");

info.setProperty("user", "root");

info.setProperty("password", "");

Connection connection;

connection = DriverManager.getConnection(conString, info);

//3 T o đ i tạo kết nối đến CSDL ối đến CSDL ượng Statement để thực hiện thao tác dữ liệu mong muốn ng Statement đ th c hi n thao tác d li u mong mu n ể thực hiện thao tác dữ liệu mong muốn ực hiện thao tác dữ liệu mong muốn ện thao tác dữ liệu mong muốn ữ liệu mong muốn ện thao tác dữ liệu mong muốn ối đến CSDL

Trang 17

Bước 3 : Tạo đối tượng để thực thi và chuẩn bị các lệnh SQL

• S d ng phử dụng JDBC ụng JDBC ương ứng (đọc,thêm, xóa, sửa) ng th c ứng (đọc,thêm, xóa, sửa) createStatement() c a đ i tủa JDBC API thường dùng ố Class và Interface của JDBC API thường dùng ượng kết nối đến CSDLng

k t n i:ết nối đến CSDL ố Class và Interface của JDBC API thường dùng

• Chu n b các l nh SQL:ẩn dùng để truy xuất dữ ị driver tương ứng với HQTCSDL & thực hiện đăng ệu JDBC

– SELECT : Truy v n d li u t b ng ấp cho java ữ ệu JDBC ừ cơ sở dữ liệu , ả trả về (optional)

– DELETE : Xóa d li u t b ng ữ ệu JDBC ừ cơ sở dữ liệu , ả trả về (optional)

– UPDATE : C p nh t d li u vào b ng ập CSDL sử dụng JDBC ập CSDL sử dụng JDBC ữ ệu JDBC ả trả về (optional)

– INSERT : Thêm d li u vào b ng ữ ệu JDBC ả trả về (optional)

• Ví d : ụng JDBC

Statement statement = connection createStatement ();

String sql = "SELECT * FROM NHANVIEN";

Query (Đọc)

Update (Thay đổi)

Trang 18

Bước 3 : Tạo đối tượng để thực thi và

public class DemoJDBC {

public static void main(String [] args){

//1 Đăng ký driver và t o k t n i đ n CSDL ạo đối tượng kết nối đến CSDL ết nối đến CSDL ố Class và Interface của JDBC API thường dùng ết nối đến CSDL

//2 T o k t n i đ n CSDL ạo đối tượng kết nối đến CSDL ết nối đến CSDL ố Class và Interface của JDBC API thường dùng ết nối đến CSDL

//3 T o đ i tạo kết nối đến CSDL ối đến CSDL ượng Statement để thực hiện thao tác dữ liệu mong muốn ng Statement đ th c hi n thao tác d li u mong mu n ể thực hiện thao tác dữ liệu mong muốn ực hiện thao tác dữ liệu mong muốn ện thao tác dữ liệu mong muốn ữ liệu mong muốn ện thao tác dữ liệu mong muốn ối đến CSDL

Statement statement = connection.createStatement();

String sql = "SELECT * FROM NHANVIEN";

//4 Th c hi n l nh SQL ực hiện truy cập CSDL sử dụng JDBC ệu JDBC ệu JDBC

//5 X lý k t qu tr v ử dụng JDBC ết nối đến CSDL ả trả về (optional) ả trả về (optional) ề (optional)

}

}

3

Trang 19

Bước 4 : Thực thi SQL

• S d ng m t s cú pháp:ử dụng JDBC ụng JDBC ột số Class và Interface của JDBC API thường dùng ố Class và Interface của JDBC API thường dùng

//Th c thi câu truy v n (SELECT) K t qu tr v là m t t p d li u ực hiện truy cập CSDL sử dụng JDBC ấp cho java ết nối đến CSDL ả trả về (optional) ả trả về (optional) ề (optional) ột số Class và Interface của JDBC API thường dùng ập CSDL sử dụng JDBC ữ ệu JDBC ResultSet

ResultSet statement.executeQuery (String sql)

//Th c thi câu l nh c p nh t d li u (Thêm, xóa, s a) ực hiện truy cập CSDL sử dụng JDBC ệu JDBC ập CSDL sử dụng JDBC ập CSDL sử dụng JDBC ữ ệu JDBC ử dụng JDBC

//Th c thi câu l nh SQL nói chung (thêm, xóa, s a, truy v n, …) ực hiện truy cập CSDL sử dụng JDBC ệu JDBC ử dụng JDBC ấp cho java

boolean statement.execute (String sql)

Trang 20

public class DemoJDBC {

public static void main(String [] args){

//1 Đăng ký driver và t o k t n i đ n CSDL ạo đối tượng kết nối đến CSDL ết nối đến CSDL ố Class và Interface của JDBC API thường dùng ết nối đến CSDL

//2 T o k t n i đ n CSDL ạo đối tượng kết nối đến CSDL ết nối đến CSDL ố Class và Interface của JDBC API thường dùng ết nối đến CSDL

//3 T o đ i t ạo đối tượng kết nối đến CSDL ố Class và Interface của JDBC API thường dùng ượng kết nối đến CSDL ng Statement đ th c hi n thao tác d li u mong mu n ể thực hiện các lệnh thao tác lên CSDL & ực hiện truy cập CSDL sử dụng JDBC ệu JDBC ữ ệu JDBC ố Class và Interface của JDBC API thường dùng

Statement statement = connection.createStatement();

String sql = "SELECT * FROM NHANVIEN";

//4 Th c hi n truy xu t (đ c / ghi) ực hiện thao tác dữ liệu mong muốn ện thao tác dữ liệu mong muốn ất (đọc / ghi) ọc / ghi)

Trang 21

Bước 5: Xử lý kết quả trả về

• Tùy vào k t qu tr v c a vi c th c thi câu l nh:ết nối đến CSDL ả trả về (optional) ả trả về (optional) ề (optional) ủa JDBC API thường dùng ệu JDBC ực hiện truy cập CSDL sử dụng JDBC ệu JDBC

– ResultSet statement.executeQuery (String sql)

🡪 K t qu tr v là m t t p d li u c a câu truy v n: C n duy t qua ết nối đến CSDL ả trả về (optional) ả trả về (optional) ề (optional) ột số Class và Interface của JDBC API thường dùng ập CSDL sử dụng JDBC ữ ệu JDBC ủa JDBC API thường dùng ấp cho java ần phải quan tâm đến sự khác nhau ệu JDBC

t p d li u này đ x lý (hi n th , …) ập CSDL sử dụng JDBC ữ ệu JDBC ể thực hiện các lệnh thao tác lên CSDL & ử dụng JDBC ể thực hiện các lệnh thao tác lên CSDL & ị driver tương ứng với HQTCSDL & thực hiện đăng

– int statement.executeUpdate (String sql)

🡪 K t qu tr v là s dòng b nh h ết nối đến CSDL ả trả về (optional) ả trả về (optional) ề (optional) ố Class và Interface của JDBC API thường dùng ị driver tương ứng với HQTCSDL & thực hiện đăng ả trả về (optional) ưởi JavaSoft ng c a vi c thêm, xóa, s a ủa JDBC API thường dùng ệu JDBC ử dụng JDBC

– boolean statement.execute (String sql)

🡪Tùy vào câu l nh SQL sẽ có cách th c x lý t ệu JDBC ứng (đọc,thêm, xóa, sửa) ử dụng JDBC ương ứng (đọc,thêm, xóa, sửa) ng ng ứng (đọc,thêm, xóa, sửa)

Trang 22

5a Lấy dữ liệu từ ResultSet

• L y k t qu t câu truy v n:ấp cho java ết nối đến CSDL ả trả về (optional) ừ cơ sở dữ liệu , ấp cho java

• S d ng ử dụng JDBC ụng JDBC next() đ đ n dòng k ti p.ể thực hiện các lệnh thao tác lên CSDL & ết nối đến CSDL ết nối đến CSDL ết nối đến CSDL

ResultSet rs = statement.executeQuery(sql);

while ( rs.next()) {

int c1= rs.getInt("Column1");

String c2 = rs.getString("Column2");

… }

Column1 Column2 Column3

ResultSet rs = statement executeQuery (sql)

Trang 23

5a Lấy dữ liệu từ bảng PHONGBAN

Statement statement = connection.createStatement();

String sql = "SELECT * FROM PHONGBAN" ;

ResultSet rs = statement.executeQuery(sql);

while (rs.next()){

int manv= rs.getInt( "MAPHG" );

String hoten = rs.getString( "TENPHG" );

System.out.print(manv+ " " );

System.out.println(hoten);

}

connection.close();

5

Trang 24

5a Lấy dữ liệu từ bảng NHANVIEN

Statement statement = connection.createStatement();

String sql = “select * from NHANVIEN Where PHONG = 1" ;

statement.execute (sql);

ResultSet rs = statement.getResultSet();

while (rs.next()){

int manv = rs.getString( "MANV" );

String hoten = rs.getString( "HOTEN" );

Date ngaysinh = rs.getDate( "NGAYSINH" );

float luong = rs.getFloat( "LUONG" );

System.out.println( … );

}

connection.close();

5

Ngày đăng: 16/07/2020, 10:49

HÌNH ẢNH LIÊN QUAN

5a. Lấy dữ liệu từ bảng PHONGBAN - Bài giảng Lập trình Java – Chương 3: Lập trình Java kết nối với CSDL bằng JDBC
5a. Lấy dữ liệu từ bảng PHONGBAN (Trang 23)
5b. Xóa dữ liệu bảng PHONGBAN - Bài giảng Lập trình Java – Chương 3: Lập trình Java kết nối với CSDL bằng JDBC
5b. Xóa dữ liệu bảng PHONGBAN (Trang 25)
5b. Xóa dữ liệu bảng NHANVIEN - Bài giảng Lập trình Java – Chương 3: Lập trình Java kết nối với CSDL bằng JDBC
5b. Xóa dữ liệu bảng NHANVIEN (Trang 26)
5b. Thêm dữ liệu bảng NHANVIEN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 … - Bài giảng Lập trình Java – Chương 3: Lập trình Java kết nối với CSDL bằng JDBC
5b. Thêm dữ liệu bảng NHANVIEN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 … (Trang 29)

TỪ KHÓA LIÊN QUAN