`
qiuyu999
  • 浏览: 2497 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java Statement详细用法

阅读更多
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-相关概述
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 资源,有助于避免潜在的内存问题。
分享到:
评论

相关推荐

    java数据库连接Statement

    通过深入探讨`Statement`的创建、使用方法以及与之相关的其他类(如`PreparedStatement`和`CallableStatement`)的区别,帮助读者更好地理解如何在Java程序中执行SQL命令。 ### Java数据库连接中的Statement #### ...

    java数据库连接PrepareStatement

    如果需要将 Java 类型转换为其他 SQL 类型,可以使用相应的 `setXXX` 方法。例如,将 `short` 类型转换为 `SMALLINT`: ```java pstmt.setShort(2, (short) 44); ``` #### 六、小结 `PreparedStatement` 提供了一...

    prepareStatement和Statement的区别

    下面是一个使用 Statement 的 Java 代码示例: ```java package com.JDBC.proc; import java.sql.*; public class StatementTest { public static void main(String args[]){ Connection conn = null; Statement...

    java sql 普通用法

    ### Java SQL 普通用法 #### 知识点概览 本文将详细介绍Java中进行SQL操作的基本步骤,包括数据库连接、执行SQL语句、处理结果集等,并通过一个具体的示例来展示如何在Java程序中实现这些功能。 #### 数据库连接 ...

    Java数据库详细的连接步骤

    本文将详细介绍使用Java JDBC(Java Database Connectivity)连接数据库的详细步骤,并提供相关代码示例。 1. **加载JDBC驱动程序** 在Java程序中连接数据库的第一步是加载相应的JDBC驱动。这通常通过调用`java....

    JDBC(用PrepareStatement实现)

    在实际开发中,为了提高效率和安全性,我们通常会使用PreparedStatement接口来代替Statement接口。 1. **PreparedStatement简介** PreparedStatement是Statement的一个子接口,它的主要优势在于预编译。预编译的...

    用传参数的方法实现Java对SQLite的添加和查询

    本文将详细介绍如何通过传递参数的方法实现对SQLite数据库的添加和查询操作,避免直接拼接SQL语句,从而提高代码的安全性和可读性。 首先,确保你的项目已经引入了SQLite的JDBC驱动,如`sqlite-jdbc-3.27.2.1.jar`...

    java学习详细笔记

    ### Java学习详细笔记 #### 1. 什么是JDBC? JDBC(Java Database Connectivity)是Java平台中的数据库连接技术,它允许Java程序连接各种类型的数据库并执行SQL命令。JDBC由一组接口和类组成,这些接口和类为开发...

    JAVA使用JDBC进行insert操作添加信息到数据库

    3. 创建 Statement 对象:使用 `Connection` 对象创建 `Statement` 对象,例如 `createStatement()` 方法。 4. 执行 SQL 语句:使用 `Statement` 对象执行 SQL 语句,例如 `executeUpdate()` 方法。 5. 关闭资源:...

    MySQL.rar_JDBC程序_statement_完整java开发中JDBC连接数据库代码

    本教程将详细讲解如何在Java程序中使用JDBC与MySQL数据库进行交互,主要包括以下几个关键步骤: 1. **加载JDBC驱动程序**: 在Java程序中,我们需要首先加载MySQL的JDBC驱动,这通常通过`Class.forName()`方法完成...

    JDBC PrepareStatement 使用(附各种场景 demo)

    这个资源提供的示例代码将帮助开发者深入理解如何在实际项目中运用JDBC的PrepareStatement进行MySQL操作,无论是简单的查询、更新,还是复杂的批量处理,都有详细的示例作为参考。学习并掌握这些内容,对于提升Java...

    JAVA jdbc连接sql2000详细流程

    使用`Statement`对象的`executeQuery()`或`executeUpdate()`方法执行SQL。例如,查询数据: ```java ResultSet rs = stmt.executeQuery("SELECT * FROM myTable"); ``` 5. **处理结果集**: `ResultSet`对象...

    java数据库连接方法(一)

    在"java数据库连接方法.doc"文档中,可能详细展示了如何在Java代码中实现上述步骤,包括加载驱动、创建连接、执行SQL以及关闭资源的示例。通过阅读文档,你可以更好地理解这些概念,并能在实际项目中运用。 总的来...

    java 告警提示代码

    在实际项目中,我们可能会结合使用`try-catch-finally`块来捕获并处理异常,同时记录详细的告警信息。例如: ```java try { // 可能抛出异常的代码 } catch (Exception e) { logger.log(Level.WARNING, "发生了一...

    Java使用Jdbc连接Oracle执行简单查询操作示例

    本文详细分析了Java使用Jdbc连接Oracle数据库并执行简单查询操作的过程,并提供了一个简单的Java程序示例。同时,我们还讨论了使用PreparedStatement防止SQL注入的方法。通过本文,读者可以了解Java中Jdbc连接Oracle...

    java 连接gbase驱动包gbase-connector-java-8.3-bin.jar

    Java连接GBase数据库通常涉及到使用特定的数据库驱动,即JDBC驱动。GBase-Connector-Java-8.3-bin.jar是用于Java应用程序连接GBase数据库的驱动包。在这个压缩包中,主要包含的是GBase数据库的Java JDBC驱动程序,...

    MySQL-connector-java-8.0.28

    1. 导入所需的JDBC类:通常,我们需要导入java.sql.Connection、java.sql.DriverManager、java.sql.Statement 和 java.sql.ResultSet 等基本接口或类。 2. 注册JDBC驱动:通过Class.forName()方法加载并注册MySQL的...

    java连接oracle数据库jar包

    Java连接Oracle数据库主要依赖于JDBC(Java Database Connectivity)...正确引入Oracle JDBC驱动JAR包,并理解其使用方法,是开发Java数据库应用的基础。在实际开发中,还需要注意错误处理、性能优化和安全性等问题。

Global site tag (gtag.js) - Google Analytics