天天看點

JDBC 結構

JDBC

Java 應用通過 JDBC 連接配接到資料庫執行有五步

  1. Register the driver class
  2. Creating connection
  3. Creating statement
  4. Executing queries
  5. Closing connection

DriverManager class

DriverManager 類顧名思義,用來管理 driver。主要有注冊接口。getConnection 的時候用 DriverManager 目前的 classloader 嘗試順序加載注冊的 driver,加載到哪個用那個。

Connection Interface

一個 connection 是一次應用和資料庫的 session。也是 Statement, PreparedStatement, and DatabaseMetaData 的 factory。

管理這這次回話的送出,復原,關閉連接配接。

PreparedStatement interface

provides methods to execute queries with the database. The statement interface is a factory of ResultSet

PreparedStatement 比 Statement 好的原因在于

  1. 提升性能

    執行 sql 分四步

    1. Parsing of sql query
    2. Compile this Query
    3. optimization of data acquisition path
    4. execute the query

      PreparedStatement 隻需要做一次前三步,而 Statement 每次都要做前三步。

  2. 通過類型校驗,escapse 特殊字元防止 sql 注入
public class JdbcTest {
    public static void main(String args[]) {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con = DriverManager
                .getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle");
            PreparedStatement stmt = con.prepareStatement("insert into Emp values(?,?)");
            stmt.setInt(1, 101);
            stmt.setString(2, "Ratan");
            int i = stmt.executeUpdate();
            System.out.println(i + " records inserted");
            con.close();
        } catch (Exception e) {}
    }
}           

參考資料

Java JDBC Tutorial - javatpoint