所有类


java.sql
接口 CallableStatement

所有超级接口:
PreparedStatement, Statement

public interface CallableStatement
   
   
   
   
   
extends PreparedStatement

用于执行 SQL 存储过程的接口。JDBC API 提供了一个存储过程 SQL 转义语法,该语法允许对所有 RDBMS 使用标准方式调用存储过程。此转义语法有一个包含结果参数的形式和一个不包含结果参数的形式。如果使用结果参数,则必须将其注册为 OUT 型参数。其他参数可用于输入、输出或同时用于二者。参数是根据编号按顺序引用的,第一个参数的编号是 1。

   {?= call <procedure-name>[<arg1>,<arg2>, ...]}
   {call <procedure-name>[<arg1>,<arg2>, ...]}
 

IN 参数值是使用从 PreparedStatement 中继承的 set 方法设置的。在执行存储过程之前,必须注册所有 OUT 参数的类型;它们的值是在执行后通过此类提供的 get 方法检索的。

CallableStatement 可以返回一个 ResultSet 对象或多个 ResultSet 对象。多个 ResultSet 对象是使用从 Statement 中继承的操作处理的。

为了获得最大的可移植性,某一调用的 ResultSet 对象和更新计数应该在获得输出参数的值之前处理。

另请参见:
Connection.prepareCall(java.lang.String), ResultSet

字段摘要
 
从接口 java.sql.Statement 继承的字段
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO
 
方法摘要
 ArraygetArray(int i)
          以 Java 编程语言中 Array 对象的形式检索指定的 JDBC ARRAY 参数的值。
 ArraygetArray(String parameterName)
          以 Java 编程语言中 ARRAY 对象的形式检索 JDBC ARRAY 参数的值。
 BigDecimalgetBigDecimal(int parameterIndex)
          检索指定 JDBC NUMERIC 参数的值,以一个小数点右边的位数与该参数值所包含的位数相同的 java.math.BigDecimal 对象的形式。
 BigDecimalgetBigDecimal(int parameterIndex, int scale)
          已过时。 使用 getBigDecimal(int parameterIndex)getBigDecimal(String parameterName)
 BigDecimalgetBigDecimal(String parameterName)
          检索 JDBC NUMERIC 参数的值,以一个小数点右边的位数与该参数值所包含的位数相同的 java.math.BigDecimal 对象的形式。
 BlobgetBlob(int i)
          以 Java 编程语言中 Blob 对象的形式检索指定的 JDBC BLOB 参数的值。
 BlobgetBlob(String parameterName)
          以 Java 编程语言中 Blob 对象的形式检索 JDBC BLOB 参数的值。
 booleangetBoolean(int parameterIndex)
          以 Java 编程语言中 boolean 值的形式检索指定的 JDBC BIT 参数的值。
 booleangetBoolean(String parameterName)
          以 Java 编程语言中 boolean 值的形式检索 JDBC BIT 参数的值。
 bytegetByte(int parameterIndex)
          以 Java 编程语言中 byte 的形式检索指定的 JDBC TINYINT 参数的值。
 bytegetByte(String parameterName)
          以 Java 编程语言中 byte 值的形式检索 JDBC TINYINT 参数的值。
 byte[]getBytes(int parameterIndex)
          以 Java 编程语言中 byte 数组值的形式检索指定的 JDBC BINARYVARBINARY 参数的值。
 byte[]getBytes(String parameterName)
          以 Java 编程语言中 byte 数组值的形式检索 JDBC BINARYVARBINARY 参数的值。
 ClobgetClob(int i)
          以 Java 编程语言中 Clob 对象的形式检索指定的 JDBC CLOB 参数的值。
 ClobgetClob(String parameterName)
          以 Java 编程语言中 CLOB 对象的形式检索 JDBC CLOB 参数的值。
 DategetDate(int parameterIndex)
          以 java.sql.Date 对象的形式检索指定 JDBC DATE 参数的值。
 DategetDate(int parameterIndex, Calendar cal)
          以 java.sql.Date 对象的形式检索指定 JDBC DATE 参数的值,使用给定 Calendar 对象构造日期。
 DategetDate(String parameterName)
          以 java.sql.Date 对象的形式检索 JDBC DATE 参数的值。
 DategetDate(String parameterName, Calendar cal)
          以 java.sql.Date 对象的形式检索 JDBC DATE 参数的值,使用给定 Calendar 对象构造日期。
 doublegetDouble(int parameterIndex)
          以 Java 编程语言中 double 值的形式检索指定的 JDBC DOUBLE 参数的值。
 doublegetDouble(String parameterName)
          以 Java 编程语言中 double 值的形式检索 JDBC DOUBLE 参数的值。
 floatgetFloat(int parameterIndex)
          以 Java 编程语言中 float 值的形式检索指定的 JDBC FLOAT 参数的值。
 floatgetFloat(String parameterName)
          以 Java 编程语言中 float 值的形式检索 JDBC FLOAT 参数的值。
 intgetInt(int parameterIndex)
          以 Java 编程语言中 int 值的形式检索指定的 JDBC INTEGER 参数的值。
 intgetInt(String parameterName)
          以 Java 编程语言中 int 值的形式检索 JDBC INTEGER 参数的值。
 longgetLong(int parameterIndex)
          以 Java 编程语言中 long 值的形式检索指定的 JDBC BIGINT 参数的值。
 longgetLong(String parameterName)
          以 Java 编程语言中 long 值的形式检索 JDBC BIGINT 参数的值。
 ObjectgetObject(int parameterIndex)
          以 Java 编程语言中 Object 的形式检索指定参数的值。
 ObjectgetObject(int i, Map<String,Class<?>> map)
          返回一个表示 OUT 参数 i 的值的对象,并将 map 用于该参数值的自定义映射关系。
 ObjectgetObject(String parameterName)
          以 Java 编程语言中 Object 的形式检索参数的值。
 ObjectgetObject(String parameterName, Map<String,Class<?>> map)
          返回一个表示 OUT 参数 i 的值的对象,并将 map 用于该参数值的自定义映射关系。
 RefgetRef(int i)
          以 Java 编程语言中 Ref 对象的形式检索指定的 JDBC REF(<structured-type>) 参数的值。
 RefgetRef(String parameterName)
          以 Java 编程语言中 Ref 对象的形式检索 JDBC REF(<structured-type>) 参数的值。
 shortgetShort(int parameterIndex)
          以 Java 编程语言中 short 值的形式检索指定的 JDBC SMALLINT 参数的值。
 shortgetShort(String parameterName)
          以 Java 编程语言中 short 值的形式检索 JDBC SMALLINT 参数的值。
 StringgetString(int parameterIndex)
          以 Java 编程语言中 String 的形式检索指定的 JDBC CHARVARCHARLONGVARCHAR 参数的值。
 StringgetString(String parameterName)
          以 Java 编程语言中 String 的形式检索 JDBC CHARVARCHARLONGVARCHAR 参数的值。
 TimegetTime(int parameterIndex)
          以 java.sql.Time 对象的形式检索指定 JDBC TIME 参数的值。
 TimegetTime(int parameterIndex, Calendar cal)
          以 java.sql.Time 对象的形式检索指定 JDBC TIME 参数的值,使用给定 Calendar 对象构造时间。
 TimegetTime(String parameterName)
          以 java.sql.Time 对象的形式检索 JDBC TIME 参数的值。
 TimegetTime(String parameterName, Calendar cal)
          以 java.sql.Time 对象的形式检索 JDBC TIME 参数的值,使用给定 Calendar 对象构造时间。
 TimestampgetTimestamp(int parameterIndex)
          以 java.sql.Timestamp 对象的形式检索指定 JDBC TIMESTAMP 参数的值。
 TimestampgetTimestamp(int parameterIndex, Calendar cal)
          java.sql.Timestamp 对象的形式检索指定 JDBC TIMESTAMP 参数的值,使用给定 Calendar 对象构造 Timestamp 对象。
 TimestampgetTimestamp(String parameterName)
          以 java.sql.Timestamp 对象的形式检索 JDBC TIMESTAMP 参数的值。
 TimestampgetTimestamp(String parameterName, Calendar cal)
          以 java.sql.Timestamp 对象的形式检索 JDBC TIMESTAMP 参数的值,使用给定 Calendar 对象构造 Timestamp 对象。
 URLgetURL(int parameterIndex)
          以 java.sql.URL 对象的形式检索指定 JDBC DATALINK 参数的值。
 URLgetURL(String parameterName)
          以 java.net.URL 对象的形式检索 JDBC DATALINK 参数的值。
 voidregisterOutParameter(int parameterIndex, int sqlType)
          按顺序位置 parameterIndex 将 OUT 参数注册为 JDBC 类型 sqlType
 voidregisterOutParameter(int parameterIndex, int sqlType, int scale)
          按顺序位置 parameterIndex 将参数注册为 JDBC 类型 sqlType
 voidregisterOutParameter(int paramIndex, int sqlType, String typeName)
          注册指定的输出参数。
 voidregisterOutParameter(String parameterName, int sqlType)
          将名为 parameterName 的 OUT 参数注册为 JDBC 类型 sqlType
 voidregisterOutParameter(String parameterName, int sqlType, int scale)
          将名为 parameterName 的参数注册为 JDBC 类型 sqlType
 voidregisterOutParameter(String parameterName, int sqlType, String typeName)
          注册指定的输出参数。
 voidsetAsciiStream(String parameterName, InputStream x, int length)
          将指定参数设置为给定输入流,该输入流将拥有给定字节数。
 voidsetBigDecimal(String parameterName, BigDecimal x)
          将指定参数设置为给定 java.math.BigDecimal 值。
 voidsetBinaryStream(String parameterName, InputStream x, int length)
          将指定参数设置为给定输入流,该输入流将拥有指定的字节数。
 voidsetBoolean(String parameterName, boolean x)
          将指定参数设置为给定 Java boolean 值。
 voidsetByte(String parameterName, byte x)
          将指定参数设置为给定 Java byte 值。
 voidsetBytes(String parameterName, byte[] x)
          将指定参数设置为给定 Java 字节数组。
 voidsetCharacterStream(String parameterName, Reader reader, int length)
          将指定参数设置为给定 Reader 对象,该对象是给定的字符长度数目。
 voidsetDate(String parameterName, Date x)
          将指定参数设置为给定 java.sql.Date 值。
 voidsetDate(String parameterName, Date x, Calendar cal)
          使用给定的 Calendar 对象将指定参数设置为给定 java.sql.Date 值。
 voidsetDouble(String parameterName, double x)
          将指定参数设置为给定 Java double 值。
 voidsetFloat(String parameterName, float x)
          将指定参数设置为给定 Java float 值。
 voidsetInt(String parameterName, int x)
          将指定参数设置为给定 Java int 值。
 voidsetLong(String parameterName, long x)
          将指定参数设置为给定 Java long 值。
 voidsetNull(String parameterName, int sqlType)
          将指定参数设置为 SQL NULL
 voidsetNull(String parameterName, int sqlType, String typeName)
          将指定参数设置为 SQL NULL
 voidsetObject(String parameterName, Object x)
          使用给定对象设置指定参数的值。
 voidsetObject(String parameterName, Object x, int targetSqlType)
          使用给定对象设置指定参数的值。
 voidsetObject(String parameterName, Object x, int targetSqlType, int scale)
          使用给定对象设置指定参数的值。
 voidsetShort(String parameterName, short x)
          将指定参数设置为给定 Java short 值。
 voidsetString(String parameterName, String x)
          将指定参数设置为给定 Java String 值。
 voidsetTime(String parameterName, Time x)
          将指定参数设置为给定 java.sql.Time 值。
 voidsetTime(String parameterName, Time x, Calendar cal)
          使用给定的 Calendar 对象将指定参数设置为给定 java.sql.Time 值。
 voidsetTimestamp(String parameterName, Timestamp x)
          将指定参数设置为给定 java.sql.Timestamp 值。
 voidsetTimestamp(String parameterName, Timestamp x, Calendar cal)
          使用给定的 Calendar 对象将指定参数设置为给定 java.sql.Timestamp 值。
 voidsetURL(String parameterName, URL val)
          将指定参数设置为给定 java.net.URL 对象。
 booleanwasNull()
          检索最后一个读取的 OUT 参数是否为 SQL NULL
 
