PreparedStatement 、Connection接口和Statement接口

2023-11-17

PreparedStatement

在这里插入图片描述
基本用法
在这里插入图片描述
PreparedStatement提供的功能:
1、允许sql语句中使用?占位符,表示参数
2、支持预编译功能
3、在一定程序上可以避免sql注入漏洞

查询所有的姓yan,年龄18岁以上男学生
在这里插入图片描述

Connection接口

  • Statement createStatement() 创建用于执行SQL语句的Statement对象
  • PreparedStatement prepareStatement(String sql)创建PrepareStatement对象,用于实现数据库的动态访问
  • 参数:sql —— 是SQL的INSERT,UPDATE和DELETE语句,或是无返回结果的语句
  • prepareCall(sql):创建执行存储过程的callableStatement对象
  • void close() 结束Connection对象对数据库的连接。强调:数据库连接属于稀有资源,必须保证及时关闭
  • boolean isClose() 测试是否已经关闭Connection对象对数据库的连接
  • setAutoCommit(boolean autoCommit):设置事务是否自动提交
  • commit() :在链接上提交事务
  • rollback() :在此链接上回滚事务

Statement接口

Statement接口用于执行静态的SQL语句,并将SQL语句的执行结果返回

  • ResultSet executeQuery(String sql) :执行SQL查询语句,返回满足条件的结果集。注意:ResultSet中并不是存储数据,而是存储一个行指针。所以必须在关闭之前操作ResultSet。如果连接关闭在访问ResultSet则异常
    参数:sql —— 是SQL的SELECT语句

  • int executeUpdate(String sql) :执行SQL数据更新语句,返回值为结果集中的记录数
    参数:sql —— 是SQL的INSERT,UPDATE和DELETE语句,或是无返回结果的语句

  • boolean execute(String sql) :执行任意SQL语句。如果第一个结果是ResultSet,则返回true;否则如果是整数型,则返回false。参数:sql —— 可以是任何SQL语句

  • void close() :关闭当前的Statement对象

  • 通过Connection接口建立Statement对象,可以使用executeQuery()方法对数据库表中存储的数据进行查询以及使用executeUpdate()方法进行插入、修改和删除记录的操作。必须保证关闭Connection,一般建议关闭Statement

  • addBatch(String sql) :把多条sql语句放到一个批处理中

  • executeBatch():向数据库发送一批sql语句执行。

三种Statement类

  • Statement:由createStatement创建,用于发送简单的静态SQL语句(不带参数)
  • PreparedStatement :继承自Statement接口,由preparedStatement创建,用于发送含有一个或多个参数的SQL语句。PreparedStatement对象支持预编译,反复执行一个只是参数不同的sql语句时,比Statement对象的效率更高,并且可以防止SQL注入,所以我们一般都使用PreparedStatement
  • CallableStatement:继承自PreparedStatement接口,由方法prepareCall创建,用于调用存储过程。

Statement和PreparedStatement的区别

  • Statement只能处理静态SQL; ​
  • PreparedStatement既能处理静态sql也能处理动态sql,它继承了Statement的特点
  • 站在预处理角度: PreparedStatement适合做连续多次结构相同的sql语句,有优势.
  • Statement适合做连续多次不同结构的sql语句,有优势.
  • Sql注入漏洞,最终的解决方案还是需要通过编码实现
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PreparedStatement 、Connection接口和Statement接口 的相关文章

  • 如何将行变成列?

    我有一个数据库 其中存储分组到项目中的关键字以及与每个关键字相关的数据 然后我显示每个项目的数据网格 每个关键字一行和几列 全部从同一个表 数据 中检索 我有 4 个表 关键字 项目 group keywords 和数据 keywords
  • MySQL 数据库无法在 XAMPP for Mac 上启动

    突然我在 mac 上遇到了这个问题 我无法启动我的 MySQL 数据库 我只能启动 ProFTPD 和 Apache Web Server 这是应用程序日志 Starting all servers Starting MySQL Datab
  • MySQL 将表从 Latin1 转换为 utf8

    我需要将包含大量数据的表从 Latin1 转换为 utf8 以便它可以接受韩语字符 如何更改该表而不损坏其中的数据 我的 SQL 语句是什么 最好的方法是什么 ALTER TABLE database name table name CON
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • 使用来自另一个数据库的选择查询更新 mysql 表

    我有两个数据库 我想用另一个数据库表中的值更新一个表 我正在使用以下查询 但它不起作用 UPDATE database1 table1 SET field2 database2 table1 field2 WHERE database1 t
  • PDO语法错误

    我在一个项目中使用 PDO 但提交时出现语法错误 这是我的代码
  • MySQL 左连接 WHERE table2.field = "X"

    我有以下表格 pages Field Type Null Key Default Extra page id int 11 NO PRI NULL auto increment type varchar 20 NO NULL
  • 更改mysql数据库表中的日期格式

    大家早上好 只是一个简单的问题 在我现有的 MySql 数据库中 我几乎没有包含日期 的列 目前这些是年 月 日格式 但现在我需要将其全部更改为年 月 日格式 我试过了select date format curdate d m Y 但它不
  • meta_query,如何使用关系 OR 和 AND 进行搜索?

    已解决 请参阅下面的答案 我有一个名为的自定义帖子类型BOOKS 它有几个自定义字段 名称为 TITLE AUTHOR GENRE RATING 我该如何修复我的meta query下面的代码以便仅books在自定义字段中包含搜索词 tit
  • JDBC 错误:在结果集开始之前[重复]

    这个问题在这里已经有答案了 我在 Java Eclipse 中收到错误消息 我在 MySql 中有一个数据库 它有列 String user name int id time int id desk int user password 我想
  • MySQL JOIN 滥用?情况会变得有多糟糕?

    我读了很多关于关系数据库的文章 在每个 SELECT 上使用许多 JOIN 语句 但是 我一直想知道滥用这种方法从长远来看是否会出现任何性能问题 例如 假设我们有一个users桌子 我通常会添加 最常用 的数据 而不是进行任何额外的联接 例
  • MySql 视图脚本中的注释

    可以这样做吗 我尝试过多个 gui mysql workbench navicat toad for mysql 但没有一个保存这样的注释 something important select something else importan
  • “修改列”与“更改列”

    我知道 我们不能使用重命名列MODIFY COLUMN语法 但我们可以使用CHANGE COLUMN syntax 我的问题是 主要用途是什么modify syntax 例如 ALATER TABLE tablename CHANGE co
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • MySQL“列计数与第 1 行的值计数不匹配”是什么意思

    这是我收到的消息 ER WRONG VALUE COUNT ON ROW 列计数与第 1 行的值计数不匹配 这是我的全部代码 我的错误在哪里 DROP TABLE student CREATE TABLE employee emp id I
  • 使用用户定义函数 MySql 时出错

    您好 请帮我解决这个问题 提前致谢 我在数据库中定义了这些函数 CREATE FUNCTION levenshtein s1 VARCHAR 255 s2 VARCHAR 255 RETURNS INT DETERMINISTIC BEGI
  • Google Cloud SQL 上的故障转移如何运作?

    我打算将 PHP 应用程序 从 Google Cloud Platform 外部的服务器 连接到 Google Cloud SQL 我想知道如何设计应用程序以正确地对其数据库进行故障转移 根据manual https cloud googl
  • 如何使用 MySQL 选择有特定值的 2 个连续行?

    我正在构建一个系统 该系统应该显示学生何时连续缺席两天 例如 此表包含缺勤情况 day id missed 2016 10 6 1 true 2016 10 6 2 true 2016 10 6 3 false 2016 10 7 1 tr
  • MySQL如何获取unix时间戳的时间差

    我有一个保存值1506947452的变量 需要使用公式从该日期提取分钟 started data now date 但started date采用unix时间戳格式10位int数字 我以ajax形式收到并需要放入mysql查询i试试这个 S
  • 选择获取与 MySQL Group 中 max 对应的整行

    当我使用Max使用后查找特定 MySQL 组中字段的最大值GROUP BY 是否可以获取包含最大值的整行 我在处理一些论坛代码时偶然发现了这个线程 我想获取每个线程的最新帖子并将其显示在特定板的线程列表中 Quassnoi上面的回答对我非常

随机推荐

  • springboot修改默认8080端口

    springboot自带的Tomcat端口是8080 有时候项目多了就会引起端口占用的问题 所以我们需要修改其中的端口或者杀掉8080端口 1 修改springboot端口方法 我们只需要在 application properties 中
  • angularjs中state的参数4_AngularJS路由系列(四)- UI-Router的$state服务、路由事件、获取路由参数...

    http www myexception cn javascript 2041588 html ngularJS路由系列 4 UI Router的 state服务 路由事件 获取路由参数 项目文件结构 node modules public
  • 华为OD机试 - 计算误码率(Java)

    题目描述 误码率是最常用的数据通信传输质量指标 它可以理解为 在多少位数据中出现一位差错 移动通信网络中的误码率主要是指比特误码率 其计算公式如下 比特误码率 错误比特数 传输总比特数 为了简单 我们使用字符串来标识通信的信息 一个字符错误
  • python语法:多线程同时处理大量文件

    先写在前面 thread模块 简单来说 cpu的反复横跳而已 要写并发机制 还得用多进程multiprocessing模块 想要快速实现的朋友可以看看我这篇文章 是枝裕和 内 python中的多进程 zhuanlan zhihu com 当
  • conda activate激活虚拟环境时报错:Your shell has not been properly configured to use ‘conda activate‘.的解决方法

    场景 ubuntu系统 问题描述 使用conda activate pytorch想激活虚拟环境pytorch时报错 CommandNotFoundError Your shell has not been properly configu
  • 电脑注册表误删恢复办法:系统文件和设置还原法

    一 起因 为了修改电脑字体一不小心把Control Panel整个注册表给删除了 导致电脑界面变的锯齿 界面变形等各种问题 网上找了许多方法都没成功或者难度较大 最终使用系统恢复还原点将系统变成几个小时前的各种设置 包括浏览器记录 系统设置
  • Ubuntu下FFmpeg的安装方式

    FFmpeg介绍 音视频的广泛应用 直播类 音视频会议 腾讯会议 Zoom 娱乐直播 斗鱼 虎牙 音视频通话 QQ 微信 网络视频 腾讯视频 爱奇艺 短视频 抖音 快手 视频监控 海康 人工智能 人脸识别 智能音箱 概念 FFMPEG全称为
  • 性能测试学习之三--关联

    为什么要做关联 脚本里面这个值是写死的 但服务器传值每次变化 为了保证脚本的正确性 所以要将这个值取到传到脚本里面 所以要将这个值进行关联 关联就是将服务器动态变化的一个值保存为一个动态参数 以便后面需要用的该值的请求来用 一 哪些值或者哪
  • 服务器exsi 5.5安装linux,IBM X3850 X5服务器ESXi 5安装配置全过程——安装

    本系列以一台新上架的IBM X3850 X5服务器为例 从开始做RAID5到VMWARE ESXI5的安装配置进行全程演示 希望对你有些帮助 一 服务器RAID5 启动服务器 直到出现如下界面时 按CTRL H键进入配置阵列界面 点击 St
  • pytorch-geometric笔记

    这篇博客是我学习pytorch geometric 正文将以PyG代替 时做的笔记 有错误的地方在所难免 欢迎指正 非常感谢 参考pytorch geometric官网 1 图数据处理 1 1 创建自己的图数据 PyG创建图的方式很简单 假
  • K8S从入门到放弃系列-(13)Kubernetes集群mertics-server部署

    集群部署好后 如果我们想知道集群中每个节点及节点上的pod资源使用情况 命令行下可以直接使用kubectl top node pod来查看资源使用情况 默认此命令不能正常使用 需要我们部署对应api资源才可以使用此命令 从 Kubernet
  • Google浏览器打开新页面会覆盖当前页面的问题

    点击链接时使用鼠标中间的转轮点击 会在后台打开新网页 点击链接时使用Ctrl 鼠标左击 在后台打开新网页 点击连接时Ctrl Shift 左击 跳转到打开的新页面 在Google浏览器搜索 最原始页面搜索 设置 gt 回车 设置 gt 搜索
  • 相机 - 02 图像处理isp

    isp 知识 1 基本概念 1 1 isp 模块简介 参考 1 基本概念 图像处理流程图 1 光线 gt lens gt sonsor gt 光电转换 gt A D gt bayer pattern gt isp gt I O bayer
  • 【Win11尝鲜】Win 11 打开输入法自带GIF表情包、颜文字等

    Win 11 打开输入法表情包 在输入法输入文字时 可以看到win11在明显提示一个表情包按钮 win10也有这个功能 但win11更完善 点击按钮可以打开表情包部分 按windows 句号 是字母部分的句号 不是数字键盘处的点 然后就打开
  • 分享:交流负载箱 0~9.999A 可调 步进1mA

    前言 最近去客户那边 发现一个问题 他们的交流供电单元 测试很不方便 需求 供电单元输出 AC220V 50HZ 漏电保护保护功能 过载报警功能 超载保护功能 总而言之 他们需要一台 交流的电子负载 功能与直流电子负载一致 需求分析 供电端
  • Keepalived配置Nginx自动重启,实现不间断服务

    续接上篇https blog csdn net qq 44299529 article details 122987503 上回说到我们应该让nginx不间断的工作 只要主节点nginx没问题 就可以重启 除非主节点nginx出错 才切换成
  • 三种交换方式:电路交换、分组交换、报文交换

    三种交换方式 电路交换 分组交换 报文交换 文章目录 三种交换方式 电路交换 分组交换 报文交换 1 电路交换 Circuit Switching 2 分组交换 Packet Switching 3 报文交换 4 电路交换 分组交换 报文交
  • Echarts修改X轴文字设置倾斜角度

    在X轴配置项内加入rotate属性 比如rotate 15 倾斜 15度 xAxis type category axisLabel rotate 15 倾斜30度 lt lt lt lt lt 复制这里 interval 0 textSt
  • pwnable.tw - start

    首先安装 pwntools 在执行pip install upgrade pwntools时出错 cannot import name main 要修改 usr bin pip from pip import main 为 from pip
  • PreparedStatement 、Connection接口和Statement接口

    PreparedStatement 基本用法 PreparedStatement提供的功能 1 允许sql语句中使用 占位符 表示参数 2 支持预编译功能 3 在一定程序上可以避免sql注入漏洞 查询所有的姓yan 年龄18岁以上男学生 C