---
title: "java.sql.Statement - JDBC 驱动程序  V2.4.13 | OceanBase 文档中心"
description: java.sql.Statement java.sql.Statement 是 SQL 语句接口。 描述 java.sql.Statement 用于执行静态 SQL 语句并返回所产生的结果对象。 默认情况下，每个 Statement 对象只能同时打开一个 ResultSet 对象。因此，如果读取一个 ResultSe…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*bhcER5Qvet8AAAAAAAAAAAAADiGDAQ/original) JDBC 驱动程序 V 2.4.13

# java.sql.Statement

更新时间：2026-07-22 17:45:59

[编辑](https://github.com/oceanbase/connector-j-doc/edit/V2.4.13/zh-CN/400.reference-information/300.common-interfaces/1000.java-sql-statement.md)  

`java.sql.Statement` 是 SQL 语句接口。

## 描述

`java.sql.Statement` 用于执行静态 SQL 语句并返回所产生的结果对象。

默认情况下，每个 Statement 对象只能同时打开一个 ResultSet 对象。因此，如果读取一个 ResultSet 对象时与读取另一个对象有交集，则这两个对象都必须由不同的 Statement 对象生成。如果存在打开的 ResultSet 对象，则 Statement 接口中的所有执行方法都会隐式关闭该语句当前的 ResultSet 对象。

## 方法

| 方法名 | 返回值类型 | 描述 | Oracle 模式是否支持 | MySQL 模式是否支持 |
| --- | --- | --- | --- | --- |
| executeQuery(String sql) | ResultSet | 执行返回单个 ResultSet 的 SQL 查询。 | 是 | 是 |
| executeUpdate(String sql) | int | 执行插入、更新或删除操作，返回影响行数。 | 是 | 是 |
| close() | void | 关闭 Statement 对象，并释放相关资源。 | 是 | 是 |
| getMaxFieldSize() | int | 获取结果集中最大的列大小。 | 是 | 是 |
| setMaxFieldSize(int max) | void | 设置结果集中最大的列大小。 | 是 | 是 |
| getMaxRows() | int | 获取 Statement 对象可返回的最大行数。 | 是 | 是 |
| setMaxRows(int max) | void | 设置 Statement 对象可返回的最大行数。 | 是。从 V2.4.11 版本开始支持返回指定结果集行数。 | 是 |
| setEscapeProcessing(boolean enable) | void | 是否启用 SQL 转义处理。 | 是 | 是 |
| getQueryTimeout() | int | 获取查询超时时间（单位：秒）。 | 是 | 是 |
| setQueryTimeout(int seconds) | void | 设置查询超时时间（单位：秒）。 | 是 | 是 |
| cancel() | void | 取消 Statement 对象当前的执行。 | 是 | 是 |
| getWarnings() | SQLWarning | 获取 Statement 对象执行后的警告。 | 是 | 是 |
| clearWarnings() | void | 清除 Statement 对象上的所有警告。 | 是 | 是 |
| setCursorName(String name) | void | 设置 ResultSet 对象的游标名称（MySQL 和 Oracle 模式均不支持）。 | 否 | 否 |
| getResultSet() | ResultSet | 获取当前的 ResultSet 对象。 | 是 | 是 |
| getUpdateCount() | int | 获取已执行更新操作影响的行数。 | 是 | 是 |
| getMoreResults() | Boolean | 移动到下一个结果。 | 是 | 是 |
| setFetchDirection(int direction) | void | 设置 ResultSet 的获取方向（MySQL 和 Oracle 模式均不支持）。 | 否 | 否 |
| getFetchDirection() | int | 获取 ResultSet 的获取方向。 | 是 | 是 |
| setFetchSize(int rows) | void | 设置 Statement 的提取大小（行数）。 | 是 | 是 |
| getFetchSize() | int | 获取 Statement 的提取大小。 | 是 | 是 |
| getResultSetConcurrency() | int | 获取 ResultSet 的并发模式。 | 是 | 是 |
| getResultSetType() | int | 获取 ResultSet 的类型。 | 是 | 是 |
| addBatch(String sql) | void | 将一个 SQL 语句添加到批处理。 | 是 | 是 |
| clearBatch() | void | 清空批处理命令。 | 是 | 是 |
| executeBatch() | int[] | 执行批处理中的语句，返回更新计数数组 | 是 | 是 |
| getConnection() | Connection | 获取创建此 Statement 的 Connection 对象。 | 是 | 是 |
| getGeneratedKeys() | ResultSet | 获取执行 INSERT 语句生成的自动增长键值。Oracle 模式下当设置参数为 `compatibleOjdbcVersion=8&useArrayBinding=true&useOraclePrepareExecute=true` 时，支持 `retuning...into..` 语句的方式来实现 getGeneratedKeys() 获取批量操作结果集 | 是 | 是 |
| execute(String sql, int autoGeneratedKeys) | Boolean | 执行给定的SQL语句，并指示是否返回自动生成的键。 | 是 | 是 |
| execute(String sql, intcolumnIndexes[]) | Boolean | 执行给定的SQL语句，并允许指定返回的自动生成键的列。 | 是 | 是 |
| execute(String sql,String columnNames[]) | Boolean | 执行SQL语句，指定返回的自动生成的键的名称。 | 是 | 是 |
| getResultSetHoldability() | int | 获取 ResultSet 对象的可保持性。 | 是 | 是 |
| isClosed() | Boolean | 检查此 Statement 是否已关闭。 | 是 | 是 |
| setPoolable(boolean poolable) | void | 提示池应用程序是否可池化这个 Statement 对象。 | 否 | 否 |
| isPoolable() | Boolean | 检查此 Statement 是否被标记为可池化。 | 是 | 是 |
| closeOnCompletion() | void | 指示当所有打开的相关 ResultSet 对象都被关闭时，该 Statement 对象应该关闭。 | 是 | 是 |
| isCloseOnCompletion() | Boolean | 检查此 Statement 对象是否已被标记完成时关闭。 | 是 | 是 |
| getLargeUpdateCount() | long | 获得执行更新操作影响的大型行数。 | 是 | 是 |
| setLargeMaxRows(long max) | void | 为 Statement 对象执行的任何 ResultSet 对象设置最大行数的大型版本。 | 是 | 是 |
| getLargeMaxRows() | long | 检索由此 Statement 对象生成的最大行数限制的大型版本。 | 是 | 是 |
| executeLargeBatch() | long[] | 执行批处理命令的大型版本，返回一个更新计数数组。 | 是 | 是 |
| executeLargeUpdate(String sql) | long | 执行给定的 SQL 语句的大型版本，适用于更新操作。 | 是 | 是 |
| executeLargeUpdate(String sql, int autoGeneratedKeys) | long | 执行 SQL 语句（大型更新），指定是否生成自动键。 | 是 | 是 |
| executeLargeUpdate(String sql, int columnIndexes[]) | long | 执行 SQL 语句（大型更新），指定自动生成的键的列索引。 | 是 | 是 |
| executeLargeUpdate(String sql,String columnNames[]) | long | 执行 SQL 语句（大型更新），指定自动生成的键的列索引。 | 是 | 是 |

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