从接口 java.sql.PreparedStatement 继承的方法
addBatch, clearParameters, execute, executeQuery, executeUpdate, getMetaData, getParameterMetaData, setArray, setAsciiStream, setBigDecimal, setBinaryStream, setBlob, setBoolean, setByte, setBytes, setCharacterStream, setClob, setDate, setDate, setDouble, setFloat, setInt, setLong, setNull, setNull, setObject, setObject, setObject, setRef, setShort, setString, setTime, setTime, setTimestamp, setTimestamp, setUnicodeStream, setURL
 
从接口 java.sql.Statement 继承的方法
addBatch, cancel, clearBatch, clearWarnings, close, execute, execute, execute, execute, executeBatch, executeQuery, executeUpdate, executeUpdate, executeUpdate, executeUpdate, getConnection, getFetchDirection, getFetchSize, getGeneratedKeys, getMaxFieldSize, getMaxRows, getMoreResults, getMoreResults, getQueryTimeout, getResultSet, getResultSetConcurrency, getResultSetHoldability, getResultSetType, getUpdateCount, getWarnings, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setQueryTimeout
 

方法详细信息

registerOutParameter

void registerOutParameter(int parameterIndex,
                          int sqlType)
                          throws SQLException
按顺序位置 parameterIndex 将 OUT 参数注册为 JDBC 类型 sqlType。所有 OUT 参数都必须在执行存储过程前注册。

