网上有很多文章讨论PrepardStatement与Statement的区别,不过要完完全全的作出比较难度很大,因为每个数据库对底层的实现及应用场合不一样,Oracle对PrepardStatement的支持最好,Mysql对PrepardStatement支持最差。Statement执行单个sql语句速度较快而PrepardStatement执行批处理的效率较高。
以Oracle为例
1、Statement为每一条Sql语句生成执行计划, 如果要执行两条sql语句
select colume from table where colume=1;
select colume from table where colume=2;
会生成两个执行计划,一千个查询就生成一千个执行计划。而生成计划是非常消耗资源的
2、PreparedStatement用于使用绑定变量重用执行计划
select * from xxx.sometable t where t.id=?;
通过set方法给sql语句按占位符"?"先后顺序赋值,只需要生成一个执行计划,可以重复使用。
当处理批量SQL语句时,这个时候就可以体现PrepareStatement的优势,由于采用Cache机制,则预先编译的语句,就会放在Cache中,下次执行相同SQL语句时,则可以直接从Cache中取出来,效率要比statement高好几倍
PrepardStatement的优点
<1>、用PrepardStatement写成的sql语句,容易阅读,维护方便。
<2>、批处理效率高,执行速度快。
<3>、安全,可以防止sql注入攻击。
缺点:当执行批处理时,你无法得知这个批处理总共影响了多少行。
分享到:
相关推荐
java中PreparedStatement和Statement的区别
Statement和PreparedStatement之间的区别
jdbc中preparedStatement比Statement的好处
Java面试题34.jdbc中preparedStatement比Statement的好处.mp4
NULL 博文链接:https://stevenjohn.iteye.com/blog/968877
主要介绍了java中PreparedStatement和Statement详细讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
NULL 博文链接:https://chaoyi.iteye.com/blog/2088080
jdbc2.0版 PreparedStatement接口的用法
NULL 博文链接:https://huiminchen.iteye.com/blog/1097332
PreparedStatement详细用法
主要介绍了详解Java的JDBC中Statement与PreparedStatement对象,PreparedStatement一般来说比使用Statement效率更高,需要的朋友可以参考下
关于PreparedStatement插入Date类型值的方法.txt
JDBC基础教程之PreparedStatement.doc )
在java中向访问数据库的sql语句一般放到类PreparedStatement类构造函数中,这里遇到的问题就是向sql语句中用setDate()插入时间时不能用java.util.date,而应用java.sql.date,这里就讲述了解决方法,一种是插入...
练习3:使用PreparedStatement插入宠物信息.zip
什么时候用statement,什么时候用preparedstatement
MySql练习3:使用PreparedStatement插入宠物信息.zip MySql练习3:使用PreparedStatement插入宠物信息.zip MySql练习3:使用PreparedStatement插入宠物信息.zip
Java中JDBC程序,PreparedStatement与Statement性能比较。
PrepatredStatement实例包含已编译的SQL语句,由于PreparedStatement对象已预编译过哦哦,所以执行速度快于Statement对象。 包含于PreparedStatement对象中的SQL语句具有一个或多个IN参数。IN参数的值在SQL...