PreparedStatement的解释和优势,PreparedStatement和Statement的比较

2023-05-16

PreparedStatement的解释:

  PreparedStatement是java.sql包下的一个接口,用来执行sql语句查询,通过调用conn.prepareStatement(sql)方法可以获得PreparedStatement对象。
在这里插入图片描述
  从上图可知PreparedStatement继承于Statement,但PreparedStatement与Statement有很大不同。
知识点来源:https://blog.csdn.net/baichoufei90/article/details/83539484
PreparedStatement与Statement的不同:

PreparedStatementStatement
可读性高,可单独设置每一个变量差,需要拼接字符串
预编译可配置开启预编译普通sql无预编译
安全性强,sql提前预编译,传入的参数中的字符串,如果有特殊的字符串会被转义差,可能被sql注入到拼接字段

  

PreparedStatement的优势:

1、可以书写动态参数化的查询;比如where userName=?。
2、 PreparedStatement比Statement效率更高,更快。

   释:PreparedStatement拥有更佳的性能优势,数据库系统会对sql语句进行预编译处理,预处理语句将被预先编译好,这样预编译的sql语句 能在将来的查询中重用。也就是数据库对SQL语句的分析、编译、优化已经在第一次查询前完成,之后查询不再重复,所以 PreparedStatement比Statement更快。
  为了获得性能上的优势,在sql查询语句时应该使用参数化sql查询而不是字符串追加的方式。即应该使用"where userName=?“而不是"where userName=”+userName。
3、防止SQL注入式攻击
   在使用参数化查询时,数据库系统不会将参数的内容视为SQL指令进行处理,而是在数据库完成SQL指令的编译后,才会套用参数运行。因此,如果参数中 含有破坏性的指令,也不会被数据库所运行。

PreparedStatement的局限:

  为了防止SQL注入攻击,PreparedStatement不允许一个占位符(?)有多个值,所以无法执行有IN子句的查询。
例:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PreparedStatement的解释和优势,PreparedStatement和Statement的比较 的相关文章

