JDBC
Java 應用通過 JDBC 連接配接到資料庫執行有五步
- Register the driver class
- Creating connection
- Creating statement
- Executing queries
- 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 好的原因在于
-
提升性能
執行 sql 分四步
- Parsing of sql query
- Compile this Query
- optimization of data acquisition path
-
execute the query
PreparedStatement 隻需要做一次前三步,而 Statement 每次都要做前三步。
- 通過類型校驗,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