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

bài giảng lập trình java cơ bản chương 7 gv võ hoàng phương dung truy cập cơ sở dữ liệu với jdbc

33 586 0

Đ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 33
Dung lượng 547,72 KB

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

Nội dung

 Viết tắt của Java Database Connectivityapplication đến Database • Thiết lập kết nối đến Database • Tạo các câu lệnh truy vấn SQL • Thực thi các câu lệnh truy vấn • Xem và sửa đổi các k

Trang 2

 Giới thiệu về JDBC

Nội dung

Trang 3

 Viết tắt của Java Database Connectivity

application đến Database

• Thiết lập kết nối đến Database

• Tạo các câu lệnh truy vấn SQL

• Thực thi các câu lệnh truy vấn

• Xem và sửa đổi các kết quả truy vấn

3/25

Giới thiệu về JDBC

Trang 4

 JDBC hỗ trợ 2 loại truy cập dữ liệu

Cấu trúc của JDBC

Trang 7

 JDBC API cung cấp các interface và class để

thao tác dữ liệu

• DriverManager: quản lý các database driver

• Driver: xử lý giao tiếp với database server

• Connection: kết nối database

• Statement: tạo và thực thi các câu lệnh SQL

• ResultSet: lưu trữ và thao tác trên kết quả trả về

• SQLException: xử lý các ngoại lệ trong quá trình

thao tác với database

7/25

Cấu trúc của JDBC

Trang 9

JDBC driver loại 1: JDBC-ODBC

9/25

Cấu trúc của JDBC

Trang 10

JDBC driver loại 2: Native API

Cấu trúc của JDBC

Trang 11

JDBC driver loại 3: Net pure Java

11/25

Cấu trúc của JDBC

Trang 12

JDBC driver loại 4: 100% pure Java

Cấu trúc của JDBC

Trang 13

 Bước 1: Thiết lập kết nối Database

13/25

Các bước sử dụng JDBC

Trang 14

Nạp các java package: sử dụng câu lệnh import

Trang 16

 Xác định Database URL

• Được sử dụng để tạo kết nối đến Database

• Có thể chứa server, port, protocol…

Bước 1: Thiết lập kết nối Database

MySQL com.mysql.jdbc.Driver jdbc:mysql://hostname/ databaseName

ORACLE oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@hostname:port

Trang 17

 Ví dụ

• SQL SERVER:

“jdbc:sqlserver://myserver:1433;databasename=Library”;

• Oracle thin driver

“jdbc:oracle:thin:@machinename:1521:dbname”

17/25

Bước 1: Thiết lập kết nối Database

Trang 18

 Tạo đối tượng kết nối Connection: sử dụng 1

• Chú ý: ném ra ngoại lệ SQLException

Bước 1: Thiết lập kết nối Database

Trang 19

Properties info = new Properties( );

info.put( "user", “sa" );

Trang 20

 Sử dụng 1 trong 3 đối tượng

• Statement: thực thi câu sql không chứa biến

Statement stmt = conn.createStatement( );

• PreparedStatement: thực thi câu sql chứa biến

Các biến được chỉ định bởi dấu ?

 Truyền biến vào câu lệnh bằng phương thức setXXX(index,value) với XXX là kiểu dữ liệu của biến

Ví dụ:

Bước 2: Tạo câu lệnh truy vấn

Trang 21

• CallableStatement: để thực thi các stored-procedure

Sử dụng pt Connection.prepareCall() để khởi tạo

 Có 3 loại biến

 Biến IN: truyền giá trị bằng pt setXXX(index, value)

 Biến OUT: lấy giá trị bằng pt getXXX(index)

 Biến INOUT: truyền giá trị bằng setXXX(index, value), lấy giá trị bằng getXXX(index)

 Ví dụ

CallableStatement cstmt = null;

try { String SQL = "{call getEmpName (?, ?)}";

Trang 23

 ResultSet cung cấp các phương thức để xử lý

các kết quả trả về từ câu lệnh SQL

con trỏ của ResultSet

23/25

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

Trang 24

 Các loại ResultSet (ResultSet Types): xét về

loại con trỏ và sự phản ánh thay đổi dữ liệu

• ResultSet.TYPE_FORWARD_ONLY (mặc định): con trỏ chỉ dịch chuyển tiến đến trong ResultSet

• ResultSet.TYPE_SCROLL_INSENSITIVE: con trỏ có thể dịch chuyển đến và lùi, ResultSet không cập nhật các thay đổi trong Database sau khi đã được tạo

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

Trang 25

 Các loại ResultSet (ResultSet Concurrency):

xét về chức năng thay đổi dữ liệu

• ResultSet.CONCUR_READ_ONLY (mặc định):

ResultSet chỉ đọc

• ResultSet.CONCUR_UPDATABLE: ResultSet cóthể thay đổi được dữ liệu

25/25

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

Trang 26

 Loại ResultSet được xác định đồng thời tại lúc tạo đối tượng statement

• createStatement(int RSType, int RSConcurrency);

• prepareStatement(String SQL, int RSType, int RSConcurrency);

• prepareCall(String SQL, int RSType, int RSConcurrency);

RSType: chỉ định ResultSet Types

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

Trang 27

 Ví dụ

Statement stmt = conn.createStatement(

ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);

• Các phương thức di chuyển con trỏ

• Các phương thức lấy dữ liệu trong ResultSet

• Các phương thức cập nhật dữ liệu

27/25

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

Trang 28

 Các phương thức di chuyển con trỏ

public boolean absolute(int row) throws

về cuối ResultSet và ngược lại public boolean previous() throws

SQLException

di chuyển đến hàng đứng phía trước

Trang 29

 Các phương thức lấy dữ liệu trong ResultSet

• getXXX(String columnName) throws SQLException

• getXXX(int columnIndex) throws SQLExceptionXXX: là kiểu tương ứng của dữ liệu

columnName: tên của cột trong ResultSetcolumnIndex: chỉ số của cột trong ResultSet, bắt đầu

từ 1

29/25

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

Trang 30

 Các phương thức cập nhật dữ liệu

• Cập nhật dữ liệu trong ResultSet

 public void updateXXX(int columnIndex, XXX s) throws SQLException

 public void updateXXX(String columnName, XXX s) throws SQLException

• Cập nhật dữ liệu từ ResultSet đến Database

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

public void updateRow() Cập nhật các thay đổi của hàng hiện tại trong

ResultSet đến Database

Trang 32

 Transaction: là một khối các thao tác cần được thực hiện tương ứng với nhau

mỗi câu lệnh SQL được hoàn thành riêng lẻ

chế độ auto-commit và kết thúc khi đối tượng

kết nối thực hiện phương thức commit()

Transaction

Trang 33

• conn.rollback(): hủy bỏ tất cả các thay đổi trong

Database từ vị trí bắt đầu transaction

33/25

Transaction

Ngày đăng: 17/10/2014, 07:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm