JDBC中preparedstatement与statement的区别

①概念

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

②区别

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值