Tải bản đầy đủ (.pdf) (66 trang)

Tong hop cac bai hoc ve lap trinh JDBC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.35 MB, 66 trang )

Blog: Tieudao.info
Bài 1: Giới thiệu về JDBC – JDBC Introduction

1. JDBC là gì?
JDBC viết tắt của Java Database Connectivity, cho phép các ứng dụng
Java kết nối với nhiều cơ sở dữ liệu được cài đặt trên các hệ quản trị cơ sở
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)

1


Blog: Tieudao.info

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.
2


Blog: Tieudao.info

Loại 2: JDBC-Native API

3


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

4


Blog: Tieudao.info
Loại 4: JDBC kết nối trực tiếp với trình điều khiển cơ sở dữ liệu (100% Pure
Java)

Kết luận trình điều khiển nào nên được sử dụng (Which driver should
be used)
Nếu bạn truy cập vào một loại cơ sở dữ liệu như MySQL, SQL Server,
PostgreSQL, Oracle, … thì loại 4 nên được sử dụng.
Nếu ứng dụng Java của bạn truy cập nhiều loại cơ sở dữ liệu cùng một

lúc thì loại 3 nên được sử dụng.
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,
5


Blog: Tieudao.info
column_name column_data_type,
column_name column_data_type
...
);
Xoá bảng
DROP TABLE table_name;
Thêm dữ liệu
INSERT INTO table_name VALUES (columnValue1, columnValue2, ...);
Xoá dữ liệu
DELETE FROM table_name WHERE conditions;
Thay đổi dữ liệu
UPDATE table_name
SET column_name = value, column_name = value, ...

WHERE conditions;
Xem dữ liệu
SELECT column_name, column_name, ...
FROM table_name
WHERE conditions;
Tổng kết bài học giới thiệu về JDBC


JDBC là gì?



Kiến trúc JDBC



Các loại JDBC



Các câu lệnh SQL thường dùng

6


Blog: Tieudao.info
Cài đặt JDBC Driver – JDBC Environment Setup (Bài 2)
1. Cài đặt jdbc driver.
Để bắt đầu phát triển ứng dụng với JDBC, chúng ta phải cài đặt môi trường
bao gồm những bước như cài đặt Java, cài đặt hệ quản trị cơ sở dữ liệu, tạo

cơ sở dữ liệu, tạo bảng, …
2. Cài đặt Java
Nếu môi trường lập trình trên máy của bạn chưa cài dặt JDK thì bạn phải tải
JDK từ Oracle và cài đặt JDK. Chúng ta sẽ bỏ qua bước này, nếu máy của
bạn đã cài đặt JDK trước đó.
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)

7


Blog: Tieudao.info



Sau khi tạo thành công


5. Tạo bảng
Tạo bảng employee thuộc cơ sở dữ liệu EMPDB sử dụng câu lệnh sau
use EMPDB
create table Employees (
id int not null primary key
,first nvarchar (255)
8


Blog: Tieudao.info
,last nvarchar (255)
,age int not null
)
Lưu ý trong một cửa sổ nếu chúng ta viết nhiều câu lệnh thì câu lệnh nào
muốn thực thi, chúng ta phải chọn câu lệnh đó.

Tổng kết bài cài đặt jdbc driver


Cài đặt JDK



Cài đặt Microsoft SQL Server



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




Tạo bảng

9


Blog: Tieudao.info
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

10


Blog: Tieudao.info

11



Blog: Tieudao.info
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
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;p
roperty=value]]
Trong đó


serverName là tên máy chủ hoặc địa chỉ IP của máy đang cài đặt
Microsoft SQL Server



instanceName tên của một thể hiện để kết nối đến serverName. Nếu
tham số này không được chỉ định thì default instance sẽ được sử dụng



portNumber là cỗng ứng dụng của SQL Server, mặc định là 1433

12


Blog: Tieudao.info


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

13


Blog: Tieudao.info



Chọn SQL Server and Windows Authencation mode

14


Blog: Tieudao.info

15


Blog: Tieudao.info


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

16



Blog: Tieudao.info


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

17


Blog: Tieudao.info


Đặt mật khẩu

18


Blog: Tieudao.info


Kích hoạt tài khoản sa bằng cách chọn Enable tại mục Login (mặc định
tài khoản này là disable)

5. Chương trình mẫu (Example program)
package jdbc;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;

import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
19


Blog: Tieudao.info
/**
*
* @author giasutinhoc.vn
*/
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);
if (conn != null) {
System.out.println("Connected");

DatabaseMetaData dm = (DatabaseMetaData) conn.getMetaData();
System.out.println("Driver name: " + dm.getDriverName());
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);

}
}
}
Khi chạy chương trình trên, chúng ta sẽ nhận được kết quả sau
20


Blog: Tieudao.info

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

21


Blog: Tieudao.info

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



tả

tóm

tắt

về Statement, PreparedStatement

và CallableStatement
JDBC Statements

Mục đích sử dụng
Hữu ích khi bạn đang sử dụng câu lệnh SQL
tĩnh khi chạy. Statement không chấp nhận

Statement


tham số (parameters).
PreparedStatement cho phép chỉ định tham số

PreparedStatement

đầu vào khi chạy.
Sử dụng khi bạn muốn truy cập stored
procedures. CallableStatement cũng chấp

CallableStatement

nhận tham số đầu vào khi chạy.

2. Đối tượng Statement (Statement Objects)
Tạo đối tượng Statement
Statement stmt = null;
try {
stmt = conn.createStatement( );
...
}
catch (SQLException e) {
...
}
22


Blog: Tieudao.info
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)
Statement stmt = null;
try {
stmt = conn.createStatement( );
...
}
catch (SQLException e) {
...
}
finally {
stmt.close();
}
JDBC Statement trong java – Ví dụ chương trình Java kết nối đến máy chủ localhost,

thực hiện truy cập vào cơ sở dữ liệu tên EMPDB sử dụng tài khoản sa, mật khẩu sa.
Ứng dụng thực hiện thêm mới (thực thi câu lệnh insert) một nhân viên vào
bảng Employee và thực hiện xem dữ liệu (thực thi câu lệnh select) của bảng này.
package jdbc;

23


Blog: Tieudao.info
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
*
* @author giasutinhoc.vn
*/
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;
Statement stmt = null;
try {
//Open a connection

System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL);

//Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();

24


Blog: Tieudao.info
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";
ResultSet rs = stmt.executeQuery(sql);

//Extract data from result set
while (rs.next()) {
//Retrieve by column name
int id = rs.getInt("id");
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);
}

//Clean-up environment
rs.close();
stmt.close();
conn.close();
25


×