基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
java.sql.Statement
更新时间:2026-07-22 17:45:59
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 语句(大型更新),指定自动生成的键的列索引。 | 是 | 是 |