1. 程式人生 > 其它 >【JDBC】API詳解

【JDBC】API詳解

DriverManager 作用

作用就以下兩個:

  1. 註冊驅動
  2. 獲取資料庫連線

註冊驅動

Class.forName("com.mysql.cj.jdbc.Driver");

Driver 類原始碼如下,其中有一個靜態程式碼塊,真正的註冊驅動是由DriverManager.registerDriver(new Driver());語句執行,該靜態程式碼塊可以隨著Driver類的載入自動執行。

public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    public Driver() throws SQLException {
    }

    static {
        try {
            DriverManager.registerDriver(new Driver());
        } catch (SQLException var1) {
            throw new RuntimeException("Can't register driver!");
        }
    }
}

注:mysql5之後的jar包可以不用寫Class.forName();方法來註冊驅動,可以省略,它會自動載入jar包中META-INF/services/java.sql.Driver檔案中的驅動類

獲取連線

static Connection getConnection(String url,String user,String password);

引數

  1. url:連線路徑,有固定語法
  • 語法:jdbc:mysql://ip地址(域名):埠號/資料庫名稱?引數鍵值對1&引數鍵值對2...
  • 舉例:jdbc:mysql://localhost:3306/db1
  • 細節:
    如果連線的是本機的mysql伺服器,ip地址可以寫:127.0.0.1,或者寫域名為localhost,如果同時mysql的埠號為預設的3306,那麼url可以簡寫為:jdbc:mysql:///資料庫名稱?引數鍵值對

    配置useSSL=false引數,禁用安全連線方式(就是可能會出現提示說建議採用SSL方式的連線,但是由於沒有遇到就不寫了),解決警告提示
  1. user:使用者名稱
  2. password:密碼

Connection

作用:

  1. 獲取執行SQL的物件
  2. 管理事務

獲取執行SQL物件

  • 普通執行SQL物件
Statement createStatement()
  • 預編譯SQL的執行SQL物件,防止SQL注入
PreparedStatement prepareStatement(sql)
  • 執行儲存過程的物件
CallableStatement prepareCall(sql)

事務管理

  • MySQL事務管理
    開啟事務
    :BEGIN;/START TRANSACTION;
    提交事務:COMMIT;
    回滾事務:ROLLBACK