xu ly ngoai le trong jdbc

3 122 0
xu ly ngoai le trong jdbc

Đang tải... (xem toàn văn)

Thông tin tài liệu

http://vietjack.com/java_jdbc/index.jsp                                                                                                              Copyright  ©  vietjack.com     SQLException: Xử lý ngoại lệ JDBC Ngoại lệ (Exception) tình trạng bất thường xảy thực thi chương trình Xử lý ngoại lệ (Exception Handling) giúp bạn xử lý điều kiện bất thường Lớp SQLException JDBC Trong JDBC, lớp java.sql.SQLException cung cấp nhiều phương thức để xử lý ngoại lệ xảy cho Driver Database Đây lớp JDBC, chịu trách nhiệm xử lý ngoại lệ Khi điều kiện bất thường xuất hiện, Exception ném Khái niệm ném (thrown) nghĩa thực thi chương trình dừng lại luồng điều khiển chuyển tiếp tới mệnh đề catch gần Nếu khơng có mệnh đề catch nào, thực thi chương trình kết thúc Dưới phương thức đối tượng SQLException để cung cấp thông tin Exception: public String getSQLState() Lấy SQL State cho đối tượng SQLException Với lỗi liên quan tới Driver, phương thức khơng trả thơng tin hữu ích Tuy nhiên, với lỗi liên quan tới Database, code gồm ký số miêu tả XOPEN SQLstate trả Phương thức trả null public int getErrorCode() Trả số hiệu lỗi liên kết với Exception public SQLException getNextException() Lấy đối tượng Exception Exception Chain thiết lập phương thức setNextException public void setNextException(SQLException ex) Thêm đối tượng SQLException tới phần cuối Chain public Iterator iterator() http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí     http://vietjack.com/java_jdbc/index.jsp                                                                                                              Copyright  ©  vietjack.com     Trả iterator qua dãy SQLException Iterator lặp qua SQLException nguyên nhân gây ngoại lệ public void printStackTrace() In ngoại lệ backtrace tới luồng lỗi chuẩn (Standard Error Stream) public void printStackTrace(PrintStream s) In ngoại lệ backtrace tới Print Stream bạn xác định Bằng việc lợi dụng thơng tin từ phương thức trên, bạn bắt Exception tiếp tục thực thi chương trình cách thích hợp Dưới form chung khối trycatch-finally: try { // Phan code ma ban nghi ngo rang se xuat hien loi nen dat o day!!! } catch(Exception ex) { // Ban xu ly ngoai le tai day } finally { // Phan code luon duoc thuc thi } Ví dụ xử lý ngoại lệ JDBC Dưới ví dụ minh họa cách sử dụng khối try-catch-finally cách sử dụng phương thức để xử lý ngoại lệ package com.vietjack.jdbc; //Buoc 1: Ban can inport cac package can thiet import java.sql.*; public class ViDuJDBC { // Ten cua driver va dia chi URL cua co so du lieu static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/sinhvien"; // Ten nguoi dung va mat khau cua co so du lieu static final String USER = "root"; static final String PASS = "123456"; public static void main(String[] args) { Connection conn = null; try{ // Buoc 2: Dang ky Driver Class.forName("com.mysql.jdbc.Driver"); // Buoc 3: Mo mot ket noi System.out.println("Dang ket noi toi co so du lieu "); conn = DriverManager.getConnection(DB_URL,USER,PASS); // Buoc 4: Thuc thi truy van System.out.println("Tao cac lenh truy van SQL "); Statement stmt = conn.createStatement(); String sql; sql = "SELECT mssv, ho, ten, diemthi FROM sinhvienk60"; ResultSet rs = stmt.executeQuery(sql); // Buoc 5: Lay du lieu tu Result Set while(rs.next()){ // Lay du lieu boi su dung ten cot int mssv = rs.getInt("mssv"); int diemthi = rs.getInt("diemthi"); String ho = rs.getString("ho"); String ten = rs.getString("ten"); // Hien thi cac gia tri System.out.print("\nMSSV: " + mssv); System.out.print("\nHo: " + ho); System.out.println("\nTen: " + ten); System.out.print("\nDiem Thi: " + diemthi); System.out.print("\n================="); } // Buoc 6: Don sach moi truong va giai phong resource rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ // Xu ly cac loi cho JDBC se.printStackTrace(); }catch(Exception e){ // http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí     http://vietjack.com/java_jdbc/index.jsp                                                                                                              Copyright  ©  vietjack.com     Xu ly cac loi cho Class.forName e.printStackTrace(); }finally{ // Khoi finally duoc su dung de dong cac resource try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); }// Ket thuc khoi finally }// Ket thuc khoi try System.out.println("\nVietJack chuc cac ban hoc tot!"); }// Ket thuc main }// Ket thuc ViDuJDBC Sao chép dán ví dụ ViDuJDBC.java, sau biên dịch thực thi chương trình Java Nếu khơng có vấn đề xảy ra, chương trình cho kết sau Nếu có lỗi nào, chương trình bắt hiển thị thơng báo tương ứng lỗi Bạn thử lại ví dụ cung cấp sai tên database username sai password, sau kiểm tra kết Chẳng hạn, cung cấp mật 123455, chạy chương trình cho kết dạng:   http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí     ... form chung khối trycatch-finally: try { // Phan code ma ban nghi ngo rang se xuat hien loi nen dat o day!!! } catch(Exception ex) { // Ban xu ly ngoai le tai day } finally { // Phan code luon duoc... java.sql.*; public class ViDuJDBC { // Ten cua driver va dia chi URL cua co so du lieu static final String JDBC_ DRIVER = "com.mysql .jdbc. Driver"; static final String DB_URL = "jdbc: mysql://localhost/sinhvien";... truong va giai phong resource rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ // Xu ly cac loi cho JDBC se.printStackTrace(); }catch(Exception e){ // http://vietjack.com/      

Ngày đăng: 02/12/2017, 22:47

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan