CallableStatement详解

CallableStatement 用于执行 SQL 存储过程。


JDBC 提供了一个存储过程 SQL escape,它允许以所有 RDBMS 的标准方式调用存储过程。该 escape 语法具有一个包含结果参数的格式和一个不包含结果参数的格式。如果使用结果参数,它必须被注册为一个 OUT 参数。其它的参数可以用于输入、输出或同时用于两者。参数通过编号被顺序的引用。第一个参数是 1。


{?= call [,, ...]}

{call [,, ...]}


用从 PreparedStatement 继承的设置方法设置 IN 参数。所有 OUT 参数的类型必须在执行该存储过程之前注册;执行后的参数值用该类提供的
get 方法获得。


Callable 语句可能返回一个 ResultSet 或多个 ResultSet。多
ResultSets 由从 Statement 继承的操作处理。


为了最大的限度的可移植性,调用的 ResultSet 和修改次数必须在获得输出参数值之前处理。


接口 java.sql.CallableStatement


public interface CallableStatement

extends PreparedStatement



参见:

prepareCall, ResultSet


--------------------------------------------------------------------------------


方法索引


getBigDecimal(int, int)


获得一个 NUMERIC 参数的值,作为一个 java.math.BigDecimal 对象。

getBoolean(int)

获得一个 BIT 参数的值,作为一个 Java boolean。

getByte(int)

获得一个 TINYINT 参数的值,作为一个 Java byte。

getBytes(int)

获得一个 SQL BINARY 或 VARBINARY 参数的值,作为一个 Java byte []。

getDate(int)

获得一个 SQL DATE 参数的值,作为一个 java.sql.Date 对象。

getDouble(int)

获得一个 DOUBLE 参数的值,作为一个 Java double。

getFloat(int)

获得一个 FLOAT 参数的值,作为一个 Java float。

getInt(int)

获得一个 INTEGER 参数的值,作为一个 Java int。

getLong(int)

获得一个 BIGINT 参数的值,作为一个 Java long。

getObject(int)

获得一个参数的值,作为一个 Java object。

getShort(int)

获得一个 SMALLINT 参数的值,作为一个 Java short。

getString(int)

获得一个 CHAR、VARCHAR 或 LONGVARCHAR 参数的值,作为一个
Java String。

getTime(int)

获得一个 SQL TIME 参数的值,作为一个 java.sql.Time 对象。

getTimestamp(int)

获得一个 SQL TIMESTAMP 参数的值,作为一个 java.sql.Timestamp 对象。

registerOutParameter(int, int)

在执行存储过程调用之前,必须显式的调用 registerOutParameter
为每个输出参数的 java.sql.Type 进行注册。

registerOutParameter(int, int, int)

使用 registerOutParameter 的这个版本为 Numeric 或 Decimal
输出参数注册。

wasNull()

一个 OUT 参数可能的值是 SQL NULL ;wasNull 报告最后读的值是否为这个特殊的值。


--------------------------------------------------------------------------------


方法


registerOutParameter

public abstract void registerOutParameter(int parameterIndex, int sqlType) throws SQLException


在执行存储过程调用之前,必须显式的调用 registerOutParameter
为每个输出参数的 java.sql.Type 进行注册。

注意: 当读取一个输出参数的值时,必须使用 getXXX 方法,它的 Java 类型 XXX 与该参数注册的 SQL 类型相应。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

sqlType - 由 java.sql.Types 决定的 SQL 类型代码;对于
Numeric 或 Decimal 类型的参数使用可以接受小数位数的
registerOutParameter 版本。

抛出:
SQLException

如果发生了数据访问错误。

参见:

Type


registerOutParameter

public abstract void registerOutParameter(int parameterIndex, int sqlType, int scale) throws SQLException


使用 registerOutParameter 的这个版本为 Numeric 或 Decimal
输出参数注册。

注意: 当读取一个输出参数的值时,必须使用 getXXX 方法,它的 Java 类型 XXX 与该参数注册的 SQL 类型相应。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

sqlType - 使用 java.sql.Type.NUMERIC 或 java.sql.Type.DECIMAL

scale - 一个大于等于零的值,表示期望的小数点右边数字的数目

抛出:
SQLException

如果发生了数据访问错误。

参见:

Type


wasNull

public abstract boolean wasNull() throws SQLException


一个 OUT 参数可能的值是 SQL NULL ;wasNull 报告最后读的值是否为这个特殊的值。

注意:必须首先对一个参数调用 getXXX 方法读取它的值,然后调用
wasNull() 方法检查该值是否为 SQL NULL。



返回值:

如果读的最后的参数为 SQL NULL 则为 true

抛出:
SQLException

如果发生了数据访问错误。


getString

public abstract String getString(int parameterIndex) throws SQLException


获得一个 CHAR、VARCHAR 或 LONGVARCHAR 参数的值,作为一个
Java String。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

返回值:

参数值;如果该值是 SQL NULL 则结果为 null

抛出:
SQLException

如果发生了数据访问错误。


getBoolean

public abstract boolean getBoolean(int parameterIndex) throws SQLException


获得一个 BIT 参数的值,作为一个 Java boolean。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

返回值:

参数值;如果该值是 SQL NULL 则结果为 false

抛出:
SQLException

如果发生了数据访问错误。


getByte

public abstract byte getByte(int parameterIndex) throws SQLException


获得一个 TINYINT 参数的值,作为一个 Java byte。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

返回值:

参数值;如果该值是 SQL NULL 则结果为 0

抛出:
SQLException

如果发生了数据访问错误。


getShort

public abstract short getShort(int parameterIndex) throws SQLException


获得一个 SMALLINT 参数的值,作为一个 Java short。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

返回值:

参数值;如果该值是 SQL NULL 则结果为 0

抛出:
SQLException

如果发生了数据访问错误。


getInt

public abstract int getInt(int parameterIndex) throws SQLException


获得一个 INTEGER 参数的值,作为一个 Java int。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

返回值:

参数值;如果该值是 SQL NULL 则结果为 0

抛出:
SQLException

如果发生了数据访问错误。


getLong

public abstract long getLong(int parameterIndex) throws SQLException


获得一个 BIGINT 参数的值,作为一个 Java long。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

返回值:

参数值;如果该值是 SQL NULL 则结果为 0

抛出:
SQLException

如果发生了数据访问错误。


getFloat

public abstract float getFloat(int parameterIndex) throws SQLException


获得一个 FLOAT 参数的值,作为一个 Java float。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

返回值:

参数值;如果该值是 SQL NULL 则结果为 0

抛出:
SQLException

如果发生了数据访问错误。


getDouble

public abstract double getDouble(int parameterIndex) throws SQLException


获得一个 DOUBLE 参数的值,作为一个 Java double。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

返回值:

参数值;如果该值是 SQL NULL 则结果为 0

抛出:
SQLException

如果发生了数据访问错误。


getBigDecimal

public abstract BigDecimal getBigDecimal(int parameterIndex, int scale) throws SQLException


获得一个 NUMERIC 参数的值,作为一个 java.math.BigDecimal 对象。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

scale - 一个大于等于零的值,表示期望的小数点右边数字的数目

返回值:

参数值;如果该值是 SQL NULL 则结果为 null

抛出:
SQLException

如果发生了数据访问错误。


getBytes

public abstract byte[] getBytes(int parameterIndex) throws SQLException


获得一个 SQL BINARY 或 VARBINARY 参数的值,作为一个 Java byte []。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

返回值:

参数值;如果该值是 SQL NULL 则结果为 null

抛出:
SQLException

如果发生了数据访问错误。


getDate

public abstract Date getDate(int parameterIndex) throws SQLException


获得一个 SQL DATE 参数的值,作为一个 java.sql.Date 对象。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

返回值:

参数值;如果该值是 SQL NULL 则结果为 null

抛出:
SQLException

如果发生了数据访问错误。


getTime

public abstract Time getTime(int parameterIndex) throws SQLException


获得一个 SQL TIME 参数的值,作为一个 java.sql.Time 对象。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

返回值:

参数值;如果该值是 SQL NULL 则结果为 null

抛出:
SQLException

如果发生了数据访问错误。


getTimestamp

public abstract Timestamp getTimestamp(int parameterIndex) throws SQLException


获得一个 SQL TIMESTAMP 参数的值,作为一个 java.sql.Timestamp 对象。



参数:

parameterIndex - 第一个参数是 1, 第二个是 2, ...

返回值:

参数值;如果该值是 SQL NULL 则结果为 null

抛出:
SQLException

如果发生了数据访问错误。


getObject

public abstract Object getObject(int parameterIndex) throws SQLException


获得一个参数的值,作为一个 Java object。

该方法返回一个 Java 对象,它的类型与用 SQL 类型相应,该 SQL 类型是用
registerOutParameter 为该参数注册的类型。


注意该方法可以用于读数据库特定的抽象数据类型。 可以指定一个
java.sql.types.OTHER 的 targetSqlType 进行读取,该类型允许驱动程序返回一个数据库特定的 Java 类型。



参数:

parameterIndex - 第一个参数是 1, 第二个参数是 2, ...

返回值:

保持该 OUT 参数值的 java.lang.Object。

抛出:
SQLException

如果发生了数据访问错误。

参见:

Types
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值