日期:2014-05-20  浏览次数:20689 次

Statement和preparedStatement具体区别?
Statement和preparedStatement具体区别?

java.util.Statement
java.util.preparedStatement


都有什么区别 什么时候用?

还有
createStatement和prepareStatement都是Connection方法的
和上述2个有什么具体的区别?

主要是用法上

 

说的好马上给分 随时在线

------解决方案--------------------
以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不同数据只需要生成一次执行计划,可以重用

是否使用绑定变量对系统影响非常大,生成执行计划极为消耗资源
两种实现 速度差距可能成百上千倍
------解决方案--------------------
prepareStatement
从表明的字意来看就是准备好的
他是预编译的
形象的说 他就像一条生产线
批量生产同一型号的产品速度非常快
也就是说如果大批量执行同类型的sql语句
prepareStatement的速度要Statement快
否则Statement和preparedStatement的速度差不多
------解决方案--------------------
Statement 每次都要创建执行方法
preparedStatement 一次创建 
preparedStatement 执行效率远远大于Statement
------解决方案--------------------
学习了

具体的使用其实还是要按照具体的场景来考虑的