1.Statement用于处理静态 SQL 语句, PreparedStatement用于处理动态SQL语句,在执行前会有一个预编译的过程,它是有时间开销的,虽然相对于数据库的操作该时间开销可以忽略不计。但是后者的预编译结果会被缓存,而不论动态值发生什么样的变化。2. PreparedStatement继承于Statement,通常的JDBC实现中PreparedStatement最终还是通过Statement的相关方法来执行SQL的(可以做少量优化),其最主要的优势在于,可以减少SQL的编译错误(在JDBC中就可以捕获部分异常而不是由数据库服务器执行时返回错误代码)、增加SQL安全性(减少SQL注入的机会)。 |
|