JavaTM 2 Platform
Standard Ed. 6

java.sql
介面 PreparedStatement

所有父級介面:
Statement, Wrapper
所有已知子介面:
CallableStatement

public interface PreparedStatement
extends Statement

表示預先編譯的 SQL 語句的物件。

SQL 語句被預先編譯並存儲在 PreparedStatement 物件中。然後可以使用此物件多次高效地執行該語句。

註:用於設置 IN 參數值的設置方法(setShortsetString 等等)必須指定與輸入參數的已定義 SQL 型別相容的型別。例如,如果 IN 參數具有 SQL 型別 INTEGER,那麼應該使用 setInt 方法。

如果需要任意參數型別轉換,使用 setObject 方法時應該將目標 SQL 型別作為其參數。

在以下設置參數的範例中,con 表示一個活動連接:

   PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
                                     SET SALARY = ? WHERE ID = ?");
   pstmt.setBigDecimal(1, 153833.00)
   pstmt.setInt(2, 110592)
 

另請參見:
Connection.prepareStatement(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
 
方法摘要
 void addBatch()
          將一組參數添加到此 PreparedStatement 物件的批處理命令中。
 void clearParameters()
          立即清除當前參數值。
 boolean execute()
          在此 PreparedStatement 物件中執行 SQL 語句,該語句可以是任何種類別的 SQL 語句。
 ResultSet executeQuery()
          在此 PreparedStatement 物件中執行 SQL 查詢,並返回該查詢產生的 ResultSet 物件。
 int executeUpdate()
          在此 PreparedStatement 物件中執行 SQL 語句,該語句必須是一個 SQL 資料操作語言(Data Manipulation Language,DML)語句,比如 INSERTUPDATEDELETE 語句;或者是無返回內容的 SQL 語句,比如 DDL 語句。
 ResultSetMetaData getMetaData()
          獲取包含有關 ResultSet 物件列資訊的 ResultSetMetaData 物件,ResultSet 物件將在執行此 PreparedStatement 物件時返回。
 ParameterMetaData getParameterMetaData()
          獲取此 PreparedStatement 物件的參數的編號、型別和屬性。
 void setArray(int parameterIndex, Array x)
          將指定參數設置為給定 java.sql.Array 物件。
 void setAsciiStream(int parameterIndex, InputStream x)
          將指定參數設置為給定輸入串流。
 void setAsciiStream(int parameterIndex, InputStream x, int length)
          將指定參數設置為給定輸入串流,該輸入串流將具有給定位元組數。
 void setAsciiStream(int parameterIndex, InputStream x, long length)
          將指定參數設置為給定輸入串流,該輸入串流將具有指定位元組數。
 void setBigDecimal(int parameterIndex, BigDecimal x)
          將指定參數設置為給定 java.math.BigDecimal 值。
 void setBinaryStream(int parameterIndex, InputStream x)
          將指定參數設置為給定輸入串流。
 void setBinaryStream(int parameterIndex, InputStream x, int length)
          將指定參數設置為給定輸入串流,該輸入串流將具有給定位元組數。
 void setBinaryStream(int parameterIndex, InputStream x, long length)
          將指定參數設置為給定輸入串流,該輸入串流將具有指定位元組數。
 void setBlob(int parameterIndex, Blob x)
          將指定參數設置為給定 java.sql.Blob 物件。
 void setBlob(int parameterIndex, InputStream inputStream)
          將指定參數設置為 InputStream 物件。
 void setBlob(int parameterIndex, InputStream inputStream, long length)
          將指定參數設置為 InputStream 物件。
 void setBoolean(int parameterIndex, boolean x)
          將指定參數設置為給定 Java boolean 值。
 void setByte(int parameterIndex, byte x)
          將指定參數設置為給定 Java byte 值。
 void setBytes(int parameterIndex, byte[] x)
          將指定參數設置為給定 Java byte 陣列。
 void setCharacterStream(int parameterIndex, Reader reader)
          將指定參數設置為給定 Reader 物件。
 void setCharacterStream(int parameterIndex, Reader reader, int length)
          將給定參數設置為給定 Reader 物件,該物件具有給定字元數長度。
 void setCharacterStream(int parameterIndex, Reader reader, long length)
          將指定參數設置為給定 Reader 物件,該物件具有給定字元數長度。
 void setClob(int parameterIndex, Clob x)
          將指定參數設置為給定 java.sql.Clob 物件。
 void setClob(int parameterIndex, Reader reader)
          將指定參數設置為 Reader 物件。
 void setClob(int parameterIndex, Reader reader, long length)
          將指定參數設置為 Reader 物件。
 void setDate(int parameterIndex, Date x)
          使用運行應用程序的虛擬機器的預設時區將指定參數設置為給定 java.sql.Date 值。
 void setDate(int parameterIndex, Date x, Calendar cal)
          使用給定的 Calendar 物件將指定參數設置為給定 java.sql.Date 值。
 void setDouble(int parameterIndex, double x)
          將指定參數設置為給定 Java double 值。
 void setFloat(int parameterIndex, float x)
          將指定參數設置為給定 Java REAL 值。
 void setInt(int parameterIndex, int x)
          將指定參數設置為給定 Java int 值。
 void setLong(int parameterIndex, long x)
          將指定參數設置為給定 Java long 值。
 void setNCharacterStream(int parameterIndex, Reader value)
          將指定參數設置為 Reader 物件。
 void setNCharacterStream(int parameterIndex, Reader value, long length)
          將指定參數設置為 Reader 物件。
 void setNClob(int parameterIndex, NClob value)
          將指定參數設置為 java.sql.NClob 物件。
 void setNClob(int parameterIndex, Reader reader)
          將指定參數設置為 Reader 物件。
 void setNClob(int parameterIndex, Reader reader, long length)
          將指定參數設置為 Reader 物件。
 void setNString(int parameterIndex, String value)
          將指定參數設置為給定 String 物件。
 void setNull(int parameterIndex, int sqlType)
          將指定參數設置為 SQL NULL
 void setNull(int parameterIndex, int sqlType, String typeName)
          將指定參數設置為 SQL NULL
 void setObject(int parameterIndex, Object x)
          使用給定物件設置指定參數的值。
 void setObject(int parameterIndex, Object x, int targetSqlType)
          使用給定物件設置指定參數的值。
 void setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength)
          使用給定物件設置指定參數的值。
 void setRef(int parameterIndex, Ref x)
          將指定參數設置為給定 REF(<structured-type>) 值。
 void setRowId(int parameterIndex, RowId x)
          將指定參數設置為給定 java.sql.RowId 物件。
 void setShort(int parameterIndex, short x)
          將指定參數設置為給定 Java short 值。
 void setSQLXML(int parameterIndex, SQLXML xmlObject)
          將指定參數設置為給定 java.sql.SQLXML 物件。
 void setString(int parameterIndex, String x)
          將指定參數設置為給定 Java String 值。
 void setTime(int parameterIndex, Time x)
          將指定參數設置為給定 java.sql.Time 值。
 void setTime(int parameterIndex, Time x, Calendar cal)
          使用給定的 Calendar 物件將指定參數設置為給定 java.sql.Time 值。
 void setTimestamp(int parameterIndex, Timestamp x)
          將指定參數設置為給定 java.sql.Timestamp 值。
 void setTimestamp(int parameterIndex, Timestamp x, Calendar cal)
          使用給定的 Calendar 物件將指定參數設置為給定 java.sql.Timestamp 值。
 void setUnicodeStream(int parameterIndex, InputStream x, int length)
          已過時。  
 void setURL(int parameterIndex, URL x)
          將指定參數設置為給定 java.net.URL 值。
 
從介面 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, isClosed, isPoolable, setCursorName, setEscapeProcessing, setFetchDirection, setFetchSize, setMaxFieldSize, setMaxRows, setPoolable, setQueryTimeout
 
從介面 java.sql.Wrapper 繼承的方法
isWrapperFor, unwrap
 

方法詳細資訊

executeQuery

ResultSet executeQuery()
                       throws SQLException
在此 PreparedStatement 物件中執行 SQL 查詢,並返回該查詢產生的 ResultSet 物件。

返回:
包含該查詢產生的資料的 ResultSet 物件;不會返回 null
拋出:
SQLException - 如果發生資料庫存取錯誤,在關閉的 PreparedStatement 上調用此方法,或者 SQL 語句沒有返回 ResultSet 物件

executeUpdate

int executeUpdate()
                  throws SQLException
在此 PreparedStatement 物件中執行 SQL 語句,該語句必須是一個 SQL 資料操作語言(Data Manipulation Language,DML)語句,比如 INSERTUPDATEDELETE 語句;或者是無返回內容的 SQL 語句,比如 DDL 語句。

返回:
(1) SQL 資料操作語言 (DML) 語句的行數 (2) 對於無返回內容的 SQL 語句,返回 0
拋出:
SQLException - 如果發生資料庫存取錯誤,在關閉的 PreparedStatement 上調用此方法,或者 SQL 語句返回一個 ResultSet 物件

setNull

void setNull(int parameterIndex,
             int sqlType)
             throws SQLException
將指定參數設置為 SQL NULL

註:必須指定參數的 SQL 型別。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
sqlType - java.sql.Types 中定義的 SQL 型別程式碼
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 sqlTypeARRAYBLOBCLOBDATALINKJAVA_OBJECTNCHARNCLOBNVARCHARLONGNVARCHARREFROWIDSQLXMLSTRUCT 資料型別之一並且 JDBC 驅動程序不支持此資料型別

