YOMEDIA
ADSENSE
Bài giảng lập trình java - Bài 7
101
lượt xem 28
download
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ụ..
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng lập trình java - Bài 7
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn