Statement和Preparestatement的区别和联系

statement和preparestatement

简介

        ~~~~~~~        Statement 是 Java 执行数据库操作的一个重要接口,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。Statement对象,用于执行不带参数的简单SQL语句。
(用于执行静态 SQL 语句并返回它所生成结果的对象)

子接口有CallableStatement, PreparedStatement

CallableStatement 对象用于执行对数据库已存在的存储过程的调用;

PreparedStatement接口继承Statement,其对象用于执行带或不带 IN 参数的预编译 SQL 语句;

	·IN参数的值在SQL语句创建时未被指定;
	·每个IN参数保留一个问号(“?”)作为占位符;
	·每个问号的值必须在该语句执行之前,通过适当的setXXX 方法来提供。

区别

1.效率
        ~~~~~~~        PreparedStatement对象预编译sql语句方便被重复调用。语句在被DB的编译器编译后的执行代码被缓存下来,那么下次调用时只要是相同的预编译语句就不需要编译,只要将参数直接传入编译过的语句执行代码中就会得到执行。
        ~~~~~~~        而Statement每操作一次就需要重新编译sql语句并执行。

2.可读性和可维护性
        ~~~~~~~        PreparedStatement将参数与SQL语句分离出来,这样就可以方便对程序的更改和延续,同时可以减少不必要的错误,也看起来没有特别繁琐,增加了可读性。
        ~~~~~~~        而Statement每操作一次就需要重写sql语句,增加了成本以及出错的可能,读起来也会比较费劲。

3.安全性
        ~~~~~~~        PreparedStatement使用预编译语句,可以防止sql注入.而如果使用Statement,要对drop等做费尽心机的判断和过滤。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值