prepareStatament和Statement和callableStatement的区别
关系与区别
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。
最新文章
- [Tomcat] Tomcat的classloader
- C++中的vector 用法解析
- 【传递智慧】C++基础班公开课第六期培训
- Light OJ 1393 Crazy Calendar (尼姆博弈)
- [转载] zookeeper 事件通知
- Oracle SQL 调优之 sqlhc
- Spark之路 --- Scala用JFreeChart画图表实例
- Laravel Eloquent 的条件不等于
- 2016041601 - linux上安装maven
- 一步步学习ASP.NET MVC3 (9)——JsonReslt,JavaScript,@Ajax
- docker 挂在本地目录
- 2017年8月28日 HTML/CSS 语法(待填坑)
- 微信、qq可以上网,但是浏览器却不能上网怎么办
- Windows 10 安装 ElasticSearch
- MooFest POJ1990
- c#4.0 Task.Factory.StartNew 用法
- manipulate
- Netty 零拷贝(一)NIO 对零拷贝的支持
- PHP运算符的规律
- 天梯赛 L2-023. (模拟) 图着色问题
热门文章
- Invalid prop: type check failed for prop ";XXX";. Expected String, got Object.
- python安装包的时候报错
- JS中==、===和Object.is()的区别
- 01-消息中间件概述和ActiveMq入门
- java替换word
- android通过Jni加载so库遇到UnsatisfiedLinkError问题!!!
- Java基础15-数组实例学生管理系统
- 04-cglib(code generator library)代理(没有接口)
- Intellij IDEA 14 自动生成 serialVersionUID
- 远程登陆服务器(window系统)