setBoolean

void setBoolean(int parameterIndex,
                boolean x)
                throws SQLException
將指定參數設置為給定 Java boolean 值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL BITBOOLEAN 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setByte

void setByte(int parameterIndex,
             byte x)
             throws SQLException
將指定參數設置為給定 Java byte 值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL TINYINT 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setShort

void setShort(int parameterIndex,
              short x)
              throws SQLException
將指定參數設置為給定 Java short 值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL SMALLINT 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setInt

void setInt(int parameterIndex,
            int x)
            throws SQLException
將指定參數設置為給定 Java int 值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL INTEGER 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setLong

void setLong(int parameterIndex,
             long x)
             throws SQLException
將指定參數設置為給定 Java long 值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL BIGINT 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setFloat

void setFloat(int parameterIndex,
              float x)
              throws SQLException
將指定參數設置為給定 Java REAL 值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL FLOAT 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setDouble

void setDouble(int parameterIndex,
               double x)
               throws SQLException
將指定參數設置為給定 Java double 值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL DOUBLE 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setBigDecimal

void setBigDecimal(int parameterIndex,
                   BigDecimal x)
                   throws SQLException
將指定參數設置為給定 java.math.BigDecimal 值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL NUMERIC 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setString

void setString(int parameterIndex,
               String x)
               throws SQLException
將指定參數設置為給定 Java String 值。在將此值發送給資料庫時,驅動程序將它轉換成一個 SQL VARCHARLONGVARCHAR 值(取決於該參數相對於驅動程序在 VARCHAR 值上的限制的大小)。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setBytes

void setBytes(int parameterIndex,
              byte[] x)
              throws SQLException
將指定參數設置為給定 Java byte 陣列。在將此值發送給資料庫時,驅動程序將它轉換成一個 SQL VARBINARYLONGVARBINARY 值(取決於該參數相對於驅動程序在 VARBINARY 值上的限制的大小)。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setDate

void setDate(int parameterIndex,
             Date x)
             throws SQLException
使用運行應用程序的虛擬機器的預設時區將指定參數設置為給定 java.sql.Date 值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL DATE 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setTime

void setTime(int parameterIndex,
             Time x)
             throws SQLException
將指定參數設置為給定 java.sql.Time 值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL TIME 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setTimestamp

void setTimestamp(int parameterIndex,
                  Timestamp x)
                  throws SQLException
將指定參數設置為給定 java.sql.Timestamp 值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL TIMESTAMP 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setAsciiStream

void setAsciiStream(int parameterIndex,
                    InputStream x,
                    int length)
                    throws SQLException
將指定參數設置為給定輸入串流,該輸入串流將具有給定位元組數。在將一個非常大的 ASCII 值輸入到 LONGVARCHAR 參數時,通過 java.io.InputStream 發送它可能更為實際。將根據需要從串流中讀取資料,一直讀取到檔案末尾。JDBC 驅動程序將執行從 ASCII 到資料庫 char 格式的任何必要轉換。

註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 套件含 ASCII 參數值的 Java 輸入串流
length - 串流中的位元組數
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setUnicodeStream

void setUnicodeStream(int parameterIndex,
                      InputStream x,
                      int length)
                      throws SQLException
已過時。 

將指定參數設置為給定輸入串流,該輸入串流將具有給定位元組數。在將一個非常大的 Unicode 值輸入到 LONGVARCHAR 參數時,通過 java.io.InputStream 物件發送它可能更為實際。將根據需要從串流中讀取資料,一直讀取到檔案末尾。JDBC 驅動程序將執行從 Unicode 到資料庫 char 格式的任何必要轉換。根據 Java 虛擬機器規範中的定義,Unicode 串流的位元組格式必須是 Java UTF-8。

註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 套件含 Unicode 參數值的 java.io.InputStream 物件
length - 串流中的位元組數
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法

setBinaryStream

void setBinaryStream(int parameterIndex,
                     InputStream x,
                     int length)
                     throws SQLException
將指定參數設置為給定輸入串流,該輸入串流將具有給定位元組數。在將一個非常大的二進制值輸入到 LONGVARBINARY 參數時,通過 java.io.InputStream 物件發送它可能更為實際。將根據需要從串流中讀取資料,一直讀取到檔案末尾。

註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 套件含二進制參數值的 Java 輸入串流
length - 串流中的位元組數
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

clearParameters

void clearParameters()
                     throws SQLException
立即清除當前參數值。

通常參數值對語句的重複使用仍然有效。設置一個參數值會自動清除其以前的值。不過,在某些情況下,直接釋放當前參數值使用的資源也是很有用的;這可以通過調用 clearParameters 方法實作。

拋出:
SQLException - 如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法

setObject

