1 關於PreparedStatement和Statement具體區別
-
PreparedStatement是 預先編譯的語句,而Statement則 不是預先編譯的,在DBMS中處理管理中 Statement是要進行語法、語義校驗的,而PreparedStatement則只在第一次執行時需要。
-
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中取出來。
2 說出資料連線池的工作機制是什麼?
J2EE 伺服器啟動時會 建立一定數量的池連線,並一直維持不少於此數目的池連線。客戶端程式需要連線時,池驅動程式會 返回一個未使用的池連線並將其表記為忙。如果當前沒有空閒連線,池驅動程式就新建一定數量的連線,新建連線的數量有配置引數決定。當使用的池連線呼叫完成後,池驅動程式將此連線表記為空閒,其他呼叫就可以使用這個連線。