PreparedStatement是 預先編譯的語句,而Statement則 不是預先編譯的,在DBMS中處理管理中 Statement是要進行語法、語義校驗的,而PreparedStatement則只在第一次執行時須要。java
PrepareStatement中執行的SQL語句中是能夠帶參數的,而Statement則不能夠。好比:服務器
PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?");
pstmt.setBigDecimal(1, 153833.00);
pstmt.setInt(2, 110592);
pstmt.executeUpdate();
複製代碼
當處理批量SQL語句時,這個時候就能夠體現PrepareStatement的優點,因爲採用Cache機制,則預先編譯的語句,就會放在Cache中,下次執行相同SQL語句時,則能夠直接從Cache中取出來。spa
J2EE 服務器啓動時會 創建必定數量的池鏈接,並一直維持很多於此數目的池鏈接。客戶端程序須要鏈接時,池驅動程序會 返回一個未使用的池鏈接並將其表記爲忙。若是當前沒有空閒鏈接,池驅動程序就新建必定數量的鏈接,新建鏈接的數量有配置參數決定。當使用的池鏈接調用完成後,池驅動程序將此鏈接表記爲空閒,其餘調用就能夠使用這個鏈接。code