preparedstatement和statement的区别?

1.preparedstatement是继承自statement.  
  • PreparedStatement extends Statement

2.preparedstatement适合执行动态sql,statement适合执行静态sql.

其实说到动态sql,,就要说到数据库中的绑定变量,硬解析,软解析和执行计划。

绑定变量时解决硬解析的利器。

硬解析:就是一条没有执行过的sql。数据库首先对他进行语法分析和解析,过后,根据分析的信息生成最好的执行计划,然后执行。

软解析:就是已经存在了一样的sql语句了


绑定变量实质就是变量。类似于我们是用过的替代变量(占位符)。就是在sql语句中使用变量,通过改变变量的值来得到不同的结果。

sql语句是分为动态部分和静态部分的。而动态部分在一般的情况下,对执行计划的影响是微乎其微的。所以同一个sql语句有不同动态部分生成的执行计划是相同的。


优点:

使用动态绑定,可以减少sql的解析,从而减少了数据库引擎在sql解析上资源的消耗。提高了执行效率和可靠性。减少对数据库的访问实际上就是减少了数据库的工作量

缺点:

可能长时间使用动态sql,由于参数的不同。可能sql的执行效率不同。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值