intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng lập trình java - Bài 7

Chia sẻ: Nguyen Van Nam | Ngày: | Loại File: PDF | Số trang:15

101
lượt xem
28
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Cơ sở dữ liệu là tập hợp những dữ liệu có liên quan với nhau, cùng phục vụ các nhu cầu của nhiều người sử dụng. Cơ sở dữ liệu là tập hợp của nhiều loại bảng khác nhau và có liên quan với nhau Hệ quản trị CSDL (DBMS) là một hệ thống phần mềm phục vụ..

Chủ đề:
Lưu

Nội dung Text: Bài giảng lập trình java - Bài 7

  1. Bài gi ng L P TRÌNH JAVA Lê ðình Thanh B môn M ng và Truy n thông Máy tính Khoa Công ngh Thông tin Trư ng ð i h c Công ngh , ðHQGHN 1 Lê ðình Thanh, ng d ng CSDL Bài 7 ng d ng CSDL 2 Lê ðình Thanh, ng d ng CSDL
  2. N i dung • Mô hình ng d ng CSDL • S d ng JavaDB 3 Lê ðình Thanh, ng d ng CSDL Mô hình ng d ng CSDL • JDBC (Java Database Connectivity) cung c p các ñ i ng d ng Java tư ng logic: k t n i, l nh, và k t qu truy v n; ñư c thi t k ñ ch y ñ c l p v i HQT JDBC CSDL • Connector nh n l nh c a JDBC, d ch thành l nh c a DB Connector/ HQT CSDL và truy n (qua Driver m ng) cho HQT CSDL; nh n k t qu t HQT CSDL và truy n cho JDBC • HQT CSDL khác nhau v cách ti p nh n và x lý l nh, cũng H qu n tr CSDL như tr k t qu . Vì v y, ng v i m i HQT CSDL, các driver/connector tương ng ph i ñư c s d ng 4 Lê ðình Thanh, ng d ng CSDL
  3. Các bư c • Nh p gói sql • Ch n driver • K t n i CSDL • Thao tác CSDL T o ñ i tư ng l nh – – Th c hi n c p nh t T o ñ i tư ng k t qu – – Th c hi n truy v n – S d ng k t qu truy v n • ðóng k t n i 5 Lê ðình Thanh, ng d ng CSDL Nh p gói sql • Gói java.sql bao g m các l p cho thao tác CSDL, vì v y c n nh p các l p trong gói này vào ng d ng CSDL import java.sql.*; //nh p t t c các l p //ho c ch nh p các l p ñư c dùng import java.sql.DriverManager; import java.sql.Connection; import java.sql.Statement; import java.sql.ResultSet; 6 Lê ðình Thanh, ng d ng CSDL
  4. Ch n driver • Class.forName(driverName); HQT CSDL driverName MySQL com.mysql.jdbc.Driver SQL Server com.microsoft.sqlserver.jdbc.SQLServerDriver Derby org.apache.derby.jdbc.EmbeddedDriver JavaDB org.apache.derby.jdbc.EmbeddedDriver Oracle sql.oracle.OracleDriver sun.jdbc.odbc.JdbcOdbcDriver ODBC PostgreSQL org.postgresql.Driver 7 Lê ðình Thanh, ng d ng CSDL Ch n driver • N u driver ñư c cung c p d ng thư vi n (.jar), chúng ta ph i nh p thư vi n này vào chương trình. – Trong c a s Projects, b m ph i chu t vào Libraries c a d án ñang phát tri n, ch n Add JAR/Folder …, ch n t p .jar c n nh p r i ch n Open. • Ví d , n u s d ng JavaDB, chúng ta c n derby driver, do v y ph i nh p derby.jar hay derbyclient.jar trong thư m c Program Files\Sun\JavaDB\lib 8 Lê ðình Thanh, ng d ng CSDL
  5. K t n i CSDL • Connection conn = DriverManager.getConnection(dburl, username, password); trong ñó dburl là ñ a ch và tên CSDL, có d ng “jdbc:xxx://IP:port//db”, xxx ph thu c vào HQT CSDL, db là tên CSDL HQT CSDL xxx MySQL mysql Derby, JavaDB derby 9 Lê ðình Thanh, ng d ng CSDL C p nh t d li u • Statement stmt = conn.createStatement(); • int nor = stmt.executeUpdate(sql); sql là l nh update, insert, delete, alter, … c a SQL Hàm tr v s b n ghi ñư c c p nh t. Ví d : stmt.executeUpdate(“update Sinhvien set hoten=\‘Tr n Nguyên\’ where masv=\’1\’”); 10 Lê ðình Thanh, ng d ng CSDL
  6. Truy v n d li u • Statement stmt = conn.createStatement(); • ResultSet rs = stmt.executeQuery(“select … ”); Ví d : ResultSet rs = stmt.executeQuery(“select * from Sinhvien where gioitinh=\’M\’”); 11 Lê ðình Thanh, ng d ng CSDL Truy v n d li u (ti p) • ResultSet – lưu k t qu truy v n dư i d ng danh sách các b n ghi v i m t con tr di chuy n ñư c ban ñ u tr v ñ u danh sách (trư c b n ghi ñ u tiên) – cung c p các phương th c ñ duy t danh sách – di chuy n con tr • next() – chuy n sang b n ghi k ti p và tr v true n u còn b n ghi phía sau, ngư c l i tr v false • previous(), fist(), last(), beforeFirst(), afterLast(). 1 2 97 ------------------- next -------------------- ------------------ Tr n Nguyên Tân Th Trang Tr nh T n ------------------- -------------------- ------------------ beforeFirst afterLast M F M first last con tr cho bi t B n ghi hi n t i 12 Lê ðình Thanh, ng d ng CSDL
  7. Truy v n d li u (ti p) • ResultSet – và các phương th c getXXX(tên_trư ng) ñ c giá tr t ng trư ng c a b n ghi hi n t i – ñang ñư c tr b i con tr , v i XXX là ki u d li u c a trư ng. – Ví d • rs.getInt(“masv”) => 2 • rs.getString(“hoten”) => “Tân Th Trang” • rs.getChar(“gioitinh”) => ‘F’ 1 2 97 ------------------- next -------------------- ------------------ Tr n Nguyên Tân Th Trang Tr nh T n beforeFirst ------------------- -------------------- ------------------ afterLast M F M first last con tr cho bi t B n ghi hi n t i 13 Lê ðình Thanh, ng d ng CSDL Truy v n d li u (ti p) try { Statement stmt = conn.createStatement(); Các l nh thao ResultSet rs = stmt.executeQuery(“select … ”); tác CSDL có while (rs.next()) th gây ngo i { l , vì v y c n int ma = rs.getInt(“masv”); ñư c b t và String ht = rs.getString(“hoten”); x lý Char gt = rs.getChar(“gioitinh”); System.out.println(ma + “\t” + ht + “\t” + gt); } }catch(Exception excp) { System.out.println(“Loi truy van”); } 14 Lê ðình Thanh, ng d ng CSDL
  8. L nh ñư c chu n b trư c • PreparedStatement ñư c dùng thay Statement ñ tăng t c ñ x lý – C u trúc l nh sql ñư c cung c p trư c cho PreparedStatement như m t hàm ñư c d ch trư c – Cung c p các tham s cho PreparedStatement trư c khi th c thi như g i hàm PreparedStatement pstmt = con.preparedStatement("UPDATE Sinhvien SET hoten = ? WHERE masv= ? "); pstmt.setStringt(1, “Tôn Nh t ð i”); pstmt .setString(2, 14); pstmt.executeUpdate(); 15 Lê ðình Thanh, ng d ng CSDL S d ng stored procedure • CallableStatement là l p k th a PreparedStatement dùng ñ tri u g i các stored procedure c a CSDL nh m tăng t c ñ x lý c DB Server và chương trình CallableStatement cs = conn.prepareCall("{call ALL_STUDENT}"); ResultSet rs = cs.executeQuery(); 16 Lê ðình Thanh, ng d ng CSDL
  9. S d ng giao tác • Giao tác (transaction) ñư c s d ng ñ ñ m b o tính toàn v n c a d li u – M t giao tác thư ng bao g m nhi u l nh – Khi giao tác ñư c xác nh n (commit), t t c các l nh thu c giao tác có hi u l c – N u giao tác b h y b (rollback), t t c các l nh ñ u không ñư c th c hi n – Giao tác = t p các l nh ho c cùng ñư c th c hi n ho c cùng không ñư c th c hi n • H i: Vì sao giao tác ñ ñ m b o tính toàn v n c a d li u? Cho ví d . 17 Lê ðình Thanh, ng d ng CSDL S d ng giao tác conn.setAutoCommit(false); PreparedStatement updateSales = con.prepareStatement("UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ?"); updateSales.setInt(1, 50); updateSales.setString(2, "Colombian"); updateSales.executeUpdate(); PreparedStatement updateTotal = con.prepareStatement("UPDATE COFFEES SET TOTAL = TOTAL + ? WHERE COF_NAME LIKE ?"); updateTotal.setInt(1, 50); updateTotal.setString(2, "Colombian"); updateTotal.executeUpdate(); conn.commit(); conn.setAutoCommit(true); H i: Cơ ch th c hi n giao tác? 18 Lê ðình Thanh, ng d ng CSDL
  10. S d ng giao tác con.setAutoCommit(false); Statement stmt = conn.createStatement(); int rows = stmt.executeUpdate("INSERT INTO TAB1 (COL1) VALUES " + "(?FIRST?)"); Savepoint svpt1 = conn.setSavepoint("SAVEPOINT_1"); rows = stmt.executeUpdate("INSERT INTO TAB1 (COL1) " + "VALUES (?SECOND?)"); ... conn.rollback(svpt1); …. con.commit(); con.setAutoCommit(true); 19 Lê ðình Thanh, ng d ng CSDL T o CSDL JavaDB 20 Lê ðình Thanh, ng d ng CSDL
  11. T o CSDL JavaDB (ti p) 21 Lê ðình Thanh, ng d ng CSDL K t n i CSDL JavaDB 22 Lê ðình Thanh, ng d ng CSDL
  12. T o b ng 23 Lê ðình Thanh, ng d ng CSDL T o b ng (ti p) 24 Lê ðình Thanh, ng d ng CSDL
  13. Ch y l nh SQL 25 Lê ðình Thanh, ng d ng CSDL Ch y l nh SQL (ti p) 26 Lê ðình Thanh, ng d ng CSDL
  14. Ch y l nh SQL (ti p) 27 Lê ðình Thanh, ng d ng CSDL T o view 28 Lê ðình Thanh, ng d ng CSDL
  15. T o view (ti p) 29 Lê ðình Thanh, ng d ng CSDL Ti p theo T o giao di n ñ h a 30 Lê ðình Thanh, ng d ng CSDL
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2