`

JDBC中操作数据库的三个对象:Statement;PreparedStatement;CallableStatement

    博客分类:
  • JAVA
阅读更多
1、创建 Statement 对象

  建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句。Statement 对象用 Connection 的方法 createStatement 创建,如下列代码段中所示:

Connection con = DriverManager.getConnection(url, "sunny", ""); 
Statement stmt = con.createStatement(); 


  为了执行 Statement 对象,被发送到数据库的 SQL 语句将被作为参数提供给 Statement 的方法:

ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table2"); 


  2、使用 Statement 对象执行语句

  Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。

  方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。

  方法 executeUpdate 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。

  方法 execute 用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能,所以本概述后面将在单独一节中对其进行介绍。

  执行语句的所有方法都将关闭所调用的 Statement 对象的当前打开结果集(如果存在)。这意味着在重新执行 Statement 对象之前,需要完成对当前 ResultSet 对象的处理。

  应注意,继承了 Statement 接口中所有方法的 PreparedStatement 接口都有自己的 executeQuery、executeUpdate 和 execute 方法。Statement 对象本身不包含 SQL 语句,因而必须给 Statement.execute 方法提供 SQL 语句作为参数。PreparedStatement 对象并不将 SQL 语句作为参数提供给这些方法,因为它们已经包含预编译 SQL 语句。CallableStatement 对象继承这些方法的 PreparedStatement 形式。对于这些方法的 PreparedStatement 或 CallableStatement 版本,使用查询参数将抛出 SQLException。

  3、语句完成

  当连接处于自动提交模式时,其中所执行的语句在完成时将自动提交或还原。语句在已执行且所有结果返回时,即认为已完成。对于返回一个结果集的 executeQuery 方法,在检索完 ResultSet 对象的所有行时该语句完成。对于方法 executeUpdate,当它执行时语句即完成。但在少数调用方法 execute 的情况中,在检索所有结果集或它生成的更新计数之后语句才完成。

   概述

  Statement 对象用于将 SQL 语句发送到数据库中。实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQL 语句的包容器:Statement、 PreparedStatement(它从 Statement 继承而来)和 CallableStatement(它从 PreparedStatement 继承而来)。它们都专用于发送特定类型的 SQL 语句: Statement 对象用于执行不带参数的简单 SQL 语句;PreparedStatement 对象用于执行带或不带 IN 参数的预编译 SQL 语句;CallableStatement 对象用于执行对数据库已存储过程的调用。

  Statement 接口提供了执行语句和获取结果的基本方法。PreparedStatement 接口添加了处理 IN 参数的方法;而 CallableStatement 添加了处理 OUT 参数的方法。

有些 DBMS 将已存储过程中的每条语句视为独立的语句;而另外一些则将整个过程视为一个复合语句。在启用自动提交时,这种差别就变得非常重要,因为它影响什么时候调用 commit 方法。在前一种情况中,每条语句单独提交;在后一种情况中,所有语句同时提交。

  4、关闭 Statement 对象

  Statement 对象将由 Java 垃圾收集程序自动关闭。而作为一种好的编程风格,应在不需要 Statement 对象时显式地关闭它们。这将立即释放 DBMS 资源,有助于避免潜在的内存问题。
分享到:
评论

相关推荐

    非常有用的jdbc的操作数据库

    JDBC(Java Database Connectivity)是Java编程语言与各种数据库交互的一种标准接口,它允许Java程序通过执行SQL语句来操作数据库。这篇博文“非常有用的jdbc的操作数据库”提供了一些实用的示例,帮助开发者更好地...

    使用jdbc动态连接数据库

    `Connection`接口表示一个到数据库的实际连接,所有针对数据库的操作都是基于这个连接进行的。`Connection`的一些常用方法包括: - `clearWarnings()`:清除所有警告信息。 - `createStatement()`:创建一个`...

    JDBC与Java数据库程序设计

    Java Database Connectivity(JDBC)是Java编程语言中用于与各种类型数据库交互的一组接口和类。它是Java平台标准的一部分,允许开发人员执行SQL语句、处理结果集以及管理数据库连接。JDBC为Java应用程序提供了标准...

    JDBC与Java数据库编程.pdf

    《JDBC与Java数据库编程》一书旨在深入探讨Java如何通过JDBC(Java Database Connectivity)这一接口与数据库进行高效互动,实现数据的读取、写入、更新等操作。以下是对该主题的详细解析,包括JDBC的概念、体系结构...

    JDBC与Java数据库编程

    在Java世界中,JDBC(Java Database Connectivity)是连接Java应用程序和各种数据库的关键技术。它为开发者提供了一组标准API,使得程序可以独立于特定的数据库管理系统进行数据操作。本教程将深入探讨JDBC的核心...

    JDBC与Java数据库程序设计(中文)

    在JDBC编程中,需要捕获SQLException及其子类,以处理可能出现的数据库操作错误。 总之,JDBC是Java开发人员与数据库进行交互的重要工具,理解和熟练掌握JDBC能有效提升数据库应用的开发效率和质量。通过阅读《JDBC...

    第8章数据库编程.ppt

    数据库编程技术 ...本章节主要介绍了 JDBC 工作原理、JDBC URL 和数据库连接、Statement 对象和 SQL 语句执行、高级开发技巧等方面的知识点,为读者提供了 Java EE 编程技术中数据库编程的相关知识基础。

    神通数据库JDBC驱动包

    3. **Statement、PreparedStatement和CallableStatement接口**:它们分别用于执行简单的SQL语句、预编译的SQL语句和调用存储过程。 4. **ResultSet接口**:存储查询结果,提供遍历查询结果集的方法。 5. **...

    JDBC与Java数据库程序设计.rar

    在Java中,使用JDBC进行数据库编程主要分为以下几个步骤: 1. **加载驱动**:通过Class.forName()方法加载数据库驱动。例如,对于MySQL,我们会加载"com.mysql.jdbc.Driver"。 2. **建立连接**:使用DriverManager...

    JDBC 数据库链接数 据库链接操作实例

    有三种Statement类型:Statement(默认),PreparedStatement(预编译的SQL,更安全),CallableStatement(用于调用存储过程)。 4. **执行SQL语句**:通过Statement对象的executeQuery()或executeUpdate()方法...

    JDBC操作各种数据库经验技巧集萃,内含多本相关的电子书

    在IT领域,JDBC(Java Database Connectivity)是Java编程语言中用于访问数据库的标准接口,它为程序员提供了一种与数据库交互的方式,无论底层的数据库管理系统(DBMS)是什么。本资料集萃主要聚焦于JDBC在操作各种...

    【技术篇】JDBC连接ORACLE数据库之方法.docx

    5. 使用PreparedStatement和CallableStatement: 对于含有参数的SQL语句,推荐使用PreparedStatement,它可以防止SQL注入攻击,并且性能更优。对于存储过程的调用,则使用CallableStatement。 6. 数据库连接池: ...

    jdbc连接各种数据库

    此外,获取数据库资源,如执行SQL语句、处理结果集等,需要使用`Statement`、`PreparedStatement`或`CallableStatement`对象,并且要注意关闭资源以防止内存泄漏。例如: ```java Statement stmt = conn....

    jdbc连接数据库步骤

    JDBC(Java Database Connectivity)是Java语言中用于连接和操作数据库的应用程序接口。它定义了Java应用程序如何与数据库之间通信,允许用户执行SQL语句并获取结果。对于初学者来说,理解JDBC连接数据库的基本步骤...

    JDBC连接数据库方法文档

    JDBC 连接数据库方法...JDBC 连接数据库的方法可以分为四个步骤:加载 JDBC 驱动程序、提供 JDBC 连接的 URL、创建数据库的连接、创建一个 Statement。通过这四个步骤,开发者可以轻松地连接数据库并执行 SQL 语句。

    使用JDBC连接各种数据库总结

    4. **使用Connection对象**:一旦建立了连接,就可以通过`Connection`对象进行数据库操作,如创建`Statement`或`PreparedStatement`来执行SQL查询,使用`CallableStatement`调用存储过程,以及管理事务等。...

    使用 JDBC 的高级数据库操作

    在Java编程环境中,JDBC(Java Database Connectivity)是连接Java应用程序和各种数据库的关键技术。它为开发者提供了一套标准API,使得数据存取、管理以及处理变得更加便捷。本篇文章将深入探讨使用JDBC进行高级...

Global site tag (gtag.js) - Google Analytics