iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >JDBC中的PreparedStatement是什么?
  • 382
分享到

JDBC中的PreparedStatement是什么?

2023-10-22 10:10:58 382人浏览 八月长安
摘要

PreparedStatement接口扩展了Statement接口,它代表一个可以多次执行的预编译sql语句。它接受参数化 SQL 查询,并且您可以向此查询传递 0 个或多个参数。最初此语句使用占位符 “?” 而不是参数,稍后您可以传递参数

PreparedStatement接口扩展了Statement接口,它代表一个可以多次执行的预编译sql语句。它接受参数化 SQL 查询,并且您可以向此查询传递 0 个或多个参数。

最初此语句使用占位符 “?” 而不是参数,稍后您可以传递参数使用 PreparedStatement 接口的 setXXX() 方法动态地实现这些。

创建一个PreparedStatement

您可以创建一个PreparedStatement (接口)使用 Connection 接口的 prepareStatement() 方法。此方法接受查询(参数化)并返回一个PreparedStatement 对象。

当您调用此方法时,Connection 对象会将给定的查询发送到数据库以编译并保存它。如果查询编译成功,则仅返回对象。

要编译查询,数据库不需要任何值,因此您可以使用(零个或多个)占位符 (问号 ” ?”) 代替查询中的值。

例如,如果数据库中有一个名为 Employee 的表,使用以下查询创建。

CREATE TABLE Employee(Name VARCHAR(255), Salary INT NOT NULL, Location VARCHAR(255));

然后您应该可以使用准备好的语句向其中插入值,如下所示。

//Creating a Prepared Statement
String query="INSERT INTO Employee(Name, Salary, Location)VALUES(?, ?, ?)";
Statement pstmt = con.prepareStatement(query);

设置占位符的值

PreparedStatement接口提供了几个setter方法,例如setInt()、setFloat()、setArray()、setDate()、setDouble()等,用于设置预编译语句的占位符的值。

这些方法接受两个参数,一个是表示占位符位置索引的整数值,另一个是int、String、float等表示您需要插入的值。

您可以使用以下示例中的setter方法为上述创建的语句设置占位符的值:

pstmt.setString(1, "Amit");
pstmt.setInt(2, 3000);
pstmt.setString(3, "Hyderabad");

pstmt.setString(1, "Kalyan");
pstmt.setInt(2, 4000);
pstmt.setString(3, "Vishakhapatnam");

pstmt.setString(1, "Renuka");
pstmt.setInt(2, 5000);
pstmt.setString(3, "Delhi");

pstmt.setString(1, "Archana");
pstmt.setInt(2, 15000);
pstmt.setString(3, "Mumbai");

执行Prepared Statement

创建PreparedStatement对象后,您可以使用PreparedStatement接口的execute()方法之一来执行它,即execute ()executeUpdate() 和、executeQuery()。

  • execute(): 该方法在当前准备好的语句对象中执行普通的静态 SQL 语句,并返回一个布尔值。

  • executeQuery(): 该方法执行

  • executeUpdate():该方法在当前Prepared中执行insert update或delete等SQL DML语句陈述。它返回一个整数值,表示受影响的行数。

您可以执行上面创建的准备好的语句,如下所示:

示例

在本例中,我们尝试使用准备好的语句将值插入名为“Employees”的表中。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class PreparedStatementExample {
   public static void main(String args[]) throws SQLException {
      //ReGIStering the Driver
      DriverManager.registerDriver(new com.Mysql.jdbc.Driver());

      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/testdb";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "passWord");
      System.out.println("Connection established......");

      //Creating a Prepared Statement
      String query = "INSERT INTO Employees(Name, Salary, Location) VALUES (?, ?, ?)";
      PreparedStatement pstmt = con.prepareStatement(query);

      pstmt.setString(1, "Amit");
      pstmt.setInt(2, 3000);
      pstmt.setString(3, "Hyderabad");

      pstmt.setString(1, "Kalyan");
      pstmt.setInt(2, 4000);
      pstmt.setString(3, "Vishakhapatnam");

      pstmt.setString(1, "Renuka");
      pstmt.setInt(2, 5000);
      pstmt.setString(3, "Delhi");

      pstmt.setString(1, "Archana");
      pstmt.setInt(2, 15000);
      pstmt.setString(3, "Mumbai");

      int num = pstmt.executeUpdate();
      System.out.println("Rows inserted ....");
   }
}

输出

Connection established......
Number of rows inserted: 1

如果验证数据库,您可以观察表中插入的值:

+---------+--------+----------------+
| Name    | Salary | Location       |
+---------+--------+----------------+
| Amit    | 30000  | Hyderabad      |
| Kalyan  | 40000  | Vishakhapatnam |
| Renuka  | 50000  | Delhi          |
| Archana | 15000  | Mumbai         |
+---------+--------+----------------+
5 rows in set (0.00 sec)
您可能感兴趣的文档:

--结束END--

本文标题: JDBC中的PreparedStatement是什么?