sqlType 指定的 OUT 参数的 JDBC 类型确定必须用于 get 方法来读取该参数值的 Java 类型。

如果预期返回给此输出参数的 JDBC 类型是取决于此特定数据库的,则 sqlType 应该是 java.sql.Types.OTHER。方法 getObject(int) 检索该值。

参数:
parameterIndex - 第一个参数是 1,第二个参数是 2,依此类推
sqlType - java.sql.Types 定义的 JDBC 类型代码。如果参数是 JDBC 类型 NUMERICDECIMAL,则应使用接受标度值的那种 registerOutParameter
抛出:
SQLException - 如果发生数据库访问错误
另请参见:
Types

registerOutParameter

void registerOutParameter(int parameterIndex,
                          int sqlType,
                          int scale)
                          throws SQLException
按顺序位置 parameterIndex 将参数注册为 JDBC 类型 sqlType。必须在执行存储过程之前调用此方法。

sqlType 指定的 OUT 参数的 JDBC 类型确定必须用于 get 方法来读取该参数值的 Java 类型。

这种 registerOutParameter 应该在参数是 JDBC 类型 NUMERICDECIMAL 时使用。

参数:
parameterIndex - 第一个参数是 1,第二个参数是 2,依此类推
sqlType - 由 java.sql.Types 定义的 SQL 类型代码。
scale - 小数点右边所需的位数。该参数必须大于或等于零。
抛出:
SQLException - 如果发生数据库访问错误
另请参见:
Types

wasNull

boolean wasNull()
                throws SQLException
检索最后一个读取的 OUT 参数是否为 SQL NULL。注意,此方法应该仅在调用获取方法之后调用;否则没有用来确定它是否为 null 的值。

返回:
如果最后一个读取的参数为 SQL NULL,则返回 true;否则返回 false
抛出:
SQLException - 如果发生数据库访问错误

getString

String getString(int parameterIndex)
                 throws SQLException
以 Java 编程语言中 String 的形式检索指定的 JDBC CHARVARCHARLONGVARCHAR 参数的值。

对于固定长度类型 JDBC CHAR,返回的 String 对象与数据库中所拥有的 JDBC CHAR 值完全相同,包括数据库添加的任何填充数据。

参数:
parameterIndex - 第一个参数是 1,第二个参数是 2,依此类推
返回:
参数值。如果值为 SQL NULL,则结果为 null
抛出:
SQLException - 如果发生数据库访问错误
另请参见:
setString(java.lang.String, java.lang.String)

getBoolean

boolean getBoolean(int parameterIndex)
                   throws SQLException
以 Java 编程语言中 boolean 值的形式检索指定的 JDBC BIT 参数的值。

参数:
parameterIndex - 第一个参数是 1,第二个参数是 2,依此类推
返回:
参数值。如果值为 SQL NULL,则结果为 false
抛出:
SQLException - 如果发生数据库访问错误
另请参见:
setBoolean(java.lang.String, boolean)

getByte

byte getByte(int parameterIndex)
             throws SQLException
以 Java 编程语言中 byte 的形式检索指定的 JDBC TINYINT 参数的值。

参数:
parameterIndex - 第一个参数是 1,第二个参数是 2,依此类推
返回:
参数值。如果值为 SQL NULL,则结果为 0
抛出:
SQLException - 如果发生数据库访问错误
另请参见:
setByte(java.lang.String, byte)

getShort

short getShort(int parameterIndex)
               throws SQLException
以 Java 编程语言中 short 值的形式检索指定的 JDBC SMALLINT 参数的值。

参数:
parameterIndex - 第一个参数是 1,第二个参数是 2,依此类推
返回:
参数值。如果值为 SQL NULL,则结果为 0
抛出:
SQLException - 如果发生数据库访问错误
另请参见:
setShort(java.lang.String, short)