Statement 和 PreparedStatement 有什么区别?哪个性 能更好?

Posted 咔啡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Statement 和 PreparedStatement 有什么区别?哪个性 能更好?相关的知识,希望对你有一定的参考价值。

Statement 相比,①PreparedStatement 接口代表预编译的语句,它主要的优

势在于可以减少 SQL 的编译错误并增加 SQL 的安全性(减少 SQL 注射攻击的可

能性);②PreparedStatement 中的 SQL 语句是可以带参数的,避免了用字符串

连接拼接 SQL 语句的麻烦和不安全;③当批量处理 SQL 或频繁执行相同的查询时,

PreparedStatement 有明显的性能上的优势,由于数据库可以将编译优化后的

SQL 语句缓存起来,下次执行相同结构的语句时就会很快(不用再次编译和生成

执行计划)。

补充:为了提供对存储过程的调用,JDBC API 中还提供了 CallableStatement 接

口。存储过程(Stored Procedure)是数据库中一组为了完成特定功能的 SQL 语

句的集合,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数

(如果该存储过程带有参数)来执行它。虽然调用存储过程会在网络开销、安全

性、性能上获得很多好处,但是存在如果底层数据库发生迁移时就会有很多麻烦,

因为每种数据库的存储过程在书写上存在不少的差别。

以上是关于Statement 和 PreparedStatement 有什么区别?哪个性 能更好?的主要内容,如果未能解决你的问题,请参考以下文章

JDBC预编译statement(preparedstatement)和statement的比较execute与executeUpdate的区别

Statement和ResultSet

JDBC学习笔记——Statement和ResultSet

Java_JDBC使用Statement和PreparedStatement

Java中PreparedStatement和Statement的用法区别

PreparedStatement和Statement