本文链接: https://www.lsjlt.com/news/437935.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JDBC中的PreparedStatement是什么
    JDBC中的PreparedStatement是一种数据库预编译的SQL语句对象。它继承自Statement接口,用于执行带有参数的...
    99+
    2023-10-10
    JDBC
  • JDBC中的PreparedStatement是什么?
    PreparedStatement接口扩展了Statement接口,它代表一个可以多次执行的预编译SQL语句。它接受参数化 SQL 查询,并且您可以向此查询传递 0 个或多个参数。最初此语句使用占位符 “” 而不是参数,稍后您可以传递参数使...
    99+
    2023-10-22
  • JDBC的基本操作与Statement和PreparedStateMent使用区别是什么
    本文小编为大家详细介绍“JDBC的基本操作与Statement和PreparedStateMent使用区别是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“JDBC的基本操作与Statement和PreparedStateMent使用区...
    99+
    2023-07-05
  • PreparedStatement的setObject作用是什么
    这篇文章主要介绍了PreparedStatement的setObject作用是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PreparedStatement的setObject作用是什么文章都会有所收获,...
    99+
    2023-07-05
  • JDBC 中的 CallableStatement 是什么
    JDBC中的CallableStatement是用于调用存储过程或函数的接口。CallableStatement继承自Prepare...
    99+
    2023-10-10
    JDBC
  • JDBC 中的 CallableStatement 是什么?
    CallableStatement 接口提供执行存储过程的方法。由于 JDBC API 提供了存储过程 SQL 转义语法,因此您可以以单一标准方式调用所有 RDBMS 的存储过程。创建 CallableStatement您可以创建 Conn...
    99+
    2023-10-22
  • JDBC中的批处理是什么
    这篇文章将为大家详细讲解有关JDBC中的批处理是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 直接上代码:packagecn.zhou....
    99+
    2022-10-19
  • JDBC中prepareCall的用法是什么
    在JDBC中,prepareCall()方法用于创建一个CallableStatement对象,用于执行存储过程或函数的调用。Cal...
    99+
    2023-10-27
    JDBC
  • Hibernate JDBC是什么
    这篇文章主要介绍“Hibernate JDBC是什么”,在日常操作中,相信很多人在Hibernate JDBC是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hibernate JDBC是什么”的疑惑有所...
    99+
    2023-06-17
  • jdbc resultset的用法是什么
    JDBC ResultSet是用于从数据库查询操作中返回的结果集的一个Java对象。它提供了访问和处理查询结果的方法。以下是Resu...
    99+
    2023-09-16
    jdbc
  • jdbc fetchsize的作用是什么
    fetchSize是JDBC中用于设置查询结果集大小的参数。它指定了一次从数据库中获取的行数,以提高查询效率。 作用如下: 提高...
    99+
    2023-10-28
    jdbc
  • JDBC 中的保存点是什么解释
    JDBC(Java Database Connectivity)中的保存点(Savepoint)是用于处理事务中的一种机制。事务是一...
    99+
    2023-10-10
    JDBC
  • JDBC 中的保存点是什么?解释?
    Savepoint 界面为您提供了额外的事务控制。大多数现代 DBMS 都支持其环境中的保存点,例如 Oracle 的 PL/SQL。设置保存点时,您在事务中定义了逻辑回滚点。如果在保存点之后发生错误,您可以使用回滚方法撤消所有更改或仅撤消...
    99+
    2023-10-22
  • java中jdbc的封装流程是什么
    本文由java入门栏目为大家介绍jdbc的封装流程,希望可以帮助到正在学习java的同学!JDBC的封装流程:声明jdbc参数声明jdbc变量加载驱动创建连接对象创建SQL命令创建SQL命令对象占位符赋值执行SQL命令处理结果关闭资源封装实...
    99+
    2016-01-18
    java入门 java jdbc 封装流程
  • Hibernate JDBC事务是什么
    这篇文章主要介绍“Hibernate JDBC事务是什么”,在日常操作中,相信很多人在Hibernate JDBC事务是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hibernate JDBC事务是什么...
    99+
    2023-06-17
  • JDBC 中的 ResultSetMetaData 是什么其意义何在
    ResultSetMetaData是一个接口,它提供了有关ResultSet中列的信息,如列的名称、数据类型、长度等。ResultS...
    99+
    2023-10-10
    JDBC
  • JDBC中的DatabaseMetaData是什么其意义何在
    DatabaseMetaData是JDBC API中的一个接口,它提供了关于数据库的元数据信息,如数据库的结构、表的信息、列的信息、...
    99+
    2023-10-10
    JDBC
  • JDBC中的DatabaseMetaData是什么?其意义何在?
    通常,有关数据的数据称为元数据。 DatabaseMetaData 接口提供了一些方法来获取有关您所连接的数据库的信息,例如数据库名称、数据库驱动程序版本、最大列长度等...以下是一些方法DatabaseMetaData 类。方法说明get...
    99+
    2023-10-22
  • jdbc工作原理是什么
    JDBC(Java Database Connectivity)是Java程序与数据库进行交互的一种标准接口。它定义了一组用于访问和...
    99+
    2023-08-31
    jdbc
  • python中jdbc连接数据库的步骤是什么
    在Python中使用JDBC连接数据库的步骤如下:1. 安装JDBC驱动程序:对于不同的数据库,需要安装相应的JDBC驱动程序。可以...
    99+
    2023-10-30
    jdbc python 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作