JDBC中preparedstatement与statement的区别

it2022-05-05  123

①概念

        PreparedStatement是用来执行SQL查询语句的API之一,Java提供了 Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程。

②区别

PreparedStatement通过调用PreparedStatement的setXXX()方法可以防止SQL注入(其实就是对输入的参数进行了处理);Statement为一条Sql语句生成执行计划,如果要执行两条sql语句,会生成两个执行计划,一千个查询就生成一千个执行计划!PreparedStatement用于使用绑定变量(Bind-variable)重用执行计划,通过set不同数据只需要生成一次执行计划,可以重用。在对数据库只执行一次性存取的时侯,PreparedStatement对象的开销比Statement大。statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得,preparedstatement支持批处理。(prepareStatement会先初始化SQL,先把这个SQL提交到数据库中进行预处理,多次使用可提高效率。createStatement不会初始化,没有预处理,没次都是从0开始执行SQL。)

③PreparedStatement是如何防止SQL注入的?

参考博客:https://www.cnblogs.com/roostinghawk/p/9703806.html


最新回复(0)