|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface PreparedStatement
表示預先編譯的 SQL 語句的物件。
SQL 語句被預先編譯並存儲在 PreparedStatement
物件中。然後可以使用此物件多次高效地執行該語句。
註:用於設置 IN 參數值的設置方法(setShort
、setString
等等)必須指定與輸入參數的已定義 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)語句,比如 INSERT 、UPDATE 或 DELETE 語句;或者是無返回內容的 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.Wrapper 繼承的方法 |
---|
isWrapperFor, unwrap |
方法詳細資訊 |
---|
ResultSet executeQuery() throws SQLException
PreparedStatement
物件中執行 SQL 查詢,並返回該查詢產生的 ResultSet
物件。
ResultSet
物件;不會返回 null
SQLException
- 如果發生資料庫存取錯誤,在關閉的 PreparedStatement
上調用此方法,或者 SQL 語句沒有返回 ResultSet
物件int executeUpdate() throws SQLException
PreparedStatement
物件中執行 SQL 語句,該語句必須是一個 SQL 資料操作語言(Data Manipulation Language,DML)語句,比如 INSERT
、UPDATE
或 DELETE
語句;或者是無返回內容的 SQL 語句,比如 DDL 語句。
SQLException
- 如果發生資料庫存取錯誤,在關閉的 PreparedStatement
上調用此方法,或者 SQL 語句返回一個 ResultSet
物件void setNull(int parameterIndex, int sqlType) throws SQLException
NULL
。
註:必須指定參數的 SQL 型別。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……sqlType
- java.sql.Types
中定義的 SQL 型別程式碼
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法
SQLFeatureNotSupportedException
- 如果 sqlType
是 ARRAY
、BLOB
、CLOB
、DATALINK
、JAVA_OBJECT
、NCHAR
、NCLOB
、NVARCHAR
、LONGNVARCHAR
、REF
、ROWID
、SQLXML
或 STRUCT
資料型別之一並且 JDBC 驅動程序不支持此資料型別void setBoolean(int parameterIndex, boolean x) throws SQLException
boolean
值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL BIT
或 BOOLEAN
值。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setByte(int parameterIndex, byte x) throws SQLException
byte
值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL TINYINT
值。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setShort(int parameterIndex, short x) throws SQLException
short
值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL SMALLINT
值。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setInt(int parameterIndex, int x) throws SQLException
int
值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL INTEGER
值。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setLong(int parameterIndex, long x) throws SQLException
long
值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL BIGINT
值。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setFloat(int parameterIndex, float x) throws SQLException
REAL
值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL FLOAT
值。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setDouble(int parameterIndex, double x) throws SQLException
double
值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL DOUBLE
值。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException
java.math.BigDecimal
值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL NUMERIC
值。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setString(int parameterIndex, String x) throws SQLException
String
值。在將此值發送給資料庫時,驅動程序將它轉換成一個 SQL VARCHAR
或 LONGVARCHAR
值(取決於該參數相對於驅動程序在 VARCHAR
值上的限制的大小)。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setBytes(int parameterIndex, byte[] x) throws SQLException
VARBINARY
或 LONGVARBINARY
值(取決於該參數相對於驅動程序在 VARBINARY
值上的限制的大小)。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setDate(int parameterIndex, Date x) throws SQLException
java.sql.Date
值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL DATE
值。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setTime(int parameterIndex, Time x) throws SQLException
java.sql.Time
值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL TIME
值。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setTimestamp(int parameterIndex, Timestamp x) throws SQLException
java.sql.Timestamp
值。在將此值發送到資料庫時,驅動程序將它轉換成一個 SQL TIMESTAMP
值。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException
LONGVARCHAR
參數時,通過 java.io.InputStream
發送它可能更為實際。將根據需要從串流中讀取資料,一直讀取到檔案末尾。JDBC 驅動程序將執行從 ASCII 到資料庫 char 格式的任何必要轉換。
註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 套件含 ASCII 參數值的 Java 輸入串流length
- 串流中的位元組數
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException
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 驅動程序不支持此方法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
上調用此方法void clearParameters() throws SQLException
通常參數值對語句的重複使用仍然有效。設置一個參數值會自動清除其以前的值。不過,在某些情況下,直接釋放當前參數值使用的資源也是很有用的;這可以通過調用 clearParameters
方法實作。
SQLException
- 如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException
setObject
方法。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 套件含輸入參數值的物件targetSqlType
- 將發送給資料庫的 SQL 型別(定義於 java.sql.Types 中)
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法
SQLFeatureNotSupportedException
- 如果 targetSqlType
是 ARRAY
、BLOB
、CLOB
、DATALINK
、JAVA_OBJECT
、NCHAR
、NCLOB
、NVARCHAR
、LONGNVARCHAR
、REF
、ROWID
、SQLXML
或 STRUCT
資料型別之一並且 JDBC 驅動程序不支持此資料型別Types
void setObject(int parameterIndex, Object x) throws SQLException
使用給定物件設置指定參數的值。第二個參數必須是 Object
型別;所以,應該對內置型別使用 java.lang
的等效物件。
JDBC 規範指定了一個從 Java Object
型別到 SQL 型別的標準映射關係。在發送到資料庫之前,給定參數將被轉換為相應 SQL 型別。
注意,通過使用特定於驅動程序的 Java 型別,此方法可用於傳遞特定於資料庫的抽象資料型別。如果物件是實作 SQLData
介面的類別,則 JDBC 驅動程序應該調用 SQLData.writeSQL
方法將它寫入 SQL 資料串流中。另一方面,如果該物件是實作 Ref
、Blob
、Clob
、NClob
、Struct
、java.net.URL
、RowId
、SQLXML
或 Array
的類別,則驅動程序應該將它作為相應 SQL 型別的值傳遞給資料庫。
註:並非所有的資料庫都允許將非型別 Null 發送給後端。為了獲得最大的可移植性,應該使用 setNull
或 setObject(int parameterIndex, Object x, int sqlType)
方法替代 setObject(int parameterIndex, Object x)
。
註:如果出現混淆,例如,如果該物件是實作多個上述指定介面的類別,則此方法拋出異常。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 套件含輸入參數值的物件
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤;在關閉的 PreparedStatement
上調用此方法,或者給定物件的型別不明確boolean execute() throws SQLException
PreparedStatement
物件中執行 SQL 語句,該語句可以是任何種類別的 SQL 語句。一些預處理過的語句返回多個結果,execute
方法處理這些複雜的語句,executeQuery
和 executeUpdate
處理形式更簡單的語句。
execute
方法返回一個 boolean
值,指示第一個結果的形式。必須調用 getResultSet
或 getUpdateCount
方法獲取該結果,必須調用 getMoreResults
獲取任何後續結果。
ResultSet
物件,則返回 true
;如果第一個結果是更新計數或者沒有結果,則返回 false
SQLException
- 如果發生資料庫存取錯誤;在關閉的 PreparedStatement
上調用此方法,或者為此方法提供了參數Statement.execute(java.lang.String)
,
Statement.getResultSet()
,
Statement.getUpdateCount()
,
Statement.getMoreResults()
void addBatch() throws SQLException
PreparedStatement
物件的批處理命令中。
SQLException
- 如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法Statement.addBatch(java.lang.String)
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
上調用此方法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 驅動程序不支持此方法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 驅動程序不支持此方法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 驅動程序不支持此方法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 驅動程序不支持此方法ResultSetMetaData getMetaData() throws SQLException
ResultSet
物件列資訊的 ResultSetMetaData
物件,ResultSet
物件將在執行此 PreparedStatement
物件時返回。
因為 PreparedStatement
物件被預先編譯,所以不必執行就可以知道它將返回的 ResultSet
物件。因此,可以對 PreparedStatement
物件調用 getMetaData
方法,而不必等待執行該物件,然後再對返回的 ResultSet
物件調用 ResultSet.getMetaData
方法。
註:對於某些缺乏底層 DBMS 支持的驅動程序,使用此方法開銷可能很大。
ResultSet
物件列的描述;如果驅動程序無法返回一個 ResultSetMetaData
物件,則返回 null
SQLException
- 如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法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
上調用此方法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
上調用此方法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
上調用此方法void setNull(int parameterIndex, int sqlType, String typeName) throws SQLException
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
- 如果 sqlType
是 ARRAY
、BLOB
、CLOB
、DATALINK
、JAVA_OBJECT
、NCHAR
、NCLOB
、NVARCHAR
、LONGNVARCHAR
、REF
、ROWID
、SQLXML
或 STRUCT
資料型別之一並且 JDBC 驅動程序不支持此資料型別,或者 JDBC 驅動程序不支持此方法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 驅動程序不支持此方法ParameterMetaData getParameterMetaData() throws SQLException
PreparedStatement
物件的參數的編號、型別和屬性。
ParameterMetaData
物件,它包含有關此 PreparedStatement
物件的每個參數標記的編號、型別和屬性的資訊
SQLException
- 如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法ParameterMetaData
void setRowId(int parameterIndex, RowId x) throws SQLException
java.sql.RowId
物件。在將此物件發送到資料庫時,驅動程序將它轉換成一個 SQL ROWID
值。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法void setNString(int parameterIndex, String value) throws SQLException
String
物件。在將此物件發送給資料庫時,驅動程序將它轉換成一個 SQL NCHAR
、NVARCHAR
或 LONGNVARCHAR
值(取決於該參數相對於驅動程序在 NVARCHAR
值上的限制的大小)。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……value
- 參數值
如果
- parameterIndex 不對應於 SQL 語句中的參數標記;如果驅動程序不支持國家字元 (national character) 集;如果驅動程序檢測到可能發生資料轉換錯誤;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法
SQLException
void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException
Reader
物件。Reader
將讀取資料,直到到達檔案末尾。驅動程序執行從 Java 字元格式到資料庫中國家字元集的必要轉換。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……value
- 參數值length
- 參數資料中的字元數。
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果驅動程序不支持國家字元集;如果驅動程序檢測到可能發生資料轉換錯誤;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法void setNClob(int parameterIndex, NClob value) throws SQLException
java.sql.NClob
物件。在將此物件發送到資料庫時,驅動程序將它轉換成一個 SQL NCLOB
值。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……value
- 參數值
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果驅動程序不支持國家字元集;如果驅動程序檢測到可能發生資料轉換錯誤;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法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 驅動程序不支持此方法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 驅動程序不支持此方法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 驅動程序不支持此方法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.Result
、Writer
或 OutputStream
已經關閉(對於 SQLXML
物件)
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法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 資料串流。另一方面,如果該物件是實作 Ref
、Blob
、Clob
、NClob
、Struct
、java.net.URL
或 Array
的類別,那麼驅動程序應該將它作為相應 SQL 型別的值傳遞給資料庫。
注意,此方法可用於傳遞特定於資料庫的抽象資料型別。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 套件含輸入參數值的物件targetSqlType
- 將發送給資料庫的 SQL 型別(定義於 java.sql.Types 中)。scale 參數可以進一步限定此型別。scaleOrLength
- 對於 java.sql.Types.DECIMAL
或 java.sql.Types.NUMERIC
型別,此值是小數點後的位數。對於 Java Object 型別 InputStream
和 Reader
,此值是串流或 Reader 中資料的長度。對於所有其他型別,忽略此值。
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤;如果在關閉的 PreparedStatement
上調用此方法,或者 x 指定的 Java Object 是一個 InputStream 或 Reader 物件,並且 scale 參數的值小於 0
SQLFeatureNotSupportedException
- 如果 targetSqlType
是 ARRAY
、BLOB
、CLOB
、DATALINK
、JAVA_OBJECT
、NCHAR
、NCLOB
、NVARCHAR
、LONGNVARCHAR
、REF
、ROWID
、SQLXML
或 STRUCT
資料型別之一,並且 JDBC 驅動程序不支持此資料型別Types
void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException
LONGVARCHAR
參數時,通過 java.io.InputStream
發送它可能更為實際。將根據需要從串流中讀取資料,一直讀取到檔案末尾。JDBC 驅動程序將執行從 ASCII 到資料庫 char 格式的任何必要轉換。
註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 套件含 ASCII 參數值的 Java 輸入串流length
- 串流中的位元組數
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法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
上調用此方法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
上調用此方法void setAsciiStream(int parameterIndex, InputStream x) throws SQLException
LONGVARCHAR
參數時,通過 java.io.InputStream
發送它可能更為實際。將根據需要從串流中讀取資料,一直讀取到檔案末尾。JDBC 驅動程序將執行從 ASCII 到資料庫 char 格式的任何必要轉換。
註:此串流物件既可以是一個標準 Java 串流物件,也可以是實作標準介面的使用者自己的子類別。
註:查詢 JDBC 驅動程序文檔,以確定使用帶 length 參數的 setAsciiStream
是否更有效。
parameterIndex
- 第一個參數是 1,第二個參數是 2,……x
- 套件含 ASCII 參數值的 Java 輸入串流
SQLException
- 如果 parameterIndex 不對應於 SQL 語句中的參數標記;如果發生資料庫存取錯誤,或者在關閉的 PreparedStatement
上調用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法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 驅動程序不支持此方法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 驅動程序不支持此方法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 驅動程序不支持此方法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 驅動程序不支持此方法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 驅動程序不支持此方法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 驅動程序不支持此方法
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。