1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo án - Bài giảng: LẬP TRÌNH JAVA NÂNG CAO - TRUY CẬP CƠ SỞ DỮ LIỆU VỚI JDBC

34 1,4K 4
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Truy Cập Cơ Sở Dữ Liệu Với JDBC
Trường học Chương trình đào tạo Lập trình Máy tính
Chuyên ngành Lập trình Java Nâng cao
Thể loại Giáo án - Bài giảng
Định dạng
Số trang 34
Dung lượng 323 KB

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

Nội dung

Nội dung của chương 06 Khái niệm JDBC  Các bước truy cập cơ sở dữ liệu với JDBC – Nạp database drivers – Tạo kết nối sử dụng đối tượng Connection – Tạo đối tượng Statement để thực thi

Trang 2

Nội dung của chương 06

 Khái niệm JDBC

 Các bước truy cập cơ sở dữ liệu với JDBC

– Nạp database drivers

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

– Tạo đối tượng Statement để thực thi các lệnh sql.

Trang 3

Tổng quan

 JDBC cung cấp tập các lớp và interface cho phép chương trình Java có thể “nói chuyện” được với hệ CSDL

 Tập các lớp của JDBC

có thể làm việc được với

mọi hệ csdl

Trang 5

Ví dụ

CSDL có trình điều khiển ODBC cài đặt sẵn

như ORACLE, SQL Server, MS Access

tạo chỉ mục cho ứng dụng trên nền hệ quản trị CSDL chuẩn trên (ví dụ: MS Access)

Trang 6

Tạo đối tượng ODBC

tương ứng (ví dụ: MS Access)

Trang 7

Tạo đối tượng ODBC (tt)

tượng ODBC của CSDL (ví dụ: ATM)

Trang 8

Nạp trình điều khiển và tạo kết nối

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url = "jdbc:odbc:ATM";

Connection con=DriverManager.getConnection(url); Statement stmt = con.createStatement();

Trang 9

phần này là tên của đối tượng ODBC

 Có thể có tên truy cập và mật khẩu

 Với Oracle, url = “jdbc:oracle:oci8:@MyDB”

Trang 10

 Nhận các yêu cầu từ client, chuyển nó nó vào

định dạng mà csdl có thể hiểu được và thể hiện trong csdl

 Nhận các phản hồi, chuyển nó ngược lại định

dạng dữ liệu java và thể hiện trong ứng dụng

Trang 11

If you have a driver from another vendor, then find out the

class name of that driver and load it instead.

Trang 13

Databas e

Network Interface

Server

Aplication JDBC Driver ODBC Driver

Network Interface

Disk

Client

Trang 14

Databas e

Network Interface

Server

Aplication JDBC Driver

Native Database Library

Network Interface

Disk

Client

Trang 15

Loại 3: Open Protocol-Net

Network Interface Server

Native Database Library

Trang 16

Loại 4: Proprietary-Protocol Net

Trang 18

Đối tượng Statement

 Đối tượng Connection chứa liên kết trực tiếp đến

Trang 20

 Phương thức executeUpdate()

– Nhận các câu lệnh sql dạng cập nhật

– Trả lại số nguyên biểu thị số hàng được cập nhật.

– UPDATE, INSERT, or DELETE

 Phương thức execute()

– Được áp dụng cho trường hợp không rõ loại sql nào được thực hiện, trả về kiểu boolean, true nếu đó là executeQuery() -> getResultSet() để lấy kết quả – Được áp dụng cho trường hợp câu lệnh sql tạo ra tự động bởi chương trình.

Các phương thức thực thi (tt)

Trang 21

 Chứa một hoặc nhiều hàng dữ liệu từ việc thực hiện câu lệnh truy vấn.

 Có thể lấy dữ liệu từng hàng dữ liệu một trong ResultSet

 Sử dụng phương thức next() để di chuyển đến hàng dữ liệu tiếp theo trong ResultSet

 Hàm next() trả lại true chỉ rằng hàng chứa dữ liệu, trả lại false hàng cuối không chứa dữ liệu

 Thực hiện

while (rs.next()){

// examine a row from the results

}

Trang 22

 String isbn = rs.getString(1); // Column thứ 1

 float price = rs.getDouble(“Price”); // Column có tên “Price”

Trang 23

Các phương thức getXXX()

x: phương

thức getXXX

có thể dùng được để nhận kiểu giá trị này

 X: nên dùng phương thức getXXX cho kiểu giá trị này

Trang 25

Đối tượng PreparedStatement

 Được sử dụng thay cho Statement để thực hiện một câu lệnh SQL trên CSDL nhiều lần

 Câu lệnh SQL sẽ được biên dịch trước → rút ngắn thời gian

Trang 27

Phương thức rollback

 Phương thức rollback của đối tượng kết nối được

sử dụng để loại bỏ mọi tác dụng của một

transaction chưa thực hiện commit

 Cần thực hiện rollback ngay khi nhận được ngoại

lệ SQLException để bỏ qua mọi tác dụng của

transaction

 Thực hiện rollback:

conn.rollback();

Trang 28

ResultSet cuộn được

 ResultSet là tập các records nhận được từ việc

thực hiện một lệnh SQL trên một CSDL

 ResultSet cuộn được là một ResultSet cho phép người dùng duyệt các records theo 2 chiều, từ

BOF đến EOF hay ngược lại

 Tạo một ResultSet cuộn được (và cập nhật được):

Statement stmt =

conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

ResultSet rs = stmt.executeQuery(“select * from SV”);

Trang 29

Định vị trong ResultSet

 void beforeFirst() throws SQLException: di chuyển đến

vị trí đầu của tập ResultSet rs, không chứa record

(boolean isBeforeFirst() throws SQLException).

 void afterLast() throws SQLException: di chuyển đến vị trí cuối của tập ResultSet rs, không chứa record

(boolean isAfterLast() throws SQLException).

 boolean first() throws SQLException: di chuyển đến vị trí record đầu tiên của tập ResultSet rs, false nếu rs là

rỗng (boolean isFirst() throws SQLException).

 boolean last() throws SQLException: di chuyển đến vị trí record cuối của tập ResultSet rs, false nếu rs là rỗng (boolean isLast() throws SQLException).

Trang 30

từ vị trí last (int getRow() throws SQLException).

 boolean relative(int rows) throws SQLException : di chuyển đến record có vị trí tương đối là rows so với vị trí hiện hành của tập ResultSet rs, nếu rows dương thì chuyển về hướng cuối tập rs, và ngược lại.

Trang 31

Cập nhật CSDL sử dụng ResultSet

rs.absolute(3); //Nhảy đến hàng thứ 3 kể từ đầu rs

rs.updateFloat(“Toan”,10.5); //Đổi cột Toan thành 10.5

rs.cancelRowUpdates(); //Bỏ qua các lệnh thay đổi trên

rs.updateFloat(“Toan”,8.5); //Đổi cột Toan thành 8.5

rs.updateRow(); //Xác nhận sự thay đổi

Trang 33

Chương trình mẫu 2

import java.sql.*;

public class CreateTable {

public static void main(String[] args) {

String url = "jdbc:odbc:vd1";Connection conn;Statement stmt;

try {

Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");

} catch (java.lang.ClassNotFoundException e) {}

try {

conn = DriverManager.getConnection(url); stmt = conn.createStatement();

stmt.executeUpdate("INSERT INTO COFFEES VALUES ('ABC','101',6.99,0,0)"); stmt.close(); conn.close();

} catch (java.sql.SQLException e) {

System.err.print(“SQLException:");

System.err.println(e.getMessage());

}}}

Trang 34

Ví dụ: Chương trình cập nhật dữ liệu

Tạo một bảng dữ liệu bằng MS Access, chứa

mã sinh viên, họ tên, điểm thi các môn Toán,

Lý, Hoá Sau đó viết chương trình thêm, xoá bản ghi, sửa số liệu, tìm kiếm bản ghi theo mã sinh viên

Ngày đăng: 16/04/2014, 14:26

TỪ KHÓA LIÊN QUAN

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