YOMEDIA
JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING
Chia sẻ: Caohung Thu
| Ngày:
| Loại File: PDF
| Số trang:51
103
lượt xem
8
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
JDBC API là tập các Java API được sử dụng
để tương tác với cơ sở dữ liệu quan hệ.
● Công dụng
● Kết nối cơ sở dữ liệu quan hệ.
● Gửi các câu truy vấn đến cơ sở dữ liệu.
● Nhận và xử lý các kết quả trả về từ cơ sở dữ liệu
AMBIENT/
Chủ đề:
Nội dung Text: JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
JDBC
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 1
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Nội dung trình bày
● JDBC API
● Kiến trúc JDBC
● Thiết lập kết nối đến cơ sở dữ liệu
● Statement
● PreparedStatement
● CallableStatement
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 2
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
JDBC API
● JDBC API là tập các Java API được sử dụng
để tương tác với cơ sở dữ liệu quan hệ.
● Công dụng
● Kết nối cơ sở dữ liệu quan hệ.
● Gửi các câu truy vấn đến cơ sở dữ liệu.
● Nhận và xử lý các kết quả trả về từ cơ sở dữ liệu
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 3
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Kiến trúc JDBC
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 4
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Kiến trúc JDBC
● Khi làm việc với JDBD, java developer sẽ làm việc như nhau
đối với các hệ cơ sở dữ liệu khác nhau.
● Java developer không phụ thuộc vào một hệ cơ sở dữ liệu cụ
thể nào.
● Java developer không cần phải quan tâm đến sự khác nhau khi
giao tiếp với các hệ quản trị cơ sở dữ liệu quan hệ khác nhau.
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 5
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Thiết lập kết nối đến cơ sở dữ liệu
● Bước 1: Thêm thư viện JDBC Driver vào ứng dụng
● Bước 2: Đăng ký Driver - MySQL
Cách 1: Class.forName :
Class.forName(“org.gjt.mm.mysql.Driver”);
Cách 2: DriverManager.registerDriver
Driver driver = new org.gjt.mm.mysql.Driver()
DriverManager.registerDriver(driver);
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 6
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Thiết lập kết nối đến cơ sở dữ liệu
● MySQL
→ Database: bookonline
→ user: root , password: 123456
→ port: 3306 (default)
→ server: localhost
● Java
→ url: jdbc:mysql://localhost:3306/bookonline
→ user: root , password: 123456
→ characterEncoding: utf-8
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 7
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Thiết lập kết nối đến cơ sở dữ liệu
1 import java.sql.*;
2 import java.util.*;
1 Driver driver = new org.gjt.mm.mysql.Driver();
2 DriverManager.registerDriver(driver);
3 String
4 conString="jdbc:mysql://localhost:3306/BookOnline";
5 Properties info = new Properties();
6 info.setProperty("characterEncoding", "utf8");
7 info.setProperty("user", "root");
8 info.setProperty("password", "root");
9 Connection connection =
10 DriverManager.getConnection(conString, info);
11 . . .
12 connection.close();
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 8
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Thiết lập kết nối đến cơ sở dữ liệu
● Sau khi thiết lập kết nối đến cơ sở dữ liệu, có
thể
● Gửi các câu truy vấn đến cơ sở dữ liệu.
● Nhận và xử lý các kết quả trả về từ cơ sở dữ liệu.
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 9
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Các dạng Statement
● Statement: Thực hiện các câu truy vấn đơn
giản.
● PreparedStatement: Thực hiện các câu truy
vấn có các tham số đầu vào
● CallableStatement: Thực hiện các câu truy vấn
có các tham só đầu vào và đầu ra. Cụ thể là
các store procedure
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 10
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Statement
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 11
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Statement
● Statement: Thực hiện các câu truy vấn đơn
giản.
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 12
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Statement
● Cách tạo Statement đơn giản
Statement sm = con.createStatement();
● Các phương thức thường dùng
sm.executeQuery(sql); → select
sm.executeUpdate(sql); → insert,
update, delete, drop, create, …
sm.addBatch(sql) & sm.executeBatch()
→ Batch
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 13
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Statement - executeQuery
● ResultSet rs = sm.executeQuery(sql);
● ResultSet → forward : rs.next()
1 Statement statement = con.createStatement();
2 String sql = “SELECT * FROM DanhMuc”;
3 ResultSet rs = statement.executeQuery(sql);
4 while (rs.next()){
5 int maDanhMuc = rs.getInt(“MaDanhMuc”);
6 String tenDanhMuc = rs.getString(“tenDanhMuc”);
7 System.out.println(maDanhMuc+” “+tenDanhMuc);
8 }
9 rs.close();
10 sm.close();
11 con.close();
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 14
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Statement - executeQuery
● Forward & Backward
Statement sm=
connection.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
● ResultSet rs = sm.executeQuery(sql);
● ResultSet rs
→ forward : rs.next();
→ backward: rs.previous();
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 15
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Statement – executeUpdate
1 Statement sm = con.createStatement();
2 String sql = “DELETE FROM Sach WHERE MaDanhMuc= 1”;
3 int n = sm.executeUpdate (sql);
4 if (n >= 0){
5 System.out.println(n + “ Sách đã được xóa”);
6 }else{
7 System.out.println(“Lỗi”);
8 }
9 sm.close();
10 con.close();
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 16
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Statement – executeUpdate
1 Statement sm = con.createStatement();
2 String sql = String.format(“UPDATE DanhMuc
3 SET TenDanhMuc = '%s'”
4 WHERE MaDanhMuc= %d”,
5 maDanhMuc, tenDanhMuc);
6
7 int n = sm.executeUpdate (sql);
8 if (n >= 0){
9 System.out.println(“Cập nhật thành công”);
10 }else{
11 System.out.println(“Lỗi”);
12 }
13 sm.close();
14 con.close();
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 17
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Statement – executeUpdate
1 Statement sm = con.createStatement();
2 String sql = String.format(“INSERT INTO DanhMuc
3 (TenDanhMuc) VALUES('%s')”,tenDanhMuc);
4 int n = sm.executeUpdate (sql);
5 if (n >= 0){
6 System.out.println(“Thêm thành công”);
7 }else{
8 System.out.println(“Lỗi”);
9 }
10 sm.close();
11 con.close();
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 18
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Statement – executeUpdate
1 String tenDanhMuc = "C++";
2 String sql= String.format("INSERT INTO
3 DANHMUC(TENDANHMUC) VALUES '%s')", tenDanhMuc);
4 int n=sm.executeUpdate(sql,
5 Statement.RETURN_GENERATED_KEYS);
6 if(n>0){
7 System.out.println("Thêm thành công");
8 ResultSet rs=statement.getGeneratedKeys();
9 if(rs.next()){
10 int mdm = rs.getInt(1);
11 System.out.println("Mã danh mục vừa thêm:" +mdm);
12 }
13 }
14 sm.close();
15 con.close();
Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 19
- JAVA PROGRAMMING – 2012 - V2.1
JAVA PROGRAMMING
Statement – executeUpdate
1 String [] tenDanhMucs = {"C++", "C#", "Java"};
2 String sql="INSERT INTO DANHMUC(TENDANHMUC) VALUES ";
3 for(int i=0; i
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...