CallableStatement 用于執(zhí)行 SQL 存儲(chǔ)過(guò)程。
JDBC 提供了一個(gè)存儲(chǔ)過(guò)程 SQL escape,它允許以所有 RDBMS 的標(biāo)準(zhǔn)方式調(diào)用存儲(chǔ)過(guò)程。該 escape 語(yǔ)法具有一個(gè)包含結(jié)果參數(shù)的格式和一個(gè)不包含結(jié)果參數(shù)的格式。如果使用結(jié)果參數(shù),它必須被注冊(cè)為一個(gè) OUT 參數(shù)。其它的參數(shù)可以用于輸入、輸出或同時(shí)用于兩者。參數(shù)通過(guò)編號(hào)被順序的引用。第一個(gè)參數(shù)是 1。
{?= call [,, ...]}
{call [,, ...]}
用從 PreparedStatement 繼承的設(shè)置方法設(shè)置 IN 參數(shù)。所有 OUT 參數(shù)的類(lèi)型必須在執(zhí)行該存儲(chǔ)過(guò)程之前注冊(cè);執(zhí)行后的參數(shù)值用該類(lèi)提供的
get 方法獲得。
Callable 語(yǔ)句可能返回一個(gè) ResultSet 或多個(gè) ResultSet。多
ResultSets 由從 Statement 繼承的操作處理。
為了最大的限度的可移植性,調(diào)用的 ResultSet 和修改次數(shù)必須在獲得輸出參數(shù)值之前處理。
接口 java.sql.CallableStatement
- public interface CallableStatement
- extends PreparedStatement
- 參見(jiàn):
- prepareCall, ResultSet
方法索引
- getBigDecimal(int, int)
-
獲得一個(gè) NUMERIC 參數(shù)的值,作為一個(gè) java.math.BigDecimal 對(duì)象。
- getBoolean(int)
- 獲得一個(gè) BIT 參數(shù)的值,作為一個(gè) Java boolean。
- getByte(int)
- 獲得一個(gè) TINYINT 參數(shù)的值,作為一個(gè) Java byte。
- getBytes(int)
- 獲得一個(gè) SQL BINARY 或 VARBINARY 參數(shù)的值,作為一個(gè) Java byte []。
- getDate(int)
- 獲得一個(gè) SQL DATE 參數(shù)的值,作為一個(gè) java.sql.Date 對(duì)象。
- getDouble(int)
- 獲得一個(gè) DOUBLE 參數(shù)的值,作為一個(gè) Java double。
- getFloat(int)
- 獲得一個(gè) FLOAT 參數(shù)的值,作為一個(gè) Java float。
- getInt(int)
- 獲得一個(gè) INTEGER 參數(shù)的值,作為一個(gè) Java int。
- getLong(int)
- 獲得一個(gè) BIGINT 參數(shù)的值,作為一個(gè) Java long。
- getObject(int)
- 獲得一個(gè)參數(shù)的值,作為一個(gè) Java object。
- getShort(int)
- 獲得一個(gè) SMALLINT 參數(shù)的值,作為一個(gè) Java short。
- getString(int)
- 獲得一個(gè) CHAR、VARCHAR 或 LONGVARCHAR 參數(shù)的值,作為一個(gè)
Java String。
- getTime(int)
- 獲得一個(gè) SQL TIME 參數(shù)的值,作為一個(gè) java.sql.Time 對(duì)象。
- getTimestamp(int)
- 獲得一個(gè) SQL TIMESTAMP 參數(shù)的值,作為一個(gè) java.sql.Timestamp 對(duì)象。
- registerOutParameter(int, int)
- 在執(zhí)行存儲(chǔ)過(guò)程調(diào)用之前,必須顯式的調(diào)用 registerOutParameter
為每個(gè)輸出參數(shù)的 java.sql.Type 進(jìn)行注冊(cè)。
- registerOutParameter(int, int, int)
- 使用 registerOutParameter 的這個(gè)版本為 Numeric 或 Decimal
輸出參數(shù)注冊(cè)。
- wasNull()
- 一個(gè) OUT 參數(shù)可能的值是 SQL NULL ;wasNull 報(bào)告最后讀的值是否為這個(gè)特殊的值。
方法
registerOutParameter
public abstract void registerOutParameter(int parameterIndex,
int sqlType) throws SQLException
- 在執(zhí)行存儲(chǔ)過(guò)程調(diào)用之前,必須顯式的調(diào)用 registerOutParameter
為每個(gè)輸出參數(shù)的 java.sql.Type 進(jìn)行注冊(cè)。
注意: 當(dāng)讀取一個(gè)輸出參數(shù)的值時(shí),必須使用 getXXX 方法,它的 Java 類(lèi)型 XXX 與該參數(shù)注冊(cè)的 SQL 類(lèi)型相應(yīng)。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- sqlType - 由 java.sql.Types 決定的 SQL 類(lèi)型代碼;對(duì)于
Numeric 或 Decimal 類(lèi)型的參數(shù)使用可以接受小數(shù)位數(shù)的
registerOutParameter 版本。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
- 參見(jiàn):
- Type
registerOutParameter
public abstract void registerOutParameter(int parameterIndex,
int sqlType,
int scale) throws SQLException
- 使用 registerOutParameter 的這個(gè)版本為 Numeric 或 Decimal
輸出參數(shù)注冊(cè)。
注意: 當(dāng)讀取一個(gè)輸出參數(shù)的值時(shí),必須使用 getXXX 方法,它的 Java 類(lèi)型 XXX 與該參數(shù)注冊(cè)的 SQL 類(lèi)型相應(yīng)。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- sqlType - 使用 java.sql.Type.NUMERIC 或 java.sql.Type.DECIMAL
- scale - 一個(gè)大于等于零的值,表示期望的小數(shù)點(diǎn)右邊數(shù)字的數(shù)目
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
- 參見(jiàn):
- Type
wasNull
public abstract boolean wasNull() throws SQLException
- 一個(gè) OUT 參數(shù)可能的值是 SQL NULL ;wasNull 報(bào)告最后讀的值是否為這個(gè)特殊的值。
注意:必須首先對(duì)一個(gè)參數(shù)調(diào)用 getXXX 方法讀取它的值,然后調(diào)用
wasNull() 方法檢查該值是否為 SQL NULL。
- 返回值:
- 如果讀的最后的參數(shù)為 SQL NULL 則為 true
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
getString
public abstract String getString(int parameterIndex) throws SQLException
- 獲得一個(gè) CHAR、VARCHAR 或 LONGVARCHAR 參數(shù)的值,作為一個(gè)
Java String。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- 返回值:
- 參數(shù)值;如果該值是 SQL NULL 則結(jié)果為 null
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
getBoolean
public abstract boolean getBoolean(int parameterIndex) throws SQLException
- 獲得一個(gè) BIT 參數(shù)的值,作為一個(gè) Java boolean。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- 返回值:
- 參數(shù)值;如果該值是 SQL NULL 則結(jié)果為 false
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
getByte
public abstract byte getByte(int parameterIndex) throws SQLException
- 獲得一個(gè) TINYINT 參數(shù)的值,作為一個(gè) Java byte。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- 返回值:
- 參數(shù)值;如果該值是 SQL NULL 則結(jié)果為 0
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
getShort
public abstract short getShort(int parameterIndex) throws SQLException
- 獲得一個(gè) SMALLINT 參數(shù)的值,作為一個(gè) Java short。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- 返回值:
- 參數(shù)值;如果該值是 SQL NULL 則結(jié)果為 0
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
getInt
public abstract int getInt(int parameterIndex) throws SQLException
- 獲得一個(gè) INTEGER 參數(shù)的值,作為一個(gè) Java int。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- 返回值:
- 參數(shù)值;如果該值是 SQL NULL 則結(jié)果為 0
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
getLong
public abstract long getLong(int parameterIndex) throws SQLException
- 獲得一個(gè) BIGINT 參數(shù)的值,作為一個(gè) Java long。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- 返回值:
- 參數(shù)值;如果該值是 SQL NULL 則結(jié)果為 0
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
getFloat
public abstract float getFloat(int parameterIndex) throws SQLException
- 獲得一個(gè) FLOAT 參數(shù)的值,作為一個(gè) Java float。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- 返回值:
- 參數(shù)值;如果該值是 SQL NULL 則結(jié)果為 0
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
getDouble
public abstract double getDouble(int parameterIndex) throws SQLException
- 獲得一個(gè) DOUBLE 參數(shù)的值,作為一個(gè) Java double。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- 返回值:
- 參數(shù)值;如果該值是 SQL NULL 則結(jié)果為 0
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
getBigDecimal
public abstract BigDecimal getBigDecimal(int parameterIndex,
int scale) throws SQLException
- 獲得一個(gè) NUMERIC 參數(shù)的值,作為一個(gè) java.math.BigDecimal 對(duì)象。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- scale - 一個(gè)大于等于零的值,表示期望的小數(shù)點(diǎn)右邊數(shù)字的數(shù)目
- 返回值:
- 參數(shù)值;如果該值是 SQL NULL 則結(jié)果為 null
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
getBytes
public abstract byte[] getBytes(int parameterIndex) throws SQLException
- 獲得一個(gè) SQL BINARY 或 VARBINARY 參數(shù)的值,作為一個(gè) Java byte []。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- 返回值:
- 參數(shù)值;如果該值是 SQL NULL 則結(jié)果為 null
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
getDate
public abstract Date getDate(int parameterIndex) throws SQLException
- 獲得一個(gè) SQL DATE 參數(shù)的值,作為一個(gè) java.sql.Date 對(duì)象。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- 返回值:
- 參數(shù)值;如果該值是 SQL NULL 則結(jié)果為 null
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
getTime
public abstract Time getTime(int parameterIndex) throws SQLException
- 獲得一個(gè) SQL TIME 參數(shù)的值,作為一個(gè) java.sql.Time 對(duì)象。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- 返回值:
- 參數(shù)值;如果該值是 SQL NULL 則結(jié)果為 null
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
getTimestamp
public abstract Timestamp getTimestamp(int parameterIndex) throws SQLException
- 獲得一個(gè) SQL TIMESTAMP 參數(shù)的值,作為一個(gè) java.sql.Timestamp 對(duì)象。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)是 2, ...
- 返回值:
- 參數(shù)值;如果該值是 SQL NULL 則結(jié)果為 null
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
getObject
public abstract Object getObject(int parameterIndex) throws SQLException
- 獲得一個(gè)參數(shù)的值,作為一個(gè) Java object。
該方法返回一個(gè) Java 對(duì)象,它的類(lèi)型與用 SQL 類(lèi)型相應(yīng),該 SQL 類(lèi)型是用
registerOutParameter 為該參數(shù)注冊(cè)的類(lèi)型。
注意該方法可以用于讀數(shù)據(jù)庫(kù)特定的抽象數(shù)據(jù)類(lèi)型。 可以指定一個(gè)
java.sql.types.OTHER 的 targetSqlType 進(jìn)行讀取,該類(lèi)型允許驅(qū)動(dòng)程序返回一個(gè)數(shù)據(jù)庫(kù)特定的 Java 類(lèi)型。
- 參數(shù):
- parameterIndex - 第一個(gè)參數(shù)是 1, 第二個(gè)參數(shù)是 2, ...
- 返回值:
- 保持該 OUT 參數(shù)值的 java.lang.Object。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問(wèn)錯(cuò)誤。
- 參見(jiàn):
- Types