void setObject(int parameterIndex,
               Object x,
               int targetSqlType)
               throws SQLException
使用給定物件設置指定參數的值。除了假定 scale 為 0,此方法類似於上面的 setObject 方法。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 套件含輸入參數值的物件
targetSqlType - 將發送給資料庫的 SQL 型別(定義於 java.sql.Types 中)
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 targetSqlTypeARRAYBLOBCLOBDATALINKJAVA_OBJECTNCHARNCLOBNVARCHARLONGNVARCHARREFROWIDSQLXMLSTRUCT 資料型別之一並且 JDBC 驅動程序不支持此資料型別
另請參見:
Types

setObject

void setObject(int parameterIndex,
               Object x)
               throws SQLException

使用給定物件設置指定參數的值。第二個參數必須是 Object 型別;所以,應該對內置型別使用 java.lang 的等效物件。

JDBC 規範指定了一個從 Java Object 型別到 SQL 型別的標準映射關係。在發送到資料庫之前,給定參數將被轉換為相應 SQL 型別。

注意,通過使用特定於驅動程序的 Java 型別,此方法可用於傳遞特定於資料庫的抽象資料型別。如果物件是實作 SQLData 介面的類別,則 JDBC 驅動程序應該調用 SQLData.writeSQL 方法將它寫入 SQL 資料串流中。另一方面,如果該物件是實作 RefBlobClobNClobStructjava.net.URLRowIdSQLXMLArray 的類別,則驅動程序應該將它作為相應 SQL 型別的值傳遞給資料庫。

註:並非所有的資料庫都允許將非型別 Null 發送給後端。為了獲得最大的可移植性,應該使用 setNullsetObject(int parameterIndex, Object x, int sqlType) 方法替代 setObject(int parameterIndex, Object x)

註:如果出現混淆,例如,如果該物件是實作多個上述指定介面的類別,則此方法拋出異常。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 套件含輸入參數值的物件
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤;在關閉的 PreparedStatement 上調用此方法,或者給定物件的型別不明確

execute

boolean execute()
                throws SQLException
在此 PreparedStatement 物件中執行 SQL 語句,該語句可以是任何種類別的 SQL 語句。一些預處理過的語句返回多個結果,execute 方法處理這些複雜的語句,executeQueryexecuteUpdate 處理形式更簡單的語句。

execute 方法返回一個 boolean 值,指示第一個結果的形式。必須調用 getResultSetgetUpdateCount 方法獲取該結果,必須調用 getMoreResults 獲取任何後續結果。

返回:
如果第一個結果是 ResultSet 物件,則返回 true;如果第一個結果是更新計數或者沒有結果,則返回 false
拋出:
SQLException - 如果發生資料庫存取錯誤;在關閉的 PreparedStatement 上調用此方法,或者為此方法提供了參數
另請參見:
Statement.execute(java.lang.String), Statement.getResultSet(), Statement.getUpdateCount(), Statement.getMoreResults()

addBatch

void addBatch()
              throws SQLException
將一組參數添加到此 PreparedStatement 物件的批處理命令中。

拋出:
SQLException - 如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
從以下版本開始:
1.2
另請參見:
Statement.addBatch(java.lang.String)

setCharacterStream

void setCharacterStream(int parameterIndex,
                        Reader reader,
                        int length)
                        throws SQLException
將給定參數設置為給定 Reader 物件,該物件具有給定字元數長度。在將一個非常大的 UNICODE 值輸入到 LONGVARCHAR 參數時,通過 java.io.Reader 物件發送它可能更為實際。將根據需要從串流中讀取資料,一直讀取到檔案末尾。JDBC 驅動程序將執行從 UNICODE 到資料庫 char 格式的任何必要轉換。

註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
reader - 套件含 Unicode 資料的 java.io.Reader 物件
length - 串流中的字元數
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
從以下版本開始:
1.2

setRef

void setRef(int parameterIndex,
            Ref x)
            throws SQLException
將指定參數設置為給定 REF(<structured-type>) 值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL REF 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 一個 SQL REF
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.2

setBlob

void setBlob(int parameterIndex,
             Blob x)
             throws SQLException
將指定參數設置為給定 java.sql.Blob 物件。在將此物件發送到資料庫時,驅動程序將它轉換成一個 SQL BLOB 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 一個映射 SQL BLOB 值的 Blob 物件
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.2

setClob

void setClob(int parameterIndex,
             Clob x)
             throws SQLException
將指定參數設置為給定 java.sql.Clob 物件。在將此物件發送到資料庫時,驅動程序將它轉換成一個 SQL CLOB 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 一個映射 SQL Clob 值的 Clob 物件
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.2

setArray

void setArray(int parameterIndex,
              Array x)
              throws SQLException
