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