Mybatis中重要的小知识点

原文链接:http://www.jianshu.com/p/f3b4ff3314fb

PrepareStatement和Statement的区别

1.PreparedStatement是预先编译的语句,而Statement则不是预先编译的,在DBMS中处理管理中Statement是要进行语法、语义校验的,而PreparedStatement则只在第一次执行时需要。
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中取出来。

数据连接池的工作机制

J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。

你可能感兴趣的:(mybatis)