关系与区别

Statement、PreparedStatement和CallableStatement都是接口(interface)

Statement

1、Statement接口提供了执行语句和获取结果的基本方法;

2、Statement继承自Wrapper

3、普通的不带参的查询SQL;支持批量更新,批量删除;

4、Statement每次执行sql语句,数据库都要执行sql语句的编译 ,最好用于仅执行一次查询并返回结果的情形,效率高于PreparedStatement。 

CallableStatement

1、CallableStatement接口添加了处理 OUT 参数的方法。

2、继承自PreparedStatement,支持带参数的SQL操作; 
3、支持调用存储过程,提供了对输出和输入/输出参数(INOUT)的支持;

  

PreparedStatement

1、PreparedStatement接口添加了处理 IN 参数的方法;

2、PreparedStatement继承自Statement

3、可变参数的SQL,编译一次,执行多次,效率高; 
4、安全性好,有效防止Sql注入等问题; 
5、支持批量更新,批量删除;

6. 在执行可变参数的一条SQL时,PreparedStatement比Statement的效率高,因为DBMS预编译一条SQL当然会比多次编译一条SQL的效率要高。 
7  对于多次重复执行的语句,使用PreparedStament效率会更高一点,并且在这种情况下也比较适合使用batch; 
8.  代码的可读性和可维护性。 

注: 
executeQuery:返回结果集(ResultSet)。 
executeUpdate: 执行给定SQL语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句, 
或者不返回任何内容的SQL语句(如 SQL DDL 语句)。 
execute: 可用于执行任何SQL语句,返回一个boolean值, 
表明执行该SQL语句是否返回了ResultSet。如果执行后第一个结果是ResultSet,则返回true,否则返回false。 

最新文章

  1. [Tomcat] Tomcat的classloader
  2. C++中的vector 用法解析
  3. 【传递智慧】C++基础班公开课第六期培训
  4. Light OJ 1393 Crazy Calendar (尼姆博弈)
  5. [转载] zookeeper 事件通知
  6. Oracle SQL 调优之 sqlhc
  7. Spark之路 --- Scala用JFreeChart画图表实例
  8. Laravel Eloquent 的条件不等于
  9. 2016041601 - linux上安装maven
  10. 一步步学习ASP.NET MVC3 (9)——JsonReslt,JavaScript,@Ajax
  11. docker 挂在本地目录
  12. 2017年8月28日 HTML/CSS 语法(待填坑)
  13. 微信、qq可以上网,但是浏览器却不能上网怎么办
  14. Windows 10 安装 ElasticSearch
  15. MooFest POJ1990
  16. c#4.0 Task.Factory.StartNew 用法
  17. manipulate
  18. Netty 零拷贝(一)NIO 对零拷贝的支持
  19. PHP运算符的规律
  20. 天梯赛 L2-023. (模拟) 图着色问题

热门文章

  1. Invalid prop: type check failed for prop "XXX". Expected String, got Object.
  2. python安装包的时候报错
  3. JS中==、===和Object.is()的区别
  4. 01-消息中间件概述和ActiveMq入门
  5. java替换word
  6. android通过Jni加载so库遇到UnsatisfiedLinkError问题!!!
  7. Java基础15-数组实例学生管理系统
  8. 04-cglib(code generator library)代理(没有接口)
  9. Intellij IDEA 14 自动生成 serialVersionUID
  10. 远程登陆服务器(window系统)