码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-06-01 20:54:48      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:安全   区别   call   错误   预编译   微软雅黑   集合   存储过程   RoCE   

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

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

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

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

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

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

执行计划)。

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

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

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

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

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

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

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

标签:安全   区别   call   错误   预编译   微软雅黑   集合   存储过程   RoCE   

原文地址:https://www.cnblogs.com/programb/p/13021393.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!