1 关于 PreparedStatement 和 Statement 具体区别
PreparedStatement 是 预先编译的语句,而 Statement 则 不是预先编译的,在 DBMS 中处理管理中 Statement 是要进行语法,语义校验的,而 PreparedStatement 则只在第一次执行时需要.
PrepareStatement 中执行的 SQL 语句中是可以带参数的,而 Statement 则不可以.比如:
当处理批量 SQL 语句时,这个时候就可以体现 PrepareStatement 的优势,由于采用 Cache 机制,则预先编译的语句,就会放在 Cache 中,下次执行相同 SQL 语句时,则可以直接从 Cache 中取出来.
PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?");
pstmt.setBigDecimal(1, 153833.00);
pstmt.setInt(2, 110592);
pstmt.executeUpdate();
2 说出数据连接池的工作机制是什么?
J2EE 服务器启动时会 建立一定数量的池连接,并一直维持不少于此数目的池连接.客户端程序需要连接时,池驱动程序会 返回一个未使用的池连接并将其表记为忙.如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定.当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接.
来源: https://juejin.im/post/5a6ad9375188257330612657