- 所有父级接口:
AutoCloseable,Wrapper
- 所有已知的子接口:
CallableStatement,PreparedStatement
用于执行静态 SQL 语句并返回其生成的结果的对象。
默认情况下,每个 Statement 对象只能同时打开一个 ResultSet 对象。因此,如果一个 ResultSet 对象的读取与另一个对象的读取交错,则每个对象都必须由不同的 Statement 对象生成。如果存在打开的对象,Statement 接口中的所有执行方法都会隐式关闭语句的当前 ResultSet 对象。
- 自从:
- 1.1
- 参见:
-
字段摘要
字段修饰符和类型Field描述static final int该常量指示在调用getMoreResults时应关闭所有先前保持打开状态的ResultSet对象。static final int指示在调用getMoreResults时应关闭当前ResultSet对象的常量。static final int指示执行批处理语句时发生错误的常量。static final int指示在调用getMoreResults时不应关闭当前ResultSet对象的常量。static final int该常量指示生成的密钥不应可用于检索。static final int指示生成的密钥应可用于检索的常量。static final int该常量指示批处理语句已成功执行,但没有对其影响的行数的计数可用。 -
方法总结
修饰符和类型方法描述void将给定的 SQL 命令添加到此Statement对象的当前命令列表。voidcancel()如果 DBMS 和驱动程序都支持中止 SQL 语句,则取消此Statement对象。void清空此Statement对象的当前 SQL 命令列表。void清除关于此Statement对象的所有警告报告。voidclose()立即释放此Statement对象的数据库和 JDBC 资源,而不是等待它自动关闭时发生这种情况。void指定此Statement将在其所有依赖结果集关闭时关闭。default StringenquoteIdentifier(String identifier, boolean alwaysQuote) 返回一个 SQL 标识符。default StringenquoteLiteral(String val) 返回用单引号括起来的String。default String返回一个String表示用单引号括起来并以大写字母 N 为前缀的国家字符集文字。boolean执行给定的 SQL 语句,它可能返回多个结果。boolean执行给定的 SQL 语句,它可能会返回多个结果,并向驱动程序发出信号,告知任何自动生成的键都应可供检索。boolean执行给定的 SQL 语句,它可能会返回多个结果,并向驱动程序发出信号,表明给定数组中指示的自动生成的键应该可供检索。boolean执行给定的 SQL 语句,它可能会返回多个结果,并向驱动程序发出信号,表明给定数组中指示的自动生成的键应该可供检索。int[]向数据库提交一批命令以供执行,如果所有命令都成功执行,则返回一个更新计数数组。default long[]向数据库提交一批命令以供执行,如果所有命令都成功执行,则返回一个更新计数数组。default longexecuteLargeUpdate(String sql) 执行给定的 SQL 语句,它可以是INSERT、UPDATE或DELETE语句或不返回任何内容的 SQL 语句,例如 SQL DDL 语句。default longexecuteLargeUpdate(String sql, int autoGeneratedKeys) 执行给定的 SQL 语句并使用给定的标志向驱动程序发出信号,告知驱动程序是否应使此Statement对象生成的自动生成的键可用于检索。default longexecuteLargeUpdate(String sql, int[] columnIndexes) 执行给定的 SQL 语句并向驱动程序发出信号,表明给定数组中指示的自动生成的键应该可供检索。default longexecuteLargeUpdate(String sql, String[] columnNames) 执行给定的 SQL 语句并向驱动程序发出信号,表明给定数组中指示的自动生成的键应该可供检索。executeQuery(String sql) 执行给定的 SQL 语句,该语句返回单个ResultSet对象。intexecuteUpdate(String sql) 执行给定的 SQL 语句,它可以是INSERT、UPDATE或DELETE语句或不返回任何内容的 SQL 语句,例如 SQL DDL 语句。intexecuteUpdate(String sql, int autoGeneratedKeys) 执行给定的 SQL 语句并使用给定的标志向驱动程序发出信号,告知驱动程序是否应使此Statement对象生成的自动生成的键可用于检索。intexecuteUpdate(String sql, int[] columnIndexes) 执行给定的 SQL 语句并向驱动程序发出信号,表明给定数组中指示的自动生成的键应该可供检索。intexecuteUpdate(String sql, String[] columnNames) 执行给定的 SQL 语句并向驱动程序发出信号,表明给定数组中指示的自动生成的键应该可供检索。检索生成此Statement对象的Connection对象。int检索从数据库表中获取行的方向,这是从此Statement对象生成的结果集的默认方向。int检索作为从该Statement对象生成的ResultSet对象的默认提取大小的结果集行数。检索因执行此Statement对象而创建的任何自动生成的键。default long检索由此Statement对象生成的ResultSet对象可以包含的最大行数。default long检索当前结果作为更新计数;如果结果是ResultSet对象或没有更多结果,则返回 -1。int检索可为此Statement对象生成的ResultSet对象中的字符和二进制列值返回的最大字节数。int检索由此Statement对象生成的ResultSet对象可以包含的最大行数。boolean移动到此Statement对象的下一个结果,如果它是ResultSet对象则返回true,并隐式关闭使用方法getResultSet获得的任何当前ResultSet对象。booleangetMoreResults(int current) 移动到此Statement对象的下一个结果,根据给定标志指定的指令处理任何当前ResultSet对象,如果下一个结果是ResultSet对象,则返回true。int检索驱动程序等待Statement对象执行的秒数。检索当前结果作为ResultSet对象。int检索由此Statement对象生成的ResultSet对象的结果集并发性。int检索由此Statement对象生成的ResultSet对象的结果集可持有性。int检索由此Statement对象生成的ResultSet对象的结果集类型。int检索当前结果作为更新计数;如果结果是ResultSet对象或没有更多结果,则返回 -1。检索对此Statement对象的调用报告的第一个警告。booleanisClosed()检索此Statement对象是否已关闭。boolean返回一个值,指示此Statement是否将在其所有依赖结果集关闭时关闭。boolean返回一个值,指示Statement是否可池化。default booleanisSimpleIdentifier(String identifier) 检索identifier是否为简单的 SQL 标识符。voidsetCursorName(String name) 将 SQL 游标名称设置为给定的String,后续Statement对象execute方法将使用它。voidsetEscapeProcessing(boolean enable) 打开或关闭转义处理。voidsetFetchDirection(int direction) 向驱动程序提供有关在使用此Statement对象创建的ResultSet对象中处理行的方向的提示。voidsetFetchSize(int rows) 当此Statement生成的ResultSet对象需要更多行时,向 JDBC 驱动程序提示应从数据库中获取的行数。default voidsetLargeMaxRows(long max) 将此Statement对象生成的任何ResultSet对象可以包含的最大行数限制设置为给定数。voidsetMaxFieldSize(int max) 设置此Statement对象生成的ResultSet对象中字符和二进制列值可以返回的最大字节数限制。voidsetMaxRows(int max) 将此Statement对象生成的任何ResultSet对象可以包含的最大行数限制设置为给定数。voidsetPoolable(boolean poolable) 请求将Statement合并或不合并。voidsetQueryTimeout(int seconds) 将驱动程序等待Statement对象执行的秒数设置为给定的秒数。在接口 java.sql.Wrapper 中声明的方法
isWrapperFor, unwrap
-
字段详细信息
-
CLOSE_CURRENT_RESULT
static final int CLOSE_CURRENT_RESULT指示在调用getMoreResults时应关闭当前ResultSet对象的常量。- 自从:
- 1.4
- 参见:
-
KEEP_CURRENT_RESULT
static final int KEEP_CURRENT_RESULT指示在调用getMoreResults时不应关闭当前ResultSet对象的常量。- 自从:
- 1.4
- 参见:
-
CLOSE_ALL_RESULTS
static final int CLOSE_ALL_RESULTS该常量指示在调用getMoreResults时应关闭所有先前保持打开状态的ResultSet对象。- 自从:
- 1.4
- 参见:
-
SUCCESS_NO_INFO
static final int SUCCESS_NO_INFO该常量指示批处理语句已成功执行,但没有对其影响的行数的计数可用。- 自从:
- 1.4
- 参见:
-
EXECUTE_FAILED
static final int EXECUTE_FAILED指示执行批处理语句时发生错误的常量。- 自从:
- 1.4
- 参见:
-
RETURN_GENERATED_KEYS
static final int RETURN_GENERATED_KEYS指示生成的密钥应可用于检索的常量。- 自从:
- 1.4
- 参见:
-
NO_GENERATED_KEYS
static final int NO_GENERATED_KEYS该常量指示生成的密钥不应可用于检索。- 自从:
- 1.4
- 参见:
-
-
方法详情
-
executeQuery
执行给定的 SQL 语句,该语句返回单个ResultSet对象。Note: 无法在
PreparedStatement或CallableStatement上调用此方法。- 参数:
sql- 要发送到数据库的 SQL 语句,通常是静态 SQLSELECT语句- 返回:
-
一个
ResultSet对象,包含给定查询产生的数据;从不null - 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法,给定的 SQL 语句生成除单个ResultSet对象以外的任何对象,在PreparedStatement或CallableStatement上调用该方法SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement
-
executeUpdate
执行给定的 SQL 语句,它可以是INSERT、UPDATE或DELETE语句或不返回任何内容的 SQL 语句,例如 SQL DDL 语句。Note: 无法在
PreparedStatement或CallableStatement上调用此方法。- 参数:
sql- SQL 数据操作语言 (DML) 语句,例如INSERT、UPDATE或DELETE;或不返回任何内容的 SQL 语句,例如 DDL 语句。- 返回:
- (1) SQL 数据操作语言 (DML) 语句的行计数或 (2) 0 用于不返回任何内容的 SQL 语句
- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法,给定的 SQL 语句生成一个ResultSet对象,在PreparedStatement或CallableStatement上调用该方法SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement
-
close
立即释放此Statement对象的数据库和 JDBC 资源,而不是等待它自动关闭时发生这种情况。通常最好在使用完资源后立即释放它们,以避免占用数据库资源。在已关闭的
Statement对象上调用方法close无效。笔记:当
Statement对象关闭时,其当前ResultSet对象(如果存在)也将关闭。- 指定者:
close在接口AutoCloseable中- 抛出:
SQLException- 如果发生数据库访问错误
-
getMaxFieldSize
检索可为此Statement对象生成的ResultSet对象中的字符和二进制列值返回的最大字节数。此限制仅适用于BINARY、VARBINARY、LONGVARBINARY、CHAR、VARCHAR、NCHAR、NVARCHAR、LONGNVARCHAR和LONGVARCHAR列。如果超出限制,多余的数据将被静默丢弃。- 返回:
- 存储字符和二进制值的列的当前列大小限制;零意味着没有限制
- 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法- 参见:
-
setMaxFieldSize
设置此Statement对象生成的ResultSet对象中字符和二进制列值可以返回的最大字节数限制。此限制仅适用于BINARY、VARBINARY、LONGVARBINARY、CHAR、VARCHAR、NCHAR、NVARCHAR、LONGNVARCHAR和LONGVARCHAR字段。如果超出限制,多余的数据将被静默丢弃。为了获得最大的可移植性,请使用大于 256 的值。- 参数:
max- 以字节为单位的新列大小限制;零意味着没有限制- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement或不满足条件max >= 0时调用此方法- 参见:
-
getMaxRows
检索由此Statement对象生成的ResultSet对象可以包含的最大行数。如果超过此限制,多余的行将被静默删除。- 返回:
-
此
Statement对象生成的ResultSet对象的当前最大行数;零意味着没有限制 - 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法- 参见:
-
setMaxRows
将此Statement对象生成的任何ResultSet对象可以包含的最大行数限制设置为给定数。如果超过限制,多余的行将被静默删除。- 参数:
max- 新的最大行数限制;零意味着没有限制- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement或不满足条件max >= 0时调用此方法- 参见:
-
setEscapeProcessing
打开或关闭转义处理。如果启用转义扫描(默认),驱动程序将在将 SQL 语句发送到数据库之前进行转义替换。Connection和DataSource属性escapeProcessing可用于更改默认转义处理行为。 true 值(默认值)为所有Statement对象启用转义处理。 false 值禁用所有Statement对象的转义处理。setEscapeProcessing方法可用于指定单个Statement对象的转义处理行为。注意:由于准备好的语句通常在进行此调用之前已被解析,因此禁用
PreparedStatements对象的转义处理将无效。- 参数:
enable-true启用转义处理;false禁用它- 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法
-
getQueryTimeout
检索驱动程序等待Statement对象执行的秒数。如果超出限制,则会抛出SQLException。- 返回:
- 当前查询超时限制(以秒为单位);零意味着没有限制
- 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法- 参见:
-
setQueryTimeout
将驱动程序等待Statement对象执行的秒数设置为给定的秒数。默认情况下,运行语句完成所允许的时间量没有限制。如果超出限制,则会抛出SQLTimeoutException。 JDBC 驱动程序必须将此限制应用于execute、executeQuery和executeUpdate方法。Note: JDBC 驱动程序实现也可能将此限制应用于
ResultSet方法(有关详细信息,请参阅您的驱动程序供应商文档)。Note: 在
Statement批处理的情况下,实现定义了超时是应用于通过addBatch方法添加的单个 SQL 命令还是应用于由executeBatch方法调用的整批 SQL 命令(请参阅您的驱动程序供应商文档细节)。- 参数:
seconds- 以秒为单位的新查询超时限制;零意味着没有限制- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement或不满足条件seconds >= 0时调用此方法- 参见:
-
cancel
如果 DBMS 和驱动程序都支持中止 SQL 语句,则取消此Statement对象。一个线程可以使用此方法取消另一个线程正在执行的语句。- 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法
-
getWarnings
检索对此Statement对象的调用报告的第一个警告。随后的Statement对象警告将链接到此SQLWarning对象。每次(重新)执行语句时都会自动清除警告链。不能在关闭的
Statement对象上调用此方法;这样做会导致抛出SQLException。笔记:如果您正在处理
ResultSet对象,则与读取该ResultSet对象相关的任何警告都将链接到它而不是生成它的Statement对象。- 返回:
-
第一个
SQLWarning对象或null如果没有警告 - 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法
-
clearWarnings
清除关于此Statement对象的所有警告报告。调用此方法后,getWarnings方法将返回null,直到针对此Statement对象报告新的警告。- 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法
-
setCursorName
将 SQL 游标名称设置为给定的String,后续Statement对象execute方法将使用它。然后可以在 SQL 定位更新或删除语句中使用此名称,以标识此语句生成的ResultSet对象中的当前行。如果数据库不支持定位更新/删除,则此方法是空操作。为确保游标具有支持更新的适当隔离级别,游标的SELECT语句应采用SELECT FOR UPDATE形式。如果FOR UPDATE不存在,定位更新可能会失败。笔记:根据定义,定位更新和删除的执行必须由不同的
Statement对象完成,而不是生成用于定位的ResultSet对象的对象。此外,游标名称在一个连接中必须是唯一的。- 参数:
name- 新的游标名称,在一个连接中必须是唯一的- 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法
-
execute
执行给定的 SQL 语句,它可能返回多个结果。在某些(不常见的)情况下,单个 SQL 语句可能会返回多个结果集和/或更新计数。通常您可以忽略它,除非您 (1) 执行一个您知道可能会返回多个结果的存储过程,或者 (2) 您正在动态执行一个未知的 SQL 字符串。execute方法执行一条SQL语句,表示第一个结果的形式。然后,您必须使用方法getResultSet或getUpdateCount检索结果,并使用getMoreResults移动到任何后续结果。Note: 无法在
PreparedStatement或CallableStatement上调用此方法。- 参数:
sql- 任何 SQL 语句- 返回:
true如果第一个结果是ResultSet对象;false如果是更新计数或者没有结果- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用该方法,在PreparedStatement或CallableStatement上调用该方法SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement- 参见:
-
getResultSet
检索当前结果作为ResultSet对象。每个结果只能调用一次此方法。- 返回:
-
当前结果作为
ResultSet对象或null如果结果是更新计数或没有更多结果 - 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法- 参见:
-
getUpdateCount
检索当前结果作为更新计数;如果结果是ResultSet对象或没有更多结果,则返回 -1。每个结果只能调用一次此方法。- 返回:
-
当前结果作为更新计数; -1 如果当前结果是一个
ResultSet对象或者没有更多结果 - 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法- 参见:
-
getMoreResults
移动到此Statement对象的下一个结果,如果它是ResultSet对象则返回true,并隐式关闭使用方法getResultSet获得的任何当前ResultSet对象。当以下情况为真时,没有更多的结果:
// stmt is a Statement object ((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))- 返回:
true如果下一个结果是一个ResultSet对象;false如果是更新计数或者没有更多结果- 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法- 参见:
-
setFetchDirection
向驱动程序提供有关在使用此Statement对象创建的ResultSet对象中处理行的方向的提示。默认值为ResultSet.FETCH_FORWARD。请注意,此方法设置此
Statement对象生成的结果集的默认提取方向。每个结果集都有自己的方法来获取和设置自己的获取方向。- 参数:
direction- 处理行的初始方向- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法,或者给定方向不是ResultSet.FETCH_FORWARD、ResultSet.FETCH_REVERSE或ResultSet.FETCH_UNKNOWN之一- 自从:
- 1.2
- 参见:
-
getFetchDirection
检索从数据库表中获取行的方向,这是从此Statement对象生成的结果集的默认方向。如果此Statement对象未通过调用方法setFetchDirection设置获取方向,则返回值是特定于实现的。- 返回:
-
从此
Statement对象生成的结果集的默认提取方向 - 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法- 自从:
- 1.2
- 参见:
-
setFetchSize
当此Statement生成的ResultSet对象需要更多行时,向 JDBC 驱动程序提示应从数据库中获取的行数。如果指定的值为零,则忽略该提示。默认值为零。- 参数:
rows- 要获取的行数- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement或不满足条件rows >= 0时调用此方法。- 自从:
- 1.2
- 参见:
-
getFetchSize
检索作为从该Statement对象生成的ResultSet对象的默认提取大小的结果集行数。如果此Statement对象未通过调用方法setFetchSize设置提取大小,则返回值是特定于实现的。- 返回:
-
从此
Statement对象生成的结果集的默认提取大小 - 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法- 自从:
- 1.2
- 参见:
-
getResultSetConcurrency
检索由此Statement对象生成的ResultSet对象的结果集并发性。- 返回:
ResultSet.CONCUR_READ_ONLY或ResultSet.CONCUR_UPDATABLE- 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法- 自从:
- 1.2
-
getResultSetType
检索由此Statement对象生成的ResultSet对象的结果集类型。- 返回:
ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE或ResultSet.TYPE_SCROLL_SENSITIVE之一- 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法- 自从:
- 1.2
-
addBatch
将给定的 SQL 命令添加到此Statement对象的当前命令列表。此list中的命令可以通过调用方法executeBatch作为批处理执行。Note: 无法在
PreparedStatement或CallableStatement上调用此方法。- 参数:
sql- 通常这是 SQLINSERT或UPDATE语句- 抛出:
SQLException- 如果发生数据库访问错误,在关闭的Statement上调用此方法,驱动程序不支持批量更新,在PreparedStatement或CallableStatement上调用该方法- 自从:
- 1.2
- 参见:
-
clearBatch
清空此Statement对象的当前 SQL 命令列表。- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法或驱动程序不支持批量更新- 自从:
- 1.2
- 参见:
-
executeBatch
向数据库提交一批命令以供执行,如果所有命令都成功执行,则返回一个更新计数数组。返回数组的int元素被排序以对应于批处理中的命令,这些命令根据它们被添加到批处理中的顺序排序。executeBatch方法返回的数组中的元素可能是以下之一:- 大于或等于零的数字——表示命令已成功处理,并且是一个更新计数,表示数据库中受命令执行影响的行数
- 值
SUCCESS_NO_INFO-- 表示命令已成功处理,但受影响的行数未知如果批处理更新中的命令之一未能正确执行,此方法将抛出
BatchUpdateException,并且 JDBC 驱动程序可能会或可能不会继续处理批处理中的其余命令。但是,驱动程序的行为必须与特定的 DBMS 一致,要么始终继续处理命令,要么从不继续处理命令。如果驱动程序在失败后继续处理,方法BatchUpdateException.getUpdateCounts返回的数组将包含与批处理中的命令一样多的元素,并且至少有一个元素如下: - 值为
EXECUTE_FAILED-- 表示命令未能成功执行,只有驱动程序在命令失败后继续处理命令时才会出现
可能的实现和返回值已在 Java 2 SDK 标准版 1.3 版中进行了修改,以适应在抛出
BatchUpdateException对象后继续处理批量更新中的命令的选项。- 返回:
- 一组更新计数,其中包含批处理中每个命令的一个元素。数组的元素根据命令添加到批处理的顺序排序。
- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法或驱动程序不支持批处理语句。如果发送到数据库的命令之一未能正确执行或尝试返回结果集,则抛出BatchUpdateException(SQLException的子类)。SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement- 自从:
- 1.2
- 参见:
-
getConnection
检索生成此Statement对象的Connection对象。- 返回:
- 产生该语句的连接
- 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法- 自从:
- 1.2
-
getMoreResults
移动到此Statement对象的下一个结果,根据给定标志指定的指令处理任何当前ResultSet对象,如果下一个结果是ResultSet对象,则返回true。当以下情况为真时,没有更多的结果:
// stmt is a Statement object ((stmt.getMoreResults(current) == false) && (stmt.getUpdateCount() == -1))- 参数:
current- 以下Statement常量之一,指示使用方法getResultSet获得的当前ResultSet对象应该发生什么:Statement.CLOSE_CURRENT_RESULT、Statement.KEEP_CURRENT_RESULT或Statement.CLOSE_ALL_RESULTS- 返回:
true如果下一个结果是一个ResultSet对象;false如果是更新计数或者没有更多结果- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法,或者提供的参数不是以下之一:Statement.CLOSE_CURRENT_RESULT、Statement.KEEP_CURRENT_RESULT或Statement.CLOSE_ALL_RESULTSSQLFeatureNotSupportedException- 如果DatabaseMetaData.supportsMultipleOpenResults返回false并且Statement.KEEP_CURRENT_RESULT或Statement.CLOSE_ALL_RESULTS作为参数提供。- 自从:
- 1.4
- 参见:
-
getGeneratedKeys
检索因执行此Statement对象而创建的任何自动生成的键。如果此Statement对象未生成任何密钥,则返回一个空的ResultSet对象。笔记:如果未指定表示自动生成的键的列,则 JDBC 驱动程序实现将确定最能表示自动生成的键的列。
- 返回:
-
一个
ResultSet对象,包含通过执行此Statement对象生成的自动生成的密钥 - 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法- 自从:
- 1.4
-
executeUpdate
执行给定的 SQL 语句并使用给定的标志向驱动程序发出信号,告知驱动程序是否应使此Statement对象生成的自动生成的键可用于检索。如果 SQL 语句不是INSERT语句,或者不是能够返回自动生成键的 SQL 语句(此类语句的列表是特定于供应商的),驱动程序将忽略该标志。Note: 无法在
PreparedStatement或CallableStatement上调用此方法。- 参数:
sql- SQL 数据操作语言 (DML) 语句,例如INSERT、UPDATE或DELETE;或不返回任何内容的 SQL 语句,例如 DDL 语句。autoGeneratedKeys- 一个标志,指示是否应使自动生成的密钥可用于检索;以下常量之一:Statement.RETURN_GENERATED_KEYSStatement.NO_GENERATED_KEYS- 返回:
- (1) SQL 数据操作语言 (DML) 语句的行计数或 (2) 0 用于不返回任何内容的 SQL 语句
- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法,给定的 SQL 语句返回一个ResultSet对象,给定的常量不是允许的常量之一,在PreparedStatement或CallableStatement上调用该方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持带有 Statement.RETURN_GENERATED_KEYS 常量的此方法SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement- 自从:
- 1.4
-
executeUpdate
执行给定的 SQL 语句并向驱动程序发出信号,表明给定数组中指示的自动生成的键应该可供检索。该数组包含目标表中列的索引,这些列包含应该可用的自动生成的键。如果 SQL 语句不是INSERT语句,或者不是能够返回自动生成键的 SQL 语句(此类语句的列表是特定于供应商的),驱动程序将忽略该数组。Note: 无法在
PreparedStatement或CallableStatement上调用此方法。- 参数:
sql- SQL 数据操作语言 (DML) 语句,例如INSERT、UPDATE或DELETE;或不返回任何内容的 SQL 语句,例如 DDL 语句。columnIndexes- 列索引数组,指示应从插入行返回的列- 返回:
- (1) SQL 数据操作语言 (DML) 语句的行计数或 (2) 0 用于不返回任何内容的 SQL 语句
- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法,SQL 语句返回一个ResultSet对象,提供给此方法的第二个参数不是一个int数组,其元素是有效的列索引,该方法在PreparedStatement或CallableStatementSQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement- 自从:
- 1.4
-
executeUpdate
执行给定的 SQL 语句并向驱动程序发出信号,表明给定数组中指示的自动生成的键应该可供检索。该数组包含目标表中列的名称,这些列包含应该可用的自动生成的键。如果 SQL 语句不是INSERT语句,或者不是能够返回自动生成键的 SQL 语句(此类语句的列表是特定于供应商的),驱动程序将忽略该数组。Note: 无法在
PreparedStatement或CallableStatement上调用此方法。- 参数:
sql- SQL 数据操作语言 (DML) 语句,例如INSERT、UPDATE或DELETE;或不返回任何内容的 SQL 语句,例如 DDL 语句。columnNames- 应从插入行返回的列名称数组- 返回:
INSERT、UPDATE或DELETE语句的行计数,或者对于不返回任何内容的 SQL 语句为 0- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法,SQL 语句返回一个ResultSet对象,提供给此方法的第二个参数不是一个String数组,其元素是有效的列名,调用该方法PreparedStatement或CallableStatementSQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement- 自从:
- 1.4
-
execute
执行给定的 SQL 语句,它可能会返回多个结果,并向驱动程序发出信号,告知任何自动生成的键都应可供检索。如果 SQL 语句不是INSERT语句,或者不是能够返回自动生成键的 SQL 语句(此类语句的列表是特定于供应商的),驱动程序将忽略此信号。在某些(不常见的)情况下,单个 SQL 语句可能会返回多个结果集和/或更新计数。通常您可以忽略它,除非您 (1) 执行一个您知道可能会返回多个结果的存储过程,或者 (2) 您正在动态执行一个未知的 SQL 字符串。
execute方法执行一条SQL语句,表示第一个结果的形式。然后,您必须使用方法getResultSet或getUpdateCount检索结果,并使用getMoreResults移动到任何后续结果。Note: 无法在
PreparedStatement或CallableStatement上调用此方法。- 参数:
sql- 任何 SQL 语句autoGeneratedKeys- 一个常量,指示是否应使用方法getGeneratedKeys使自动生成的密钥可用于检索;以下常量之一:Statement.RETURN_GENERATED_KEYS或Statement.NO_GENERATED_KEYS- 返回:
true如果第一个结果是ResultSet对象;false如果是更新计数或者没有结果- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法,提供给此方法的第二个参数不是Statement.RETURN_GENERATED_KEYS或Statement.NO_GENERATED_KEYS,在PreparedStatement或CallableStatement上调用该方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持带有 Statement.RETURN_GENERATED_KEYS 常量的此方法SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement- 自从:
- 1.4
- 参见:
-
execute
执行给定的 SQL 语句,它可能会返回多个结果,并向驱动程序发出信号,表明给定数组中指示的自动生成的键应该可供检索。该数组包含目标表中列的索引,这些列包含应该可用的自动生成的键。如果 SQL 语句不是INSERT语句,或者不是能够返回自动生成键的 SQL 语句(此类语句的列表是特定于供应商的),驱动程序将忽略该数组。在某些(不常见的)情况下,单个 SQL 语句可能会返回多个结果集和/或更新计数。通常您可以忽略它,除非您 (1) 执行一个您知道可能会返回多个结果的存储过程,或者 (2) 您正在动态执行一个未知的 SQL 字符串。
execute方法执行一条SQL语句,表示第一个结果的形式。然后,您必须使用方法getResultSet或getUpdateCount检索结果,并使用getMoreResults移动到任何后续结果。Note: 无法在
PreparedStatement或CallableStatement上调用此方法。- 参数:
sql- 任何 SQL 语句columnIndexes- 插入行中列索引的数组,应可通过调用方法getGeneratedKeys进行检索- 返回:
true如果第一个结果是ResultSet对象;false如果是更新计数或者没有结果- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法,传递给此方法的int数组中的元素不是有效的列索引,在PreparedStatement或CallableStatement上调用该方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement- 自从:
- 1.4
- 参见:
-
execute
执行给定的 SQL 语句,它可能会返回多个结果,并向驱动程序发出信号,表明给定数组中指示的自动生成的键应该可供检索。该数组包含目标表中列的名称,这些列包含应该可用的自动生成的键。如果 SQL 语句不是INSERT语句,或者不是能够返回自动生成键的 SQL 语句(此类语句的列表是特定于供应商的),驱动程序将忽略该数组。在某些(不常见的)情况下,单个 SQL 语句可能会返回多个结果集和/或更新计数。通常您可以忽略它,除非您 (1) 执行一个您知道可能会返回多个结果的存储过程,或者 (2) 您正在动态执行一个未知的 SQL 字符串。
execute方法执行一条SQL语句,表示第一个结果的形式。然后,您必须使用方法getResultSet或getUpdateCount检索结果,并使用getMoreResults移动到任何后续结果。Note: 无法在
PreparedStatement或CallableStatement上调用此方法。- 参数:
sql- 任何 SQL 语句columnNames- 插入行中列名的数组,应可通过调用方法getGeneratedKeys进行检索- 返回:
true如果下一个结果是一个ResultSet对象;false如果是更新计数或者没有更多结果- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法,传递给此方法的String数组的元素不是有效的列名,在PreparedStatement或CallableStatement上调用该方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement- 自从:
- 1.4
- 参见:
-
getResultSetHoldability
检索由此Statement对象生成的ResultSet对象的结果集可持有性。- 返回:
ResultSet.HOLD_CURSORS_OVER_COMMIT或ResultSet.CLOSE_CURSORS_AT_COMMIT- 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法- 自从:
- 1.4
-
isClosed
检索此Statement对象是否已关闭。如果Statement已调用方法 close 或自动关闭,则Statement将关闭。- 返回:
-
如果此
Statement对象已关闭,则为真;如果它仍然打开则为 false - 抛出:
SQLException- 如果发生数据库访问错误- 自从:
- 1.6
-
setPoolable
请求将Statement合并或不合并。指定的值是对语句池实现的提示,指示应用程序是否希望语句被池化。是否使用提示取决于语句池管理器。语句的可池化值既适用于驱动程序实现的内部语句缓存,也适用于应用服务和其他应用程序实现的外部语句缓存。
默认情况下,
Statement在创建时不可池化,PreparedStatement和CallableStatement在创建时可池化。- 参数:
poolable- 如果为真则请求合并语句,如果为假则不合并语句- 抛出:
SQLException- 如果在关闭的Statement上调用此方法- 自从:
- 1.6
-
isPoolable
返回一个值,指示Statement是否可池化。- 返回:
true如果Statement是可合并的;false否则- 抛出:
SQLException- 如果在关闭的Statement上调用此方法- 自从:
- 1.6
- 参见:
-
closeOnCompletion
指定此Statement将在其所有依赖结果集关闭时关闭。如果执行Statement没有产生任何结果集,则此方法无效。Note: 多次调用
closeOnCompletion不会切换此Statement的效果。但是,对closeOnCompletion的调用确实会影响语句的后续执行以及当前具有打开的依赖结果集的语句。- 抛出:
SQLException- 如果在关闭的Statement上调用此方法- 自从:
- 1.7
-
isCloseOnCompletion
返回一个值,指示此Statement是否将在其所有依赖结果集关闭时关闭。- 返回:
true如果Statement将在其所有依赖结果集关闭时关闭;false否则- 抛出:
SQLException- 如果在关闭的Statement上调用此方法- 自从:
- 1.7
-
getLargeUpdateCount
检索当前结果作为更新计数;如果结果是ResultSet对象或没有更多结果,则返回 -1。每个结果只能调用一次此方法。当返回的行数可能超过
Integer.MAX_VALUE时,应使用此方法。默认实现会抛出
UnsupportedOperationException- 返回:
-
当前结果作为更新计数; -1 如果当前结果是一个
ResultSet对象或者没有更多结果 - 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法- 自从:
- 1.8
- 参见:
-
setLargeMaxRows
将此Statement对象生成的任何ResultSet对象可以包含的最大行数限制设置为给定数。如果超过限制,多余的行将被静默删除。当行限制可能超过
Integer.MAX_VALUE时,应使用此方法。默认实现会抛出
UnsupportedOperationException- 参数:
max- 新的最大行数限制;零意味着没有限制- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement或不满足条件max >= 0时调用此方法- 自从:
- 1.8
- 参见:
-
getLargeMaxRows
检索由此Statement对象生成的ResultSet对象可以包含的最大行数。如果超过此限制,多余的行将被静默删除。当返回的行限制可能超过
Integer.MAX_VALUE时,应使用此方法。默认实现将返回
0- 返回:
-
此
Statement对象生成的ResultSet对象的当前最大行数;零意味着没有限制 - 抛出:
SQLException- 如果发生数据库访问错误或在关闭的Statement上调用此方法- 自从:
- 1.8
- 参见:
-
executeLargeBatch
向数据库提交一批命令以供执行,如果所有命令都成功执行,则返回一个更新计数数组。返回数组的long元素被排序以对应于批处理中的命令,这些命令根据它们被添加到批处理中的顺序排序。executeLargeBatch方法返回的数组中的元素可能是以下之一:- 大于或等于零的数字——表示命令已成功处理,并且是一个更新计数,表示数据库中受命令执行影响的行数
- 值
SUCCESS_NO_INFO-- 表示命令已成功处理,但受影响的行数未知如果批处理更新中的命令之一未能正确执行,此方法将抛出
BatchUpdateException,并且 JDBC 驱动程序可能会或可能不会继续处理批处理中的其余命令。但是,驱动程序的行为必须与特定的 DBMS 一致,要么始终继续处理命令,要么从不继续处理命令。如果驱动程序在失败后继续处理,方法BatchUpdateException.getLargeUpdateCounts返回的数组将包含与批处理中的命令一样多的元素,并且至少有一个元素如下: - 值为
EXECUTE_FAILED-- 表示命令未能成功执行,只有驱动程序在命令失败后继续处理命令时才会出现
当返回的行数可能超过
Integer.MAX_VALUE时,应使用此方法。默认实现会抛出
UnsupportedOperationException- 返回:
- 一组更新计数,其中包含批处理中每个命令的一个元素。数组的元素根据命令添加到批处理的顺序排序。
- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法或驱动程序不支持批处理语句。如果发送到数据库的命令之一未能正确执行或尝试返回结果集,则抛出BatchUpdateException(SQLException的子类)。SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement- 自从:
- 1.8
- 参见:
-
executeLargeUpdate
执行给定的 SQL 语句,它可以是INSERT、UPDATE或DELETE语句或不返回任何内容的 SQL 语句,例如 SQL DDL 语句。当返回的行数可能超过
Integer.MAX_VALUE时,应使用此方法。Note: 无法在
PreparedStatement或CallableStatement上调用此方法。默认实现会抛出
UnsupportedOperationException- 参数:
sql- SQL 数据操作语言 (DML) 语句,例如INSERT、UPDATE或DELETE;或不返回任何内容的 SQL 语句,例如 DDL 语句。- 返回:
- (1) SQL 数据操作语言 (DML) 语句的行计数或 (2) 0 用于不返回任何内容的 SQL 语句
- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法,给定的 SQL 语句生成一个ResultSet对象,在PreparedStatement或CallableStatement上调用该方法SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement- 自从:
- 1.8
-
executeLargeUpdate
执行给定的 SQL 语句并使用给定的标志向驱动程序发出信号,告知驱动程序是否应使此Statement对象生成的自动生成的键可用于检索。如果 SQL 语句不是INSERT语句,或者不是能够返回自动生成键的 SQL 语句(此类语句的列表是特定于供应商的),驱动程序将忽略该标志。当返回的行数可能超过
Integer.MAX_VALUE时,应使用此方法。Note: 无法在
PreparedStatement或CallableStatement上调用此方法。默认实现会抛出
SQLFeatureNotSupportedException- 参数:
sql- SQL 数据操作语言 (DML) 语句,例如INSERT、UPDATE或DELETE;或不返回任何内容的 SQL 语句,例如 DDL 语句。autoGeneratedKeys- 一个标志,指示是否应使自动生成的密钥可用于检索;以下常量之一:Statement.RETURN_GENERATED_KEYSStatement.NO_GENERATED_KEYS- 返回:
- (1) SQL 数据操作语言 (DML) 语句的行计数或 (2) 0 用于不返回任何内容的 SQL 语句
- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法,给定的 SQL 语句返回一个ResultSet对象,给定的常量不是允许的常量之一,在PreparedStatement或CallableStatement上调用该方法SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持带有 Statement.RETURN_GENERATED_KEYS 常量的此方法SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement- 自从:
- 1.8
-
executeLargeUpdate
执行给定的 SQL 语句并向驱动程序发出信号,表明给定数组中指示的自动生成的键应该可供检索。该数组包含目标表中列的索引,这些列包含应该可用的自动生成的键。如果 SQL 语句不是INSERT语句,或者不是能够返回自动生成键的 SQL 语句(此类语句的列表是特定于供应商的),驱动程序将忽略该数组。当返回的行数可能超过
Integer.MAX_VALUE时,应使用此方法。Note: 无法在
PreparedStatement或CallableStatement上调用此方法。默认实现会抛出
SQLFeatureNotSupportedException- 参数:
sql- SQL 数据操作语言 (DML) 语句,例如INSERT、UPDATE或DELETE;或不返回任何内容的 SQL 语句,例如 DDL 语句。columnIndexes- 列索引数组,指示应从插入行返回的列- 返回:
- (1) SQL 数据操作语言 (DML) 语句的行计数或 (2) 0 用于不返回任何内容的 SQL 语句
- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法,SQL 语句返回一个ResultSet对象,提供给此方法的第二个参数不是一个int数组,其元素是有效的列索引,该方法在PreparedStatement或CallableStatementSQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement- 自从:
- 1.8
-
executeLargeUpdate
执行给定的 SQL 语句并向驱动程序发出信号,表明给定数组中指示的自动生成的键应该可供检索。该数组包含目标表中列的名称,这些列包含应该可用的自动生成的键。如果 SQL 语句不是INSERT语句,或者不是能够返回自动生成键的 SQL 语句(此类语句的列表是特定于供应商的),驱动程序将忽略该数组。当返回的行数可能超过
Integer.MAX_VALUE时,应使用此方法。Note: 无法在
PreparedStatement或CallableStatement上调用此方法。默认实现会抛出
SQLFeatureNotSupportedException- 参数:
sql- SQL 数据操作语言 (DML) 语句,例如INSERT、UPDATE或DELETE;或不返回任何内容的 SQL 语句,例如 DDL 语句。columnNames- 应从插入行返回的列名称数组- 返回:
INSERT、UPDATE或DELETE语句的行计数,或者对于不返回任何内容的 SQL 语句为 0- 抛出:
SQLException- 如果发生数据库访问错误,则在关闭的Statement上调用此方法,SQL 语句返回一个ResultSet对象,提供给此方法的第二个参数不是一个String数组,其元素是有效的列名,调用该方法PreparedStatement或CallableStatementSQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法SQLTimeoutException- 当驱动程序确定已超过setQueryTimeout方法指定的超时值并且至少尝试取消当前正在运行的Statement- 自从:
- 1.8
-
enquoteLiteral
返回用单引号括起来的String。字符串中出现的任何单引号都将替换为两个单引号。转换示例: Value Result 你好 '你好' 你好 'G''日' 'G''日' '''G''''日''' I'''M 'I''''''M' - 实现注意事项:
- JDBC 驱动程序实现可能需要提供他们自己的此方法的实现,以满足底层数据源的要求。
- 参数:
val- 一个字符串- 返回:
- 由单引号括起来的字符串,每个单引号转换为两个单引号
- 抛出:
NullPointerException- 如果 val 是nullSQLException- 如果发生数据库访问错误- 自从:
- 9
-
enquoteIdentifier
返回一个 SQL 标识符。如果identifier是一个简单的 SQL 标识符:- 如果
alwaysQuote为false则返回原始值 - 如果
alwaysQuote是true,则返回分隔标识符
identifier不是简单的 SQL 标识符,则identifier不存在时将用双引号引起来。如果数据源不支持分隔标识符的双引号,则标识符应包含在从DatabaseMetaData.getIdentifierQuoteString()返回的字符串中。如果数据源不支持定界标识符,则应抛出SQLFeatureNotSupportedException。如果
identifier包含分隔标识符中的任何无效字符或标识符长度对于数据源无效,则将抛出SQLException。- 实现要求:
-
默认实现使用以下条件来确定有效的简单 SQL 标识符:
- 该字符串未包含在双引号中
- 第一个字符是从 a 到 z 或从 A 到 Z 的字母字符
- 名称仅包含字母数字字符或字符“_”
SQLException:identifier包含一个null字符或双引号,不是简单的 SQL 标识符。identifier的长度小于 1 或大于 128 个字符
转换示例: 标识符 总是引用 Result 你好 false 你好 你好 true "Hello" 你好 false “你好” “布鲁斯·韦恩” false “布鲁斯·韦恩” “布鲁斯·韦恩” true “布鲁斯·韦恩” GoodDay$ false “美好的一天$” 你好世界 false SQL异常 “你好世界” false SQL异常 - 实现注意事项:
- JDBC 驱动程序实现可能需要提供他们自己的此方法的实现,以满足底层数据源的要求。
- 参数:
identifier- SQL 标识符alwaysQuote- 指示是否应将简单的 SQL 标识符作为带引号的标识符返回- 返回:
- 一个简单的 SQL 标识符或分隔标识符
- 抛出:
SQLException- 如果标识符不是有效标识符SQLFeatureNotSupportedException- 如果数据源不支持定界标识符NullPointerException- 如果标识符是null- 自从:
- 9
- 如果
-
isSimpleIdentifier
检索identifier是否为简单的 SQL 标识符。- 实现要求:
-
默认实现使用以下条件来确定有效的简单 SQL 标识符:
- 该字符串未包含在双引号中
- 第一个字符是从 a 到 z 或从 A 到 Z 的字母字符
- 该字符串仅包含字母数字字符或字符“_”
- 该字符串的长度介于 1 到 128 个字符之间(含)
转换示例: 标识符 简单标识符 你好 true 你好 false “布鲁斯·韦恩” false GoodDay$ false 你好世界 false “你好世界” false - 实现注意事项:
- JDBC 驱动程序实现可能需要提供他们自己的此方法的实现,以满足底层数据源的要求。
- 参数:
identifier- SQL 标识符- 返回:
- 如果是简单的 SQL 标识符,则为 true,否则为 false
- 抛出:
NullPointerException- 如果标识符是nullSQLException- 如果发生数据库访问错误- 自从:
- 9
-
enquoteNCharLiteral
返回一个String表示用单引号括起来并以大写字母 N 为前缀的国家字符集文字。字符串中出现的任何单引号都将替换为两个单引号。转换示例: Value Result 你好 N'你好' 你好 N'G''Day' 'G''日' N'''G''''日''' I'''M N'I''''''M' N'你好' N'N''你好''' - 实现注意事项:
- JDBC 驱动程序实现可能需要提供他们自己的此方法的实现,以满足底层数据源的要求。 enquoteNCharLiteral 的实现可以接受与 enquoteLiteral 的相同驱动程序实现所接受的字符集不同的字符集。
- 参数:
val- 一个字符串- 返回:
- 将参数中的每个单引号字符替换为两个单引号字符的结果,其中整个结果以“N”为前缀。
- 抛出:
NullPointerException- 如果 val 是nullSQLException- 如果发生数据库访问错误- 自从:
- 9
-