將指定參數設置為給定 java.sql.Array 物件。在將此物件發送到資料庫時,驅動程序將它轉換成一個 SQL ARRAY 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 一個映射 SQL Array 值的 Array 物件
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.2

getMetaData

ResultSetMetaData getMetaData()
                              throws SQLException
獲取包含有關 ResultSet 物件列資訊的 ResultSetMetaData 物件,ResultSet 物件將在執行此 PreparedStatement 物件時返回。

因為 PreparedStatement 物件被預先編譯,所以不必執行就可以知道它將返回的 ResultSet 物件。因此,可以對 PreparedStatement 物件調用 getMetaData 方法,而不必等待執行該物件,然後再對返回的 ResultSet 物件調用 ResultSet.getMetaData 方法。

註:對於某些缺乏底層 DBMS 支持的驅動程序,使用此方法開銷可能很大。

返回:
ResultSet 物件列的描述;如果驅動程序無法返回一個 ResultSetMetaData 物件,則返回 null
拋出:
SQLException - 如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.2

setDate

void setDate(int parameterIndex,
             Date x,
             Calendar cal)
             throws SQLException
使用給定的 Calendar 物件將指定參數設置為給定 java.sql.Date 值。驅動程序使用 Calendar 物件建構一個 SQL DATE 值,該值隨後被驅動程序發送給資料庫。利用 Calendar 物件,驅動程序可以在考慮自定義時區的情況下計算日期。如果沒有指定任何 Calendar 物件,那麼驅動程序將使用預設時區,該時區是運行應用程序的虛擬機器所在的時區。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
cal - 驅動程序將用來建構日期的 Calendar 物件
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
從以下版本開始:
1.2

setTime

void setTime(int parameterIndex,
             Time x,
             Calendar cal)
             throws SQLException
使用給定的 Calendar 物件將指定參數設置為給定 java.sql.Time 值。驅動程序使用 Calendar 物件建構一個 SQL TIME 值,該值隨後被驅動程序發送給資料庫。利用 Calendar 物件,驅動程序可以在考慮自定義時區的情況下計算時間。如果沒有指定任何 Calendar 物件,那麼驅動程序將使用預設時區,該時區是運行應用程序的虛擬機器所在的時區。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
cal - 驅動程序將用來建構時間的 Calendar 物件
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
從以下版本開始:
1.2

setTimestamp

void setTimestamp(int parameterIndex,
                  Timestamp x,
                  Calendar cal)
                  throws SQLException
使用給定的 Calendar 物件將指定參數設置為給定 java.sql.Timestamp 值。驅動程序使用 Calendar 物件建構一個 SQL TIMESTAMP 值,該值隨後被驅動程序發送給資料庫。利用 Calendar 物件,驅動程序可以在考慮自定義時區的情況下計算時間戳。如果沒有指定任何 Calendar 物件,那麼驅動程序將使用預設時區,該時區是運行應用程序的虛擬機器所在的時區。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
cal - 驅動程序將用來建構時間戳的 Calendar 物件
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
從以下版本開始:
1.2

setNull

void setNull(int parameterIndex,
             int sqlType,
             String typeName)
             throws SQLException
將指定參數設置為 SQL NULL。這種形式的 setNull 方法應該用於使用者定義的型別或 REF 型別參數。使用者定義型別的範例有:STRUCT、DISTINCT、JAVA_OBJECT 和指定的陣列型別。

註:為了便於移植,在指定 NULL 使用者定義參數或 REF 參數時,應用程序必須提供 SQL 型別程式碼和完全限定的 SQL 型別名稱。對於戶定義型別,名稱是參數本身的型別名稱。對於 REF 參數,名稱是所參考型別的型別名稱。如果 JDBC 驅動程序不需要型別程式碼和型別名稱資訊,則可以忽略這些資訊。儘管此方法是供使用者定義的參數和 Ref 參數使用的,但也可以使用其設置任何 JDBC 型別的 null 參數。如果該參數沒有使用者定義的型別或 REF 型別,則忽略給定的 typeName。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
sqlType - 取自 java.sql.Types 的一個值
typeName - SQL 使用者定義型別的完全限定名稱;如果該參數不是使用者定義型別或 REF,則忽略它
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 sqlTypeARRAYBLOBCLOBDATALINKJAVA_OBJECTNCHARNCLOBNVARCHARLONGNVARCHARREFROWIDSQLXMLSTRUCT 資料型別之一並且 JDBC 驅動程序不支持此資料型別,或者 JDBC 驅動程序不支持此方法
從以下版本開始:
1.2

setURL

void setURL(int parameterIndex,
            URL x)
            throws SQLException
將指定參數設置為給定 java.net.URL 值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL DATALINK 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 要設置的 java.net.URL 物件
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.4

getParameterMetaData

ParameterMetaData getParameterMetaData()
                                       throws SQLException
