JDBC中的Statement和PreparedStatement的区别
来源:互联网 发布:吉林师范大学教务网络 编辑:程序博客网 时间:2024/04/30 13:31
以Oracle为例吧
Statement为一条Sql语句生成执行计划,
如果要执行两条sql语句
select colume from table where colume=1;
select colume from table where colume=2;
会生成两个执行计划
一千个查询就生成一千个执行计划!
PreparedStatement用于使用绑定变量重用执行计划
select colume from table where colume=:x;
通过set不同数据只需要生成一次执行计划,可以重用
是否使用绑定变量对系统影响非常大,生成执行计划极为消耗资源
两种实现 速度差距可能成百上千倍
1.PreparedStatement是预编译的,对于批量处理可以大大提高效率.也叫JDBC存储过程
2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得,preparedstatement支持批处理
4.
Code Fragment 1:
片断2和片断1的区别在于,后者使用了PreparedStatement对象,而前者是普通的Statement对象。PreparedStatement对象不仅包含了SQL语句,而且大多数情况下这个语句已经被预编译过,因而当其执行时,只需DBMS运行SQL语句,而不必先编译。当你需要执行Statement对象多次的时候,PreparedStatement对象将会大大降低运行时间,当然也加快了访问数据库的速度。
这种转换也给你带来很大的便利,不必重复SQL语句的句法,而只需更改其中变量的值,便可重新执行SQL语句。选择PreparedStatement对象与否,在于相同句法的SQL语句是否执行了多次,而且两次之间的差别仅仅是变量的不同。如果仅仅执行了一次的话,它应该和普通的对象毫无差异,体现不出它预编译的优越性。
5.执行许多SQL语句的JDBC程序产生大量的Statement和PreparedStatement对象。通常认为PreparedStatement对象比Statement对象更有效,特别是如果带有不同参数的同一SQL语句被多次执行的时候。PreparedStatement对象允许数据库预编译SQL语句,这样在随后的运行中可以节省时间并增加代码的可读性。
- JDBC中的Statement和PreparedStatement的区别
- JDBC中的Statement和PreparedStatement的区别
- JDBC中的Statement和PreparedStatement的区别
- JDBC中的Statement和PreparedStatement的区别
- JDBC中的Statement和PreparedStatement的区别
- JDBC中的Statement和PreparedStatement的区别
- JDBC中的Statement和PreparedStatement的区别
- JDBC中的Statement和PreparedStatement的区别
- JDBC中的Statement和PreparedStatement的区别
- JDBC中的Statement和PreparedStatement的区别
- JDBC中的Statement和PreparedStatement的区别
- JDBC的Statement和PreparedStatement区别
- JDBC的Statement和PreparedStatement区别
- jdbc中 PreparedStatement 和Statement的区别
- JDBC的Statement和PreparedStatement区别
- JDBC preparedstatement和statement的区别
- Jdbc中的Statement 和PreparedStatement
- JDBC中的Statement和PreparedStatement
- eclipse 搭建struts2框架 出现404错误
- 单链表(一)——链表的建立
- java6道基础问题
- PHP的foreach和其它循环的区别
- 任务调度--spring下的任务调度quartz
- JDBC中的Statement和PreparedStatement的区别
- Java中关于时间的学习日志
- 《剑指offer》孩子们的游戏(圆圈中最后剩下的数)
- c++字符串详解
- Android目录(更新中)
- C++ string 字符串匹配
- UIWebKit和WKWebView体验
- STM32L0 HAL库 IO读写功能
- Python 实现队列