1. Trang chủ
  2. » Cao đẳng - Đại học

SLIDE MÔN JAVA - CHƯƠNG 7 - TRUY CẬP CƠ SỞ DỮ LIỆU VỚI JDBC

47 525 2

Đ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 47
Dung lượng 823,5 KB

Nội dung

LẬP TRÌNH JAVA Chương TRUY CẬP SỞ DỮ LIỆU VỚI JDBC GV: Đoàn Thanh Sơn Nội dung  Giới thiệu JDBCJDBC Drivers  Thiết lập kết nối Database  Tạo câu lệnh truy vấn  Thực thi câu truy vấn xử lý kết  Ví dụ  Transaction 2/25 Giới thiệu JDBC  Viết tắt Java Database Connectivity  JDBC API thư viện chứa lớp giao diện hỗ trợ lập trình viên Java kết nối truy cập đến hệ sở liệu  Các chức • Thiết lập kết nối đến Database • Tạo câu lệnh truy vấn SQL • Thực thi câu lệnh truy vấn • Xem sửa đổi kết truy vấn 3/25 Cấu trúc JDBC  kiến trúc JDBC gồm tầng: • tầng JDBC API: chuyển câu lệnh SQL cho quản lý trình điều khiển JDBC • tầng JDBC Driver thực nhiệm vụ liên hệ với trình điều khiển hệ quản trị sở liệu cụ thể 4/25 JDBC Driver    Trình điều khiển JDBC đoạn chương trình, nhà xây dựng hệ quản trị CSDL nhà cung ứng thứ ba cung cấp khả yêu cầu hệ quản trị CSDL cụ thể thực câu lệnh SQL Danh sách trình điều khiển JDBC cho hệ quản trị CSDL khác Sun cung cấp cập nhật liên tục địa chỉ: http://industry.java.sun.com/products/jdbc/drivers JDBC Driver  loại JDBC Driver • Loại 1: JDBC/ODBC • Loại 2: Native-API • Loại 3: Open Protocol-Net • Loại 4: Proprietary-Protocol-Net Loại 1: JDBC/ODBC    jdk hỗ trợ cầu nối jdbc-odbc sử dụng phổ biến ngày đầu Java xuất Trình điều khiển loại cung cấp kèm J2SE với tên: sun.jdbc.odbc.JdbcOdbcDriver Loại 2: Native API Driver    Chuyển lời gọi JDBC API sang thư viện hàm (API) tương ứng với hệ CSDL cụ thể Do nhà xây dựng hệ CSDL cung cấp Để thề thi hành chương trình cần phải mã lệnh để làm việc với hệ CSDL cụ thể kèm với chương trình Loại 3: JDBC-Net Driver    Chuyển lời gọi JDBC API sang dạng chuẩn độc lập với hệ CSDL Sau chuyển sang lời gọi hệ CSDL cụ thể chương trình trung gian Do nhà cung ứng thứ Không cần mã lệnh kèm theo trình điều khiển để truy cập đến nhiều hệ CSDL khác Loại 4: Native Protocol Driver  100% java khả giao tiếp trực tiếp với hệ CSDL không cần chuyển đổi Thực thi câu truy vấn  Sử dụng phương thức • boolean execute(String SQL): trả lại true kết trả câu lệnh truy vấn ResultSet • int executeUpdate(String SQL): trả lại số row bị ảnh hưởng, sử dụng cho Insert, Update, Delete • ResultSet executeQuery(String SQL): trả lại đối tượng ResultSet, sử dụng cho Select Ví dụ ResultSet rs = statement.executeQuery(“select * from tblEmployer”); int n=statement.executeUpdate(“update tblEmployer set age=’40’ where id=‘1’ ”); 33/25 Bước 4: Xử lý kết trả  ResultSet cung cấp phương thức để xử lý kết trả từ câu lệnh SQL  ResultSet chứa liệu theo dạng Table  Truy cập hàng liệu cách di chuyển trỏ ResultSet  Ban đầu, trỏ hàng 34/25 Bước 4: Xử lý kết trả  Các loại ResultSet (ResultSet Types): xét loại trỏ phản ánh thay đổi liệu • ResultSet.TYPE_FORWARD_ONLY (mặc định): trỏ dịch chuyển tiến đến ResultSet • ResultSet.TYPE_SCROLL_INSENSITIVE: trỏ dịch chuyển đến lùi, ResultSet không cập nhật thay đổi Database sau tạo • ResultSet.TYPE_SCROLL_SENSITIVE: trỏ dịch chuyển đến lùi, ResultSet cập nhật thay đổi Database sau tạo 35/25 Bước 4: Xử lý kết trả  Các loại ResultSet (ResultSet Concurrency): xét chức thay đổi liệu • ResultSet.CONCUR_READ_ONLY (mặc định): ResultSet đọc • ResultSet.CONCUR_UPDATABLE: ResultSet thay đổi liệu 36/25 Bước 4: Xử lý kết trả  Loại ResultSet xác định đồng thời lúc tạo đối tượng statement • createStatement(int RSType, int RSConcurrency); • prepareStatement(String SQL, int RSType, int RSConcurrency); • prepareCall(String SQL, int RSType, int RSConcurrency); RSType: định ResultSet Types RSConcurrency: định ResultSet Concurrency 37/25 Bước 4: Xử lý kết trả  Ví dụ Statement stmt = conn.createStatement( ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);  Các loại phương thức ResultSet • Các phương thức di chuyển trỏ • Các phương thức lấy liệu ResultSet • Các phương thức cập nhật liệu 38/25 Bước 4: Xử lý kết trả  Các phương thức di chuyển trỏ public void beforeFirst() throws SQLException  di chuyển đến vị trí bắt đầu ResultSet public void afterLast() throws SQLException  di chuyển đến vị trí cuối ResultSet public boolean first() throws SQLException  di chuyển đến hàng public void last() throws SQLException  public boolean absolute(int row) throws SQLException  public boolean relative(int row) throws SQLException  di chuyển đến hàng cuối di chuyển đến hàng định public boolean previous() throws SQLException  public boolean next() throws SQLException  di chuyển đến hàng đứng phía trước public int getRow() throws SQLException  trả lại vị trí hàng mà trỏ đến public void moveToInsertRow() throws SQLException  public void moveToCurrentRow() throws SQLException  di chyển đến hàng để chèn liệu Vị trí lưu lại di chuyển lại vị trí cũ trỏ đến vị trí hàng vừa chen39/25 di chuyển đến hàng cách row hàng từ vị trí tại, row dương di chuyển cuối ResultSet ngược lại di chuyển đến hàng Bước 4: Xử lý kết trả  Các phương thức lấy liệu ResultSet • getXXX(String columnName) throws SQLException • getXXX(int columnIndex) throws SQLException XXX: kiểu tương ứng liệu columnName: tên cột ResultSet columnIndex: số cột ResultSet, 40/25 Câu lệnh insert public void addMovie(Movie movie){ System.out.println(“Adding movie: “ + movie.toString()); try{ Statement addMovie = connection.createStatement(); String sql = “INSERT INTO Movies VALUES(“ + movie.getNumber() + “, “ + “‘“ + movie.getMovieTitle() + “‘, “ + “‘“ + movie.getCategory() + “‘, “ + “‘“ + movie.getFormat() + “‘)”; System.out.println(“Executing statement: “ + sql); addMovie.executeUpdate(sql); addMovie.close(); System.out.println(“Movie added successfully!”); } catch(SQLException e){ e.printStackTrace(); }}} 41/25 Câu lệnh insert Movie [] movies = new Movie[6]; movies[0] = new Movie(1, “Star Wars: A New Hope”, “Science Fiction”, “DVD”); movies[1] = new Movie(2, “Citizen Kane”, “Drama”, “VHS”); movies[2] = new Movie(3, “The Jungle Book”, “Children”, “VHS”); movies[3] = new Movie(4, “Dumb and Dumber”, “Comedy”, “DVD”); movies[4] = new Movie(5, “Star Wars: Attack of the Clones”, “Science Fiction”, “DVD”); movies[5] = new Movie(6, “Toy Story”, “Children”, “DVD”); 42/25 Câu lệnh insert for(int i = 0; i < movies.length; i++){ db.addMovie(movies[i]); } System.out.println(“Closing the connection ”); connection.close(); } catch(Exception e){ e.printStackTrace(); }}} 43/25 Bước 4: Xử lý kết trả  Các phương thức cập nhật liệuCập nhật liệu ResultSet public void updateXXX(int columnIndex, XXX s) throws SQLException  public void updateXXX(String columnName, XXX s) throws SQLException  • Cập nhật liệu từ ResultSet đến Database public void updateRow() Cập nhật thay đổi hàng ResultSet đến Database public void deleteRow() Xóa hàng Database public void refreshRow() Lấy liệu Database vào ResultSet public void cancelRowUpdates() Hủy bỏ thay đổi liệu vừa thực public void insertRow() Chèn liệu hàng ResultSet vào Database 44/25 Bước 5: Đóng kết nối  Sử dụng phương thức close()  Ví dụ rs.close(); stmt.close(); conn.close(); 45/25 Transaction  Transaction: khối thao tác cần thực tương ứng với  Kết nối JDBC mặc định chế độ auto-commit: câu lệnh SQL hoàn thành riêng lẻ  Một transaction bắt đầu chấm dứt chế độ auto-commit kết thúc đối tượng kết nối thực phương thức commit() 46/25 Transaction  Các phương thức • conn.setAutoCommit(false): tắt chế độ auto-commit • conn.commit(): xác nhận thay đổi đến Database kết thúc transaction • conn.rollback(): hủy bỏ tất thay đổi Database từ vị trí bắt đầu transaction 47/25 ... trình viên Java kết nối truy cập đến hệ sở liệu  Các chức • Thiết lập kết nối đến Database • Tạo câu lệnh truy vấn SQL • Thực thi câu lệnh truy vấn • Xem sửa đổi kết truy vấn 3/25 Cấu trúc JDBC ... 4: Proprietary-Protocol-Net Loại 1: JDBC/ ODBC    jdk hỗ trợ cầu nối jdbc- odbc sử dụng phổ biến ngày đầu Java xuất Trình điều khiển loại cung cấp kèm J2SE với tên: sun .jdbc. odbc.JdbcOdbcDriver... cung cấp cập nhật liên tục địa chỉ: http://industry .java. sun.com/products /jdbc/ drivers JDBC Driver  Có loại JDBC Driver • Loại 1: JDBC/ ODBC • Loại 2: Native-API • Loại 3: Open Protocol-Net •

Ngày đăng: 23/06/2017, 20:17

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w