獲取此 PreparedStatement 物件的參數的編號、型別和屬性。

返回:
一個 ParameterMetaData 物件,它包含有關此 PreparedStatement 物件的每個參數標記的編號、型別和屬性的資訊
拋出:
SQLException - 如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
從以下版本開始:
1.4
另請參見:
ParameterMetaData

setRowId

void setRowId(int parameterIndex,
              RowId x)
              throws SQLException
將指定參數設置為給定 java.sql.RowId 物件。在將此物件發送到資料庫時,驅動程序將它轉換成一個 SQL ROWID 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

setNString

void setNString(int parameterIndex,
                String value)
                throws SQLException
將指定參數設置為給定 String 物件。在將此物件發送給資料庫時,驅動程序將它轉換成一個 SQL NCHARNVARCHARLONGNVARCHAR 值(取決於該參數相對於驅動程序在 NVARCHAR 值上的限制的大小)。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
value - 參數值
拋出:
如果 - parameterIndex 不對應於 SQL 語句中的參數標記;如果驅動程序不支持國家字元 (national character) 集;如果驅動程序檢測到可能發生資料轉換錯誤;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
SQLException
從以下版本開始:
1.6

setNCharacterStream

void setNCharacterStream(int parameterIndex,
                         Reader value,
                         long length)
                         throws SQLException
將指定參數設置為 Reader 物件。Reader 將讀取資料,直到到達檔案末尾。驅動程序執行從 Java 字元格式到資料庫中國家字元集的必要轉換。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
value - 參數值
length - 參數資料中的字元數。
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果驅動程序不支持國家字元集;如果驅動程序檢測到可能發生資料轉換錯誤;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

setNClob

void setNClob(int parameterIndex,
              NClob value)
              throws SQLException
將指定參數設置為 java.sql.NClob 物件。在將此物件發送到資料庫時,驅動程序將它轉換成一個 SQL NCLOB 值。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
value - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果驅動程序不支持國家字元集;如果驅動程序檢測到可能發生資料轉換錯誤;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

setClob

void setClob(int parameterIndex,
             Reader reader,
             long length)
             throws SQLException
將指定參數設置為 Reader 物件。Reader 必須包含 length 指定的字元數,否則在執行 PreparedStatement 時將產生一個 SQLException。此方法不同於 setCharacterStream (int, Reader, int) 方法,因為它會通知驅動程序應該將參數值作為 CLOB 發送給伺服器。在使用 setCharacterStream 方法時,驅動程序可能必須做一些額外的工作,以確定應該將參數資料作為 LONGVARCHAR 還是 CLOB 發送給伺服器。

參數:
parameterIndex - 第一個參數的索引是 1,第二個參數的索引是 2,……
reader - 套件含用於設置參數值的資料的物件。
length - 參數資料中的字元數。
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤;在關閉的 PreparedStatement 上調用此方法,如果指定的長度小於 0。
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

setBlob

void setBlob(int parameterIndex,
             InputStream inputStream,
             long length)
             throws SQLException
將指定參數設置為 InputStream 物件。Inputstream 必須包含 length 指定的字元數,否則在執行 PreparedStatement 時將產生一個 SQLException。此方法不同於 setBinaryStream (int, InputStream, int) 方法,因為它會通知驅動程序應該將參數值作為 BLOB 發送給伺服器。在使用 setBinaryStream 方法時,驅動程序可能必須做一些額外的工作,以確定應該將參數資料作為 LONGVARBINARY 還是 BLOB 發送給伺服器。

參數:
parameterIndex - 第一個參數的索引是 1,第二個參數的索引是 2,……
inputStream - 套件含用於設置參數值的資料的物件。
length - 參數資料中的位元組數。
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤;在關閉的 PreparedStatement 上調用此方法,如果指定長度小於 0,或者輸入串流中的位元組數與指定長度不比對。
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

setNClob

void setNClob(int parameterIndex,
              Reader reader,
              long length)
              throws SQLException
將指定參數設置為 Reader 物件。Reader 必須包含 length 指定的字元數,否則在執行 PreparedStatement 時將產生一個 SQLException。此方法不同於 setCharacterStream (int, Reader, int) 方法,因為它會通知驅動程序應該將參數值作為 NCLOB 發送給伺服器。在使用 setCharacterStream 方法時,驅動程序可能必須做一些額外的工作,以確定應該將參數資料作為 LONGNVARCHAR 還是 NCLOB 發送給伺服器。

參數:
parameterIndex - 第一個參數的索引是 1,第二個參數的索引是 2,……
reader - 套件含用於設置參數值的資料的物件。
length - 參數資料中的字元數。
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果指定長度小於 0;如果驅動程序不支持國家字元集;如果驅動程序檢測到可能發生資料轉換錯誤;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

setSQLXML

