JDBC 簡介

目錄

  • JDBC 腦圖
  • 附:JDBC 應用案例、異常處理、批處理

JDBC

在這裏插入圖片描述

  • JDBC 應用案例
// 應用

import java.sql.*;

public class JdbcTest {
   // JDBC 驅動器名稱 和數據庫地址
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
   //數據庫的名稱爲 EXAMPLE
   static final String DB_URL = "jdbc:mysql://localhost/EXAMPLE";

   //  數據庫用戶和密碼
   static final String USER = "root";

   static final String PASS = "";

   public static void main(String[] args) {
       Connection conn = null;
       Statement stmt = null;
       try{
           //註冊 JDBC 驅動程序
           Class.forName("com.mysql.jdbc.Driver");

           //打開連接
           System.out.println("Connecting to database...");
           conn = DriverManager.getConnection(DB_URL,USER,PASS);

           //執行查詢
           System.out.println("Creating statement...");
           stmt = conn.createStatement();
           String sql;
           sql = "SELECT id, name, age FROM Students";
           ResultSet rs = stmt.executeQuery(sql);

           //得到和處理結果集
           while(rs.next()){
               //檢索
               int id  = rs.getInt("id");
               int age = rs.getInt("age");
               String name = rs.getString("name");

               //顯示
               System.out.print("ID: " + id);
               System.out.print(", Age: " + age);
               System.out.print(", Name: " + name);
               System.out.println();
           }
           //清理環境
           rs.close();
           stmt.close();
           conn.close();
       }catch(SQLException se){
           // JDBC 操作錯誤
           se.printStackTrace();
       }catch(Exception e){
           // Class.forName 錯誤
           e.printStackTrace();
       }finally{
           //這裏一般用來關閉資源的
           try{
               if(stmt!=null)
                   stmt.close();
           }catch(SQLException se2){
           }
           try{
               if(conn!=null)
                   conn.close();
           }catch(SQLException se){
               se.printStackTrace();
           }
       }
       System.out.println("Goodbye!");
   }
}
  • 異常處理
// 常見
java.sql.SQLException;
方法 描述
getErrorCode() 獲取此 SQLException 對象的特定於供應商的異常代碼
getNextException() 通過 setNextException(SQLException ex) 獲取鏈接到此 SQLException 對象的異常
getSQLState() 獲取此 SQLException 對象的 SQLState。對於 JDBC 驅動程序的錯誤,沒有有用的信息從該方法返回。對於一個數據庫錯誤,則返回五位 XOPEN SQLSTATE 代碼。這種方法可以返回 null
iterator() 返回在鏈接的 SQLExceptions 上進行迭代的迭代器
setNextException(SQLException ex) 將 SQLException 對象添加到鏈接的末尾
  • 批處理
// 批處理
// 創建 statement 對象
Statement stmt = conn.createStatement();

// 關閉自動提交
conn.setAutoCommit(false);

// 創建 SQL 語句
String SQL = "INSERT INTO Students (id, name, age) VALUES(6,'Mike', 21)";
// 將 SQL 語句添加到批處理中
stmt.addBatch(SQL);

// 創建更多的 SQL 語句
String SQL = "INSERT INTO Students (id, name, age) VALUES(7, 'Angle', 23)";
// 將 SQL 語句添加到 批處理中
stmt.addBatch(SQL);

// 創建整數數組記錄更新情況
int[] count = stmt.executeBatch();

//提交更改
conn.commit();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章