Statement和PreparedStatement都是数据库用于执行SQL语句的句柄,但是PreparedStatement代表一个预编译的SQL。

以下是PreparedStatement和Statement的区别,也是PreparedStatement相对Statement的优势。

1.PreparedStatement接口代表预编译的语句,它主要的优势是可以减少SQL的编译错误并增加SQL的安全性,减少SQL注入的可能性。

2.PreparedStatement中的SQL语句是可以带参数的,避免了使用字符串连接拼接SQL语句的麻烦和不安全。

3.当批量处理SQL或频繁执行相同的查询时,PreparedStatement有明显的性能上的优势,由于数据库可以将编译优化后的SQL语句缓存起来,下次执行相同结构的语句时就会很快,不用再次编译和生成执行计划。

所以总体上,PreparedStatement在使用和性能方面都比Statement更有优势。

补充:为了提供对存储过程的调用,jdbc api还提供了CallableStatement接口,存储过程(Stored Procedure)是数据库中一组为了完成特定功能的SQL语句的集合,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果存储过程需要传入参数)来执行它。虽然调用存储过程在网络开销、安全性、性能上有很多好处,但是如果底层数据库发生迁移就会有很多麻烦,因为每种数据库的存储过程在书写上存在不少差别。

最新文章

  1. dp和px转换
  2. App开发
  3. [读书笔记]了不起的node.js(三)
  4. POJ 2186 Popular Cows(Tarjan)
  5. Installshield自动安装IIS组件
  6. js正则函数中test和match的区别
  7. navicat 连接远程mysql
  8. Spring Boot启动过程(一)
  9. javascript所有的节点和方法
  10. Java - 在WebService中使用Client调用三方的RestAPI
  11. 003.ASP.NET Core tutorials--【Asp.net core 教程】
  12. 九度OJ题目1003:A+B
  13. 主席树套树状数组——带修区间第k大zoj2112
  14. @NotNull和@NotEmpty和@NotBlank 区别
  15. spoj periodni
  16. vue 点击一个div,使input获得焦点
  17. Linux 安装JDK Tomcat MySQL(使用Mac远程访问)
  18. 《快学Scala》第三章 数组相关操作
  19. golang基础之二-基本数据类型和操作符
  20. IOS内购支付服务器验证模式

热门文章

  1. WPF Binding妙处-既无Path也无Source
  2. Linux升级OpenSSL版本
  3. 深入浅出RPC——浅出篇(转载)
  4. delphi dispose释放内存的方法
  5. uva11038_How Many O's?_数位DP
  6. Java基础(二) 基本类型数据类型、包装类及自动拆装箱
  7. Spark之从hdfs读取数据
  8. iOS登录及token的业务逻辑(没怎么用过,看各种文章总结)
  9. 18 HTML标签以及属性全
  10. Java面试通关宝典