preparedstatement和statement的区别?
2017-11-17 10:27
302 查看
1.preparedstatement是继承自statement.
PreparedStatement extends Statement
2.preparedstatement适合执行动态sql,statement适合执行静态sql.
其实说到动态sql,,就要说到数据库中的绑定变量,硬解析,软解析和执行计划。
绑定变量时解决硬解析的利器。
硬解析:就是一条没有执行过的sql。数据库首先对他进行语法分析和解析,过后,根据分析的信息生成最好的执行计划,然后执行。
软解析:就是已经存在了一样的sql语句了
绑定变量实质就是变量。类似于我们是用过的替代变量(占位符)。就是在sql语句中使用变量,通过改变变量的值来得到不同的结果。
sql语句是分为动态部分和静态部分的。而动态部分在一般的情况下,对执行计划的影响是微乎其微的。所以同一个sql语句有不同动态部分生成的执行计划是相同的。
优点:
使用动态绑定,可以减少sql的解析,从而减少了数据库引擎在sql解析上资源的消耗。提高了执行效率和可靠性。减少对数据库的访问实际上就是减少了数据库的工作量
缺点:
可能长时间使用动态sql,由于参数的不同。可能sql的执行效率不同。
PreparedStatement extends Statement
2.preparedstatement适合执行动态sql,statement适合执行静态sql.
其实说到动态sql,,就要说到数据库中的绑定变量,硬解析,软解析和执行计划。
绑定变量时解决硬解析的利器。
硬解析:就是一条没有执行过的sql。数据库首先对他进行语法分析和解析,过后,根据分析的信息生成最好的执行计划,然后执行。
软解析:就是已经存在了一样的sql语句了
绑定变量实质就是变量。类似于我们是用过的替代变量(占位符)。就是在sql语句中使用变量,通过改变变量的值来得到不同的结果。
sql语句是分为动态部分和静态部分的。而动态部分在一般的情况下,对执行计划的影响是微乎其微的。所以同一个sql语句有不同动态部分生成的执行计划是相同的。
优点:
使用动态绑定,可以减少sql的解析,从而减少了数据库引擎在sql解析上资源的消耗。提高了执行效率和可靠性。减少对数据库的访问实际上就是减少了数据库的工作量
缺点:
可能长时间使用动态sql,由于参数的不同。可能sql的执行效率不同。
相关文章推荐
- Statement,PreparedStatement,CallableStatement 的联系和区别
- 【jdbc】JDBC中Statement与PreparedStatement的区别
- PreparedStatement与Statement的区别
- PrepareStatement与Statement之间的区别
- PreparedStatement与statement的区别
- Statement与PreparedStatement的用法及区别
- PreparedStatement与Statement的区别和联系
- PreparedStatement 与 Statement 的区别 —— 理解动态SQL语句的执行机制
- Java中PreparedStatement和Statement的用法区别
- Statement、PreparedStatement和CallableStatement区别
- JDBC之Statement,PreparedStatement,CallableStatement的区别
- Statement和PreparedStatement的区别
- PreparedStatement与Statement的区别
- Statement、 PreparedStatement 、CallableStatement 区别和联系
- PreparedStatement 和Statement用法区别,加和不加转义字符
- Statement和PreparedStatement使用的区别
- JDBC中的Statement和PreparedStatement的区别
- PreparedStatement和Statement具体区别
- JDBC--Statement,PreparedStatement,CallableStatement的区别
- PreparedStatement和Statement区别