随机推荐

  • springboot项目多环境配置及常见配置名的含义

    强烈推荐大家想学习springboot项目相关知识的 xff0c 可以看一下Gitee上大佬整理的Spring Boot基础教程 xff0c 非常适合初学者和进阶学习 xff1a 传送门 我们在进行项目开发时 xff0c 经常同一个应用需要
  • 聊聊linux中的文件种类、文件名、文件扩展名

    linux中的文件种类 文件名 文件扩展名详解 在使用 ls l指令后可以看到文件的类型 xff0c 其中第一个字符就是代表的文件的类型 xff0c 常见的文件类型是一般文件 和目录文件d 文件的类型 1 正规文件 xff08 regula
  • 华为2288 v5服务器安装centos7.9教程

    华为2288 v5服务器安装centos7 9教程 一 准备工作二 centos启动盘制作三 删除 配置RAID四 选择启动项1 开机按F112 选择u盘启动 五 centos安装1 选择语言2 选择安装方式3 选择安装位置 xff08 重
  • Pytorch-gpu版安装教程【注意:无需提前安装cuda和cudnn】

    Pytorch gpu版安装教程 注意 xff1a 无需提前安装cuda和cudnn 1 首先确保你已经安装好Anaconda2 查看自己电脑上显卡的信息 xff0c 通过显卡控制面板查看3 如何根据想要的cuda的版本下载相应的显卡驱动程
  • python调用有道翻译API进行翻译

    python调用有道翻译API进行翻译 步骤 python调用有道翻译API进行翻译准备调用API所需的APPID以及秘钥1 有道智云注册账号2 有道智云注册账号3 创建实例 xff0c 绑定应用4 查看官方文档 python实现对有道翻译
  • Linux安装cuda10.2

    Linux安装cuda10 2 安装其他版本的cuda也可以参考以下步骤 A 进入NVIDIA官网下载安装文件 百度搜索cuda 10 2 点开第一个网页 找到对应自己系统版本的安装文件命令 在命令行中执行给出的代码 xff0c 下载安装文
  • Windows 10 安装anaconda

    Windows 10 安装anaconda 1 下载anaconda安装包2 安装Anaconda3 配置Anaconda环境变量4 检验是否安装成功4 anaconda换源5 python换源 1 下载anaconda安装包 网页搜索清华
  • 排序算法-基数排序

    排序算法 基数排序 算法思想 基数排序是采用多关键字排序思想 xff08 即基于关键字各位的大小进行排序地 xff09 xff0c 借助 分配 收集 两种操作对单逻辑关键字进行排序 基数排序又分为最高位优先 MSD 降序 排序和最低位优先
  • No module named ‘cv2‘ 解决方法

    No module named cv2 解决方法 1 安装opencv python 在使用的虚拟环境中 xff0c 输入以下命令 pip span class token function install span opencv pyth
  • AttributeError:module ‘distutils‘ has no attribute ‘version

    AttributeError module distutils has no attribute 39 version 在使用torch utils tensorboard时 xff0c 出现错误 xff1a 出错语句from torch
  • CPU、GPU、NPU的区别

    CPU GPU NPU的区别 CPU CPU xff08 CentralProcessing Unit xff09 中央处理器 xff0c 是一块超大规模的集成电路 xff0c 主要逻辑架构包括控制单元Control xff0c 运算单元A
  • jdk(Linux+Windows)环境变量配置

    Windows jdk环境变量配置 xff1a PATH JAVA HOME bin JAVA HOME jre bin CLASSPATH JAVA HOME lib JAVA HOME lib tools jar JAVA HOME l
  • 并发编程-生产者消费者模式Java代码实现

    并发编程 生产者消费者模式Java代码实现 生产者消费者模式 生产者仅负责产生结果数据 xff0c 不关心数据该如何处理 xff0c 而消费者专心处理结果数据 消息队列是有容量限制的 xff0c 满时不会再加入数据 xff0c 空时不会再消
  • Java自定义线程池详解及代码实现(非直接调用ThreadPoolExecutor)

    JJava自定义线程池详解及代码实现 非直接调用ThreadPoolExecutor JDK中的线程池函数ThreadPoolExecutorJDK中的线程池执行任务时的流程自定义线程池业务分析自定义线程池的代码实现 注释详尽1 定义阻塞队
  • BIO、NIO、IO多路复用(select/poll/epoll)、信号驱动IO、异步IO

    BIO NIO IO多路复用 select poll epoll 信号驱动IO 异步IO Linux用户空间和内核空间阻塞IO xff08 Blocking IO xff09 非阻塞IO xff08 Noblocking IO xff09
  • 离散数学对学计算机有什么用?

    离散数学是计算机专业的一门重要基础课 它所研究的对象是离散数量关系和离散结构数学结构模型 由于数字电子计算机是一个离散结构 xff0c 它只能处理离散的或离散化了的数量关系 xff0c 因此 xff0c 无论计算机科学本身 xff0c 还是
  • VistualBox开机后台启动虚拟机

    有时候我们想学习使用其它的系统时 xff0c 总会面临一个问题 xff0c 装系统 装双系统吧 xff0c 总觉得别扭 xff0c 而且反复切换让人头大 使用虚拟机吧 xff01 每一次都得启动虚拟机然后启动虚拟机中的系统 xff0c 体验
  • ubuntu下循环登录的解决方法

    用老师的电脑跑完程序后出现的情况 xff1a ubuntu下每个的账户输入密码后黑屏一闪后回到登录界面 考虑可能的原因是1 xff0c 磁盘满了 xff0c 无法启动2 xff0c 非法关机 进行尝试 xff1a ctrl 43 alt 4
  • Python,批量删除txt文本指定行

    本文解决问题 xff1a 批量删除多行txt文本中的内容 思路 xff1a 1 找出需要删除行的 id xff08 就是需要删除那些行 xff0c 把这是第几行给记录下来 xff09 2 将原文本内容不需要删除的行 赋予到 新的列表 xff
  • PreparedStatement的解释和优势,PreparedStatement和Statement的比较

    PreparedStatement的解释 xff1a PreparedStatement是java sql包下的一个接口 xff0c 用来执行sql语句查询 xff0c 通过调用conn prepareStatement sql 方法可以获