void setSQLXML(int parameterIndex,
               SQLXML xmlObject)
               throws SQLException
將指定參數設置為給定 java.sql.SQLXML 物件。在將此物件發送到資料庫時,驅動程序將它轉換成一個 SQL XML 值。

參數:
parameterIndex - 第一個參數的索引是 1,第二個參數的索引是 2,……
xmlObject - 映射 SQL XML 值的 SQLXML 物件
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤;或者在關閉的 PreparedStatement 上調用此方法,或者 java.xml.transform.ResultWriterOutputStream 已經關閉(對於 SQLXML 物件)
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

setObject

void setObject(int parameterIndex,
               Object x,
               int targetSqlType,
               int scaleOrLength)
               throws SQLException

使用給定物件設置指定參數的值。第二個參數必須是一個物件型別;對於整數值,應該使用 java.lang 的等效物件。 如果第二個參數是一個 InputStream,則該串流必須包含 scaleOrLength 指定的位元組數。如果第二個參數是一個 Reader,則該 Reader 必須包含 scaleOrLength 指定的字元數。如果這些條件不滿足,則驅動程序在執行準備好的語句時將產生一個 SQLException

在發送到資料庫之前,給定 Java 物件將被轉換為給定 targetSqlType。 如果物件具有自定義映射關係(屬於實作 SQLData 介面的類別),那麼 JDBC 驅動程序應該調用 SQLData.writeSQL 方法將它寫入 SQL 資料串流。另一方面,如果該物件是實作 RefBlobClobNClobStructjava.net.URLArray 的類別,那麼驅動程序應該將它作為相應 SQL 型別的值傳遞給資料庫。

注意,此方法可用於傳遞特定於資料庫的抽象資料型別。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 套件含輸入參數值的物件
targetSqlType - 將發送給資料庫的 SQL 型別(定義於 java.sql.Types 中)。scale 參數可以進一步限定此型別。
scaleOrLength - 對於 java.sql.Types.DECIMALjava.sql.Types.NUMERIC 型別,此值是小數點後的位數。對於 Java Object 型別 InputStreamReader,此值是串流或 Reader 中資料的長度。對於所有其他型別,忽略此值。
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤;如果在關閉的 PreparedStatement 上調用此方法,或者 x 指定的 Java Object 是一個 InputStream 或 Reader 物件,並且 scale 參數的值小於 0
SQLFeatureNotSupportedException - 如果 targetSqlTypeARRAYBLOBCLOBDATALINKJAVA_OBJECTNCHARNCLOBNVARCHARLONGNVARCHARREFROWIDSQLXMLSTRUCT 資料型別之一,並且 JDBC 驅動程序不支持此資料型別
從以下版本開始:
1.6
另請參見:
Types

setAsciiStream

void setAsciiStream(int parameterIndex,
                    InputStream x,
                    long length)
                    throws SQLException
將指定參數設置為給定輸入串流,該輸入串流將具有指定位元組數。在將一個非常大的 ASCII 值輸入到 LONGVARCHAR 參數時,通過 java.io.InputStream 發送它可能更為實際。將根據需要從串流中讀取資料,一直讀取到檔案末尾。JDBC 驅動程序將執行從 ASCII 到資料庫 char 格式的任何必要轉換。

註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 套件含 ASCII 參數值的 Java 輸入串流
length - 串流中的位元組數
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
從以下版本開始:
1.6

setBinaryStream

void setBinaryStream(int parameterIndex,
                     InputStream x,
                     long length)
                     throws SQLException
將指定參數設置為給定輸入串流,該輸入串流將具有指定位元組數。在將一個非常大的二進制值輸入到 LONGVARBINARY 參數時,通過 java.io.InputStream 物件發送它可能更為實際。將根據需要從串流中讀取資料,一直讀取到檔案末尾。

註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 套件含二進制參數值的 java 輸入串流
length - 串流中的位元組數
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
從以下版本開始:
1.6

setCharacterStream

void setCharacterStream(int parameterIndex,
                        Reader reader,
                        long length)
                        throws SQLException
將指定參數設置為給定 Reader 物件,該物件具有給定字元數長度。在將一個非常大的 UNICODE 值輸入給 LONGVARCHAR 參數時,通過 java.io.Reader 物件發送它可能更為實際。將根據需要從串流中讀取資料,一直讀取到檔案末尾。JDBC 驅動程序將執行從 UNICODE 到資料庫 char 格式的任何必要轉換。

註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
reader - 套件含 Unicode 資料的 java.io.Reader 物件
length - 串流中的字元數
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
從以下版本開始:
1.6

setAsciiStream

void setAsciiStream(int parameterIndex,
                    InputStream x)
                    throws SQLException
