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的区别
Java_JDBC使用Statement和PreparedStatement