技術問答集錦(八)MyBatis系列

1 關於PreparedStatement和Statement具體區別

  1. PreparedStatement是 預先編譯的語句,而Statement則 不是預先編譯的,在DBMS中處理管理中 Statement是要進行語法、語義校驗的,而PreparedStatement則只在第一次執行時須要。java

  2. PrepareStatement中執行的SQL語句中是能夠帶參數的,而Statement則不能夠。好比:服務器

    PreparedStatement pstmt  =  con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?");
    pstmt.setBigDecimal(1, 153833.00);
    pstmt.setInt(2, 110592);
    pstmt.executeUpdate();
    複製代碼
  3. 當處理批量SQL語句時,這個時候就能夠體現PrepareStatement的優點,因爲採用Cache機制,則預先編譯的語句,就會放在Cache中,下次執行相同SQL語句時,則能夠直接從Cache中取出來spa

2 說出數據鏈接池的工做機制是什麼?

J2EE 服務器啓動時會 創建必定數量的池鏈接,並一直維持很多於此數目的池鏈接。客戶端程序須要鏈接時,池驅動程序會 返回一個未使用的池鏈接並將其表記爲忙。若是當前沒有空閒鏈接,池驅動程序就新建必定數量的鏈接,新建鏈接的數量有配置參數決定。當使用的池鏈接調用完成後,池驅動程序將此鏈接表記爲空閒,其餘調用就能夠使用這個鏈接。code

相關文章
相關標籤/搜索