將指定參數設置為給定輸入串流。在將一個非常大的 ASCII 值輸入到 LONGVARCHAR 參數時,通過 java.io.InputStream 發送它可能更為實際。將根據需要從串流中讀取資料,一直讀取到檔案末尾。JDBC 驅動程序將執行從 ASCII 到資料庫 char 格式的任何必要轉換。

註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。

註:查詢 JDBC 驅動程序文檔,以確定使用帶 length 參數的 setAsciiStream 是否更有效。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 套件含 ASCII 參數值的 Java 輸入串流
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

setBinaryStream

void setBinaryStream(int parameterIndex,
                     InputStream x)
                     throws SQLException
將指定參數設置為給定輸入串流。在將一個非常大的二進制值輸入到 LONGVARBINARY 參數時,通過 java.io.InputStream 物件發送它可能更為實際。將根據需要從串流中讀取資料,一直讀取到檔案末尾。

註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。

註:查詢 JDBC 驅動程序文檔,以確定使用帶 length 參數的 setBinaryStream 是否更有效。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
x - 套件含二進制參數值的 java 輸入串流
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

setCharacterStream

void setCharacterStream(int parameterIndex,
                        Reader reader)
                        throws SQLException
將指定參數設置為給定 Reader 物件。在將一個非常大的 UNICODE 值輸入到 LONGVARCHAR 參數時,通過 java.io.Reader 物件發送它可能更為實際。將根據需要從串流中讀取資料,一直讀取到檔案末尾。JDBC 驅動程序將執行從 UNICODE 到資料庫 char 格式的任何必要轉換。

註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。

註:查詢 JDBC 驅動程序文檔,以確定使用帶 length 參數的 setCharacterStream 是否更有效。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
reader - 套件含 Unicode 資料的 java.io.Reader 物件
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

setNCharacterStream

void setNCharacterStream(int parameterIndex,
                         Reader value)
                         throws SQLException
將指定參數設置為 Reader 物件。Reader 將讀取資料,直到到達檔案末尾。驅動程序執行從 Java 字元格式到資料庫中國家字元集的必要轉換。

註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。

註:查詢 JDBC 驅動程序文檔,以確定使用帶 length 參數的 setNCharacterStream 是否更有效。

參數:
parameterIndex - 第一個參數是 1,第二個參數是 2,……
value - 參數值
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果驅動程序不支持國家字元集;如果驅動程序檢測到可能發生資料轉換錯誤;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

setClob

void setClob(int parameterIndex,
             Reader reader)
             throws SQLException
將指定參數設置為 Reader 物件。此方法不同於 setCharacterStream (int, Reader) 方法,因為它會通知驅動程序應該將參數值作為 CLOB 發送給伺服器。在使用 setCharacterStream 方法時,驅動程序可能必須做一些額外的工作,以確定應該將參數資料作為 LONGVARCHAR 還是 CLOB 發送給伺服器。

註:查詢 JDBC 驅動程序文檔,以確定使用帶 length 參數的 setClob 是否更有效。

參數:
parameterIndex - 第一個參數的索引是 1,第二個參數的索引是 2,……
reader - 套件含用於設置參數值的資料的物件。
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤;在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

setBlob

void setBlob(int parameterIndex,
             InputStream inputStream)
             throws SQLException
將指定參數設置為 InputStream 物件。此方法不同於 setBinaryStream (int, InputStream) 方法,因為它會通知驅動程序應該將參數值作為 BLOB 發送給伺服器。在使用 setBinaryStream 方法時,驅動程序可能必須做一些額外的工作,以確定應該將參數資料作為 LONGVARBINARY 還是 BLOB 發送給伺服器。

註:查詢 JDBC 驅動程序文檔,以確定使用帶 length 參數的 setBlob 是否更有效。

參數:
parameterIndex - 第一個參數的索引是 1,第二個參數的索引是 2,……
inputStream - 套件含用於設置參數值的資料的物件。
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤;在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

setNClob

void setNClob(int parameterIndex,
              Reader reader)
              throws SQLException
將指定參數設置為 Reader 物件。此方法不同於 setCharacterStream (int, Reader) 方法,因為它會通知驅動程序應該將參數值作為 NCLOB 發送給伺服器。在使用 setCharacterStream 方法時,驅動程序可能必須做一些額外的工作,以確定應該將參數資料作為 LONGNVARCHAR 還是 NCLOB 發送給伺服器。

註:查詢 JDBC 驅動程序文檔,以確定使用帶 length 參數的 setNClob 是否更有效。

參數:
parameterIndex - 第一個參數的索引是 1,第二個參數的索引是 2,……
reader - 套件含用於設置參數值的資料的物件。
拋出:
SQLException - 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果驅動程序不支持國家字元集;如果驅動程序檢測到可能發生資料轉換錯誤;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement 上調用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驅動程序不支持此方法
從以下版本開始:
1.6

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only