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
------解决方案--------------------学习了
具体的使用其实还是要按照具体的场景来考虑的