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

JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING potx

51 363 1

Đ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 51
Dung lượng 246,89 KB

Nội dung

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 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 sở liệu ● Statement ● PreparedStatement ● CallableStatement Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING JDBC API ● ● JDBC API tập Java API sử dụng để tương tác với sở liệu quan hệ Công dụng ● Kết nối sở liệu quan hệ ● Gửi câu truy vấn đến sở liệu ● Nhận xử lý kết trả từ sở liệu Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING Kiến trúc JDBC Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING Kiến trúc JDBC ● ● ● Khi làm việc với JDBD, java developer làm việc hệ sở liệu khác Java developer không phụ thuộc vào hệ sở liệu cụ thể Java developer không cần phải quan tâm đến khác giao tiếp với hệ quản trị sở liệu quan hệ khác Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING Thiết lập kết nối đến sở 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 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING Thiết lập kết nối đến sở 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 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING Thiết lập kết nối đến sở liệu import java.sql.*; import java.util.*; 10 11 12 Driver driver = new org.gjt.mm.mysql.Driver(); DriverManager.registerDriver(driver); String conString="jdbc:mysql://localhost:3306/BookOnline"; Properties info = new Properties(); info.setProperty("characterEncoding", "utf8"); info.setProperty("user", "root"); info.setProperty("password", "root"); Connection connection = DriverManager.getConnection(conString, info); connection.close(); Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING Thiết lập kết nối đến sở liệu ● Sau thiết lập kết nối đến sở liệu, ● Gửi câu truy vấn đến sở liệu ● Nhận xử lý kết trả từ sở liệu Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING Các dạng Statement ● ● ● Statement: Thực câu truy vấn đơn giản PreparedStatement: Thực câu truy vấn có tham số đầu vào CallableStatement: Thực câu truy vấn có tham só đầu vào đầu Cụ thể store procedure Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 10 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING CallableStatement ● CallableStatement: Thực câu truy vấn có tham só đầu vào đầu Cụ thể store procedure Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 37 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING CallableStatement ● Cách tạo CallableStatement đơn giản CallableStatement cs = con.prepareCall(sql); ● Các phương thức thường dùng cs.setXXX(index, value); → XXX : int, string, cs.executeQuery(); → select cs.executeUpdate(); → insert, update, delete, drop, create, … cs.addBatch() & cs.executeBatch() → Batch Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 38 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING CallableStatement - Store Procedure 10 DELIMITER$$ CREATE PROCEDURE spTimKiemSach ( in iGiaBan float,in iTenSach VARCHAR (45) ) BEGIN SELECT * FROM Sach WHERE GiaBan < iGiaBan AND TenSach LIKE iTenSach END Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 39 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING CallableStatement - executeQuery ● ResultSet rs = sm.executeQuery(); ● ResultSet → forward : rs.next() 10 11 12 String sql = “{call spTimKiemSach(?,?)}”; CallableStatement cs = con.prepareCall(sql); cs.setDouble(1, 2000); cs.setString(2, “%java%”); ResultSet rs = cs.executeQuery(); while (rs.next()){ int maSach = rs.getInt(“MaSach”); } rs.close(); cs.close(); con.close(); Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 40 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING CallableStatement - executeQuery ● Forward & Backward CallableStatement cs = con.prepareCall( sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); ● cs.setXXX(index, value); ● ResultSet rs = cs.executeQuery(); ● ResultSet rs → forward : rs.next(); → backward: rs.previous(); Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 41 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING CallableStatement - Store Procedure DELIMITER$$ CREATE PROCEDURE spXoaDanhMuc ( in iMaDanhMuc int) BEGIN DELETE FROM Sach WHERE MaDanhMuc = iMaDanhMuc END Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 42 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING CallableStatement – executeUpdate 10 11 String sql = “{call spXoaDanhMuc(?)}”; CallableStatement cs = con.prepareCall(sql); ps.setInt(1, 1); int n = cs.executeUpdate (); if (n >= 0){ System.out.println(n + “ Sách xóa”); }else{ System.out.println(“Lỗi”); } cs.close(); con.close(); Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 43 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING CallableStatement - Store Procedure DELIMITER$$ CREATE PROCEDURE spThemDanhMuc ( in iMaDanhMuc int) BEGIN INSERT INTO DANHMUC(TENDANHMUC) VALUES (iTenDanhMuc) END Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 44 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING PreparedStatement – executeBatch String sql="{call spXoaDanhMuc(?)}"; CallableStatement cs = con.prepareStatement(sql); cs.setString(1, “Java”); cs.addBatch(); cs.setString(1, “PHP”); cs.addBatch(); cs.setString(1, “C++”); cs.addBatch(); int [] n = cs.executeBatch(); Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 45 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING Statement - SQLException try{ }catch(SQLException ex){ }finally{ con.close(); } Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 46 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING CallableStatement - Store Procedure DELIMITER$$ CREATE PROCEDURE spThemDanhMuc ( in tenDanhMuc VARCHAR (45) ) BEGIN INSERT INTO DANHMUC(TENDANHMUC) VALUES (tenDanhMuc); SELECT LAST_INSERT_ID(); END Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 47 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING CallableStatement 10 String tenDanhMuc = "C++"; CallableStatement cs = con.prepareCall( "{call spThemDanhMuc(?)}"); cs.setString(1, tenDanhMuc); cs.execute(); ResultSet rs = cs.getResultSet(); if (rs.next()) { int maDanhMuc = rs.getInt(1); System.out.println(maDanhMuc); } Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 48 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING CallableStatement - Store Procedure DELIMITER$$ CREATE PROCEDURE spThemDanhMuc ( in tenDanhMuc VARCHAR (45), out maDanhMuc int) BEGIN INSERT INTO DANHMUC(TENDANHMUC) VALUES (tenDanhMuc); SET maDanhMuc = LAST_INSERT_ID(); END Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 49 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING CallableStatement - Store Procedure String tenDanhMuc = "C++"; CallableStatement cs = con.prepareCall("{call spThemDanhMuc (?, ?)}"); cs.setString(1, tenDanhMuc); cs.registerOutParameter(2,Types.INTEGER); cs.executeUpdate(); int maDanhMuc = cs.getInt(2); System.out.println(maDanhMuc); Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 50 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING HỎI VÀ ĐÁP Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 51 ... Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING Kiến trúc JDBC Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING. .. 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. .. nhanh@fit.hcmus.edu.vn - ĐHKHTN 22 JAVA PROGRAMMING – 2012 - V2.1 JAVA PROGRAMMING Statement ● Statement: Thực câu truy vấn đơn giản? Nguyễn Hoàng Anh - nhanh@fit.hcmus.edu.vn - ĐHKHTN 23 JAVA PROGRAMMING – 2012 -

Ngày đăng: 18/03/2014, 22:20

TỪ KHÓA LIÊN QUAN

w