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 资源,有助于避免潜在的内存问题。
分享到:
相关推荐
《Oracle语句追踪器——Statement Tracer for Oracle详解》 在Oracle数据库的管理和优化工作中,Statement Tracer for Oracle是一款至关重要的工具。它以其强大的功能和直观的用户界面,为DBA(数据库管理员)和...
prepareStatement和Statement的区别 prepareStatement和Statement是 Java 中两个常用的数据库操作接口,它们都可以用来执行 SQL 语句,但是它们之间有着明显的区别。 首先,从创建时的区别开始,Statement 需要...
"Statement Tracer for Oracle"是一款强大的工具,专门用于追踪和分析Oracle数据库中的SQL语句执行情况,从而提升数据库性能。下面将详细阐述这款工具的主要功能、使用方法及其在实际工作中的应用。 1. SQL语句追踪...
hsbc statement template
"Statement Tracer for Oracle"是一个专门针对Oracle数据库的代码跟踪工具,它帮助开发者和DBA深入分析SQL语句的执行情况,从而提高数据库性能和解决问题。 Statement Tracer for Oracle的主要功能包括: 1. **...
Statement和PreparedStatement之间的区别 Statement和PreparedStatement是JDBC中的两种不同的语句对象,用于执行数据库操作。虽然它们都可以执行SQL语句,但是它们之间存在着很大的区别。 首先, Statement对象...
在学术界,尤其是在科研论文的发表过程中,作者贡献声明(Credit Author Statement)逐渐成为一种重要的实践,以确保透明度和公正性。ESWA(可能是"European Society for Water Assessment"的缩写,但在此上下文中未...
"ESWA的Declaration of Interest statement(利益声明)word版"是一个重要的文件,它涉及到作者在发表论文时必须公开的任何可能影响其研究成果公正性的财务或个人关系。这份声明通常会伴随论文一同发布,以确保读者...
在Oracle数据库管理中,"statement_tracer_for_oracle"是一个重要的工具,主要用于追踪SQL语句的执行情况,以便于在程序运行时收集信息并进行问题分析。这个工具可以帮助数据库管理员和开发人员深入理解数据库的运行...
《IBRD Statement Of Loans 贷款数据集详解》 国际复兴开发银行(International Bank for Reconstruction and Development,简称IBRD)是世界银行的主要机构之一,致力于促进全球经济发展和减少贫困。其发布的...
《Statement Tracer for ADO:洞察ADO SQL执行的利器》 在信息技术领域,数据库操作是不可或缺的一部分,而ADO(ActiveX Data Objects)作为Microsoft提供的一个数据访问接口,被广泛应用于各种Windows应用程序中,...
其中,Statement和PreparedStatement是两种常用的SQL语句执行接口。在理解和掌握它们之间的区别之前,我们需要首先了解JDBC对于数据库操作的基本概念。 JDBC的主要作用是提供了一套标准的API,使得Java程序能够连接...
PrepareStatement是JDBC提供的一种预编译的SQL语句,它可以提高数据库操作的效率和安全性。本资源主要涵盖了使用JDBC PrepareStatement进行MySQL数据库操作的各种场景,包括基本的查询、更新以及批量处理。 首先,...
"Statement Tracer for Oracle" 是一款专为监测和分析本地进程对Oracle数据库查询行为的工具。这款软件的主要功能是帮助用户查看并记录执行的SQL语句,从而提供了一个深入洞察数据库操作的窗口,对于数据库性能优化...
**JDBC(用PrepareStatement实现)** Java Database Connectivity (JDBC) 是Java平台中的一个标准API,用于在Java应用程序和各种数据库之间建立桥梁。它允许Java开发者执行SQL语句,进行数据查询、更新和删除等操作。...