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

Tong hop cac bai hoc ve lap trinh JDBC

66 330 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 66
Dung lượng 1,35 MB

Nội dung

Tổng hợp các bài học về lập trình Java JDBC, hướng dẫn kết nối cơ sở dữ liệu JDBC và thao tác trong JDBC Tổng hợp các bài học về lập trình Java JDBC, hướng dẫn kết nối cơ sở dữ liệu JDBC và thao tác trong JDBC

Trang 1

dữ liệu như MySQL, SQL Server, Oracle, PostgreSQL, …

JDBC hỗ trợ các chức năng như tạo một kết nối đến một cơ sở dữ liệu, tạo câu lệnh SQL (Structured Query Language), thực thi câu lệnh SQL, xem

và thay đổi dữ liệu

2 Kiến trúc JDBC (JDBC Architecture)

Trang 2

2

3 Các thành phần JDBC thông dụng

DriverManager: Lớp này quản lý một danh sách trình điều khiển cơ sở

dữ liệu (database drivers) Lựa chọn trình điều khiển phù hợp từ yêu cầu của ứng dụng java sử dụng giao thức giao tiếp

Connection: Đại diện cho một kết nối đến cơ sở dữ liệu

Statement: Đối tượng dùng để thực thi các câu lệnh SQL như câu lệnh

thêm dữ liệu (insert), câu lệnh thay đổi dữ liệu (update), câu lệnh xoá dữ liệu (delete), câu lệnh xem dữ liệu (select), …

ResultSet: Đối tượng này sẽ chứa dữ liệu sau khi chúng ta thực thi câu

lệnh xem dữ liệu Sử dụng đối tượng này để duyệt qua tất cả dữ liệu được chứa trong ResultSet

SQLException: Lớp này xử lý tất cả những ngoại lệ phát sinh trong quá

trình ứng dụng java thao tác với cơ sở dữ liệu

4 Phân loại (JDBC Drivers Types)

Loại 1 (Type 1): Sử dụng cầu nối ODBC – Open Database Connectivity

(JDBC – ODBC Bridge Driver) Sử dụng ODBC, yêu cầu bạn phải cấu hình trên hệ thống một DSN (Data Source Name) đại diện cho cơ sở dữ liệu muốn

sử dụng

Trang 3

3

Loại 2: JDBC-Native API

Trang 4

4

Loại 3: JDBC kết nối thông qua các ứng dụng mạng trung gian

Trang 5

Loại 2 được sử dụng trong một số tình huống khi mà loại 3 hoặc loại 4

là không có sẵn cho cơ sở dữ liệu của bạn

Loại 1 thường được sử dụng với mục đích thử nghiệm

5 Giới thiệu một số câu lệnh SQL thông dụng

Tạo cơ sở dữ liệu

CREATE DATABASE DATABASE_NAME;

Xoá cơ sở dữ liệu

DROP DATABASE DATABASE_NAME;

Tạo bảng

CREATE TABLE table_name

(

column_name column_data_type,

Trang 6

DELETE FROM table_name WHERE conditions;

Thay đổi dữ liệu

Trang 7

Hướng dẫn kiểm tra máy tính của bạn đã cài đăt JDK chưa? Sử dụng CMD (Command) và gõ lệnh java -version sau đó nhấn Enter để xem kết quả

3 Cài đặt hệ quản trị cơ sở dữ liệu

Ứng dụng Java có thể làm việc với nhiều hệ quản trị cơ sở dữ liệu khác nhau như MySQL, PostgreSQL, SQL Server, Oracle, …Chúng ta lựa chọn hệ quản trị nào còn tuỳ thuộc vào yêu cầu thực tế của dự án Trong phạm vi môn học này, chúng ta sẽ cài đặt và sử dụng hệ quản trị SQL Server của Microsoft

4 Tạo cơ sở dữ liệu

Chúng ta sẽ tạo một cơ sở dữ liệu tên EMPDB sử dụng câu lệnh sau

CREATE DATABASE EMPDB

Cách tạo cơ sở dữ liệu với SQL Server

 Nhập câu lệnh và chọn Execute (Hoặc nhấn F5)

Trang 8

create table Employees (

id int not null primary key

,first nvarchar (255)

Trang 9

 Cài đặt Microsoft SQL Server

 Tạo cơ sở dữ liệu

 Tạo bảng

Trang 10

10

Kết nối SQL Server với java (Bài 3)

1 Kết nối sql server với java (Connect to Microsoft SQL Server via JDBC) sẽ

hướng dẫn các bạn làm thế nào để có được trình điều khiển JDBC (JDBC Driver) và viết mã (code) cho việc kết nối đến cơ sở dữ liệu được cài đặt trên Microsoft SQL Server từ ứng dụng Java Nội dung bài học bao gồm tải JDBC Driver, chuỗi kết nối cho Microsoft SQL Server (sql server jdbc connection string), thiết lập kết nối (establish connection) và chương trình mẫu

2 Download Microsoft JDBC driver

Tải JDBC Driver và thêm sqljdbc42.jar vào Java project sử dụng NetBeans theo các bước sau

Chuột phải Libraries -> Chọn Add JAR/Folder…

Chỉ định thư mục chứa JDBC Driver và chọn tập tin sqljdbc42.jar

-> chọn Open

Trang 11

11

Trang 12

12

3 SQL Server JDBC connection string

Là chuỗi được sử dụng để kết nối đến SQL Server Mỗi một hệ quản trị cơ

sở dữ liệu sẽ có một chuỗi kết nối khác nhau Sau đây là chuỗi kết nối JDBC dành cho Microsoft SQL Server

Trang 13

13

 property=value chỉ định tên cơ sở dữ liệu, tên và mật khẩu đăng nhập vào SQL Server

databaseName=EMPDB; user=sa; password=sa

4 Thiết lập kết nối (establish connection)

Để tạo một kết nối, gọi phương thức getConnection() của lớp DriverManager Sau đây là đoạn code được sử dụng để kết nối đến localhost sử dụng user là sa, mật khẩu là sa và kết nối vào cơ sở dữ liệu tên EMPDB

String dbURL =

"jdbc:sqlserver://localhost;databaseName=EMPDB;user=sa;password=sa"; Connection conn = DriverManager.getConnection(dbURL);

if (conn != null) {

System.out.println("Connected");

}

Để đoạn code trên được thực thi thành công, chúng ta phải thực hiện 2 việc

Việc thứ nhất: Thiết lập SQL Server cho phép đăng nhập sử dụng tài khoản

của SQL Server

 Chuột phải SQL Server -> Chọn Properties

Trang 14

14

 Chọn SQL Server and Windows Authencation mode

Trang 15

15

Trang 16

16

 Khởi động lại SQL Server

Việc thứ hai: Kích hoạt và đặt mật khẩu cho tài khoản sa

Trang 17

17

 Chuột phải sa -> Chọn Properties

Trang 18

18

 Đặt mật khẩu

Trang 20

public class ConnectionTest {

public static void main(String[] args) {

try {

String dbURL =

"jdbc:sqlserver://localhost;databaseName=EMPDB;user=sa;password=sa"; Connection conn = DriverManager.getConnection(dbURL);

System.out.println("Driver version: " + dm.getDriverVersion());

System.out.println("Product name: " + dm.getDatabaseProductName()); System.out.println("Product version: " +

dm.getDatabaseProductVersion());

}

} catch (SQLException ex) {

System.err.println("Cannot connect database, " + ex);

Trang 21

21

Tổng kết bài kết nối sql server với Java

 Download Microsoft JDBC driver

 SQL Server JDBC connection string

 Establish connection

 Example program

Trang 22

22

JDBC Statement trong java (Bài 4)

1 JDBC Statement trong java Khi một kết nối được thiết lập, chúng ta có

thể tương tác với cơ sở dữ liệu JDBC Statement, PreparedStatement

và CallableStatement định nghĩa những phương thức và thuộc tính, cho phép

chúng ta thực thi câu lệnh SQL và nhận dữ liệu từ cơ sở dữ liệu của bạn Bảng sau đây mô tả tóm tắt về Statement, PreparedStatement

2 Đối tượng Statement (Statement Objects)

Tạo đối tượng Statement

Trang 23

23

finally {

}

Thực thi câu lệnh SQL (Execute an SQL statement)

boolean execute (String SQL): Trả về giá trị true nếu thực thi thành công câu lệnh SQL; ngược lại sẽ trả về giá trị false Sử dụng phương thức này

để thực thi các câu lệnh SQL DDL như tạo cơ sở dữ liệu, tạo bảng, …

int executeUpdate (String SQL): Trả về số dòng bị tác động khi thực thi

các câu lệnh như INSERT, UPDATE hoặc DELETE

ResultSet executeQuery (String SQL): Trả về một đối tượng ResultSet

khi bạn thực thi câu lệnh SELECT

Đóng đối tượng Statement (Closing Statement Object)

package jdbc;

Trang 24

public class JDBCStatementExample {

// SQL Server JDBC connection string

static final String DB_URL =

"jdbc:sqlserver://localhost;databaseName=EMPDB;user=sa;password=sa";

public static void main(String[] args) {

Connection conn = null;

Trang 25

25

String sql = "INSERT INTO Employees VALUES (100, 18, N'gia sư', N'tin học');";

int rows = stmt.executeUpdate(sql);

System.out.println("Rows impacted : " + rows);

// Let us select all the records and display them

sql = "SELECT id, first, last, age FROM Employees";

int age = rs.getInt("age");

String first = rs.getString("first");

String last = rs.getString("last");

//Display values

System.out.print("ID: " + id);

System.out.print(", Age: " + age);

System.out.print(", First: " + first);

System.out.println(", Last: " + last);

Trang 26

26

} catch (SQLException se) {

//Handle errors for JDBC

3 Đối tượng PreparedStatement (PreparedStatement Objects)

Tạo đối tượng PreparedStatement

PreparedStatement pstmt = null;

try {

String SQL = "Update Employees SET age = ? WHERE id = ?";

pstmt = conn.prepareStatement(SQL);

Trang 27

phương thức setXXX() với XXX đại diện cho kiểu dữ liệu Và mỗi tham số

được đánh dấu bằng số thứ tự; tha số đầu tiên có vị trí là 1, tham số kế tiếp

Trang 28

28

// SQL Server JDBC connection string

static final String DB_URL =

"jdbc:sqlserver://localhost;databaseName=EMPDB;user=sa;password=sa";

public static void main(String[] args) {

Connection conn = null;

//Bind values into the parameters

stmt.setInt(1, 35); // This would set age

stmt.setInt(2, 100); // This would set ID

// Let us update age of the record with ID = 100;

int rows = stmt.executeUpdate();

System.out.println("Rows impacted : " + rows);

// Let us select all the records and display them

sql = "SELECT id, first, last, age FROM Employees";

stmt = conn.prepareStatement(sql);

Trang 29

int age = rs.getInt("age");

String first = rs.getString("first");

String last = rs.getString("last");

//Display values

System.out.print("ID: " + id);

System.out.print(", Age: " + age);

System.out.print(", First: " + first);

System.out.println(", Last: " + last);

} catch (SQLException se) {

//Handle errors for JDBC

Trang 30

4 Đối tượng CallableStatement (CallableStatement Objects)

Tạo đối tượng CallableStatement (Creating CallableStatement Object)

Trang 31

31

}

Đóng đối tượng CallableStatement (Closing CallableStatement Object)

cstmt.close();

JDBC Statement trong java – Ví dụ

Tạo thủ tục getEmpName trong EMPDB sử dụng Microsoft SQL Server Management Studio

GO

USE EMPDB

GO

CREATE PROCEDURE getEmpName

@EMP_ID INT, @EMP_FIRST NVARCHAR(255) OUTPUT

Trang 32

32

*/

public class JDBCCallableStatementExample {

// SQL Server JDBC connection string

static final String DB_URL =

"jdbc:sqlserver://localhost;databaseName=EMPDB;user=sa;password=sa";

public static void main(String[] args) {

Connection conn = null;

Trang 33

33

System.out.println("Executing stored procedure ");

stmt.execute();

//Retrieve employee name with getXXX method

String empName = stmt.getString(2);

System.out.println("Emp name with ID (" + empID + ") is " + empName); stmt.close();

conn.close();

} catch (SQLException se) {

//Handle errors for JDBC

Trang 34

Bước 1: Thiết lập kết nối đến máy chủ cơ sở dữ liệu

Bước 2: Tạo đối tượng thực thi câu lệnh SQL (Statement, PrepareStatement

hoặc CallableStatement)

Bước 3: Viết câu lệnh SQL, thực thi câu lệnh SQL và xử lý kết quả (nếu có) Bước 4: Đóng kết nối

Tổng kết bài JDBC Statement trong java

 Thực thi câu lệnh SQL tĩnh với Statement

 Thực thi câu lệnh SQL có tham số với PreparedStatement

 Thực thi thủ tục với CallableStatement

Trang 35

35

Lập trình Java Swing và JDBC (Bài 5)

Sản phẩm lập trình java swing và jdbc là những ứng dụng có sự kiết hợp

giữa thư viện Swing và JDBC cho phép người dùng thao tác với ứng dụng thông qua giao diện đồ hoạ (GUI) và quản lý dữ liệu thông qua JDBC VÍ dụ những chương trình quản lý bán hàng, quản lý siêu thị, quản lý đào tạo, …thì phần giao diện được thiết kế bằng cách sử dụng Swing và phần cơ

sở dữ liệu sẽ sử dụng JDBC và một hệ quản trị cơ sở dữ liệu như MySQL, SQL Server hay Oracle, …

CREATE TABLE Books (

ID INT IDENTITY PRIMARY KEY

,title NVARCHAR(50)

,price FLOAT

)

GO

INSERT INTO Books (title, price) VALUES (N'Lập trình C',100)

INSERT INTO Books (title, price) VALUES (N'Lập trình Java',200)

INSERT INTO Books (title, price) VALUES (N'Lập trình C#',150)

GO

Lập trình java swing và jdbc – Chương trình 1: Tìm kiếm và xoá dữ liệu

Trang 36

36

Cho phép người dùng xem và xoá dữ liệu của bảng Books Ngoài ra chương trình cũng cho phép người dùng tìm kiếm một sách theo tiêu đề (title)

Mô tả yêu cầu

Đối với nút “Search” nếu vùng filter không nhập, chương trình sẽ hiển thị

tất cả dữ liệu của bảng Books Ngược lại chương trình chỉ hiển thị đúng với

thông tin mà người dùng đã nhập hoặc ứng dụng sẽ thông báo “The book

is not available!” trong trường hợp không tìm thấy

Trang 37

37

Khi người dùng chọn một dòng trên table, nút “Delete” sẽ ở trạng thái sử dụng và chương trình sẽ hiển thị thông báo xác nhận “Do you want to

delete?” khi người dùng chọn nút “Delete” Nếu chọn “Yes“, chương trình

sẽ xoá thông tin sách được chọn khỏi cơ sở dữ liệu

Nút “Exit” sẽ đóng chương trình

Viết xử lý cho nút “Search”

Bước 1: Khai báo tiêu đề và model cho Table

private String header[] = {"Id", "Title", "Price"};

private DefaultTableModel tblModel = new DefaultTableModel(header, 0);

Bước 2: Truy xuất dữ liệu của bảng Books

Connection conn = null;

Trang 38

38

// Câu lệnh xem dữ liệu

String sql = "select * from Books ";

// Nếu tìm kiếm theo title

Trang 40

40

Trước khi xoá dữ liệu, người dùng phải chọn một dòng trên table và chương trình sẽ lấy giá trị của cột đầu tiên của dòng được chọn để làm điều kiện xoá (cột id)

int ret = JOptionPane.showConfirmDialog(this, "Do you want to delete?",

=Library", "sa", "sa");

ps = c.prepareStatement("Delete From Books where id = ?");

ps.setInt(1, id ); //giá trị của cột đầu tiên tại dòng được chọn trong table ret = ps.executeUpdate();

Trang 41

Giao diện chương trình

Khi người dùng chọn id từ combobox, chương trình sẽ hiển thị thông tin của title và price tương ứng vào các textfield Dữ liệu sẽ được cập nhật khi người

dùng chọn nút “Save“

Viết xử lý hiển thị dữ liệu cho combobox

Connection conn = null;

Statement st = null;

ResultSet rs = null;

try {

Trang 42

rs = st.executeQuery("select id from books ");

Vector data = new Vector();

Trang 43

43

ex.printStackTrace();

}

}

Đăng ký và xử lý sự kiện cho combobox

Đăng ký sự kiện: chuột phải combobox -> chọn Events -> chọn Action

=Library", "sa", "sa");

id = Integer.parseInt((String) cmbCondition getSelectedItem());

String sql = "Select * from books where id = ?";

Trang 44

Viết xử lý cho nút “Save”

int ret = JOptionPane.showConfirmDialog(this, "Do you want to

update?", "Confirm", JOptionPane.YES_NO_OPTION);

Trang 45

ps.setString(1, txtTitle getText());

ps.setFloat(2, Float.parseFloat( txtPrice getText()));

ps.setInt(3, id ); //id được chọn từ combobox

Trang 46

Lập trình java swing và jdbc – Chương trình 3: Thêm dữ liệu

Giao diện chương trình

Trang 47

47

return;

}

// Hiển thị hộp thoại xác nhận có muốn lưu hay không?

int ret = JOptionPane.showConfirmDialog(this, "Do you want to save?",

ps.setString(1, txtTitle getText());

ps.setFloat(2, Float.parseFloat( txtPrice getText()));

// Thực thi câu lệnh insert

ret = ps.executeUpdate();

Trang 48

Thiết kế giao diện với Java Swing

Lập trình cơ sở dữ liêu với JDBC

3 Bài tập thực hành

Bài thực hành số 1: Viết chương trình cho phép quản lý thông tin lớp học Giao diện

Trang 49

49

Màn hình 1

Viết xử lý

Khi người dùng chọn nút lệnh “Display”, hiển thị thông tin từ bảng

ClassTbl vào JTable Nếu người dùng nhập tên lớp tại “Class name”,

chương trình sẽ hiển thị thông tin về lớp đã được nhâp

Chương trình cũng cho phép cập nhật lại thông tin lớp bằng cách chọn một

dòng tại JTable và nhập thông tin thay đổi tại “Class Name” , sau đó chọn nút lệnh “Update” để hoàn tất

Để xóa thông tin, người dùng sẽ chọn một dòng muốn xóa tại JTable và

chọn nút lệnh “Delete”

Khi người dùng chọn nút lệnh “Insert”, chương trình sẽ hiển thị màn hình

thêm thông tin lớp học

Màn hình 2

Bài thực hành số 2: Tại màn hình thêm thông tin lớp hớp học (Màn hình 2)

Ngày đăng: 12/12/2017, 09:31

TỪ KHÓA LIÊN QUAN

w