`

Statement 和PreparedStatement的区别

    博客分类:
  • Java
 
阅读更多

 

1. Statement用于处理静态 SQL 语句, PreparedStatement用于处理动态SQL语句,在执行前会有一个预编译的过程,它是有时间开销的,虽然相对于数据库的操作该时间开销可以忽略不计。但是后者的预编译结果会被缓存,而不论动态值发生什么样的变化。

 

 

2. PreparedStatement继承于Statement,通常的JDBC实现中PreparedStatement最终还是通过Statement的相关方法来执行SQL的(可以做少量优化),其最主要的优势在于,可以减少SQL的编译错误(在JDBC中就可以捕获部分异常而不是由数据库服务器执行时返回错误代码)、增加SQL安全性(减少SQL注入的机会)。

 

 

3,使用建议:如果SQL语句是执行一次,且不需向里带参数,可用Statement。

如果SQL语句多次执行,并且需要动态的向里带参,用PreparedStatement。

 

一般建议使用PreparedStatement。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics