JavaTM 2 Platform
Standard Ed. 6

javax.sql.rowset.serial
類別 SerialBlob

java.lang.Object
  繼承者 javax.sql.rowset.serial.SerialBlob
所有已實作的介面:
Serializable, Cloneable, Blob

public class SerialBlob
extends Object
implements Blob, Serializable, Cloneable

SQL BLOB 值在 Java 程式語言中的序列化映射關係。

SerialBlob 類別提供一個根據 Blob 物件創建實例的建構子。注意,在根據 Blob 物件建構 SerialBlob 物件之前,Blob 物件應該已經將 SQL Blob 值的資料置於客戶端上。SQL Blob 值的資料可以在客戶端上以位元組陣列(使用 Blob.getBytes 方法)或未解釋位元組串流的形式(使用 Blob.getBinaryStream 方法)實作。

SerialBlob 方法能夠以位元組陣列或串流的形式複製 SerialBlob 物件。這些方法還可以在 SerialBlob 物件中尋找給定網要的位元組或 Blob 物件,並可以更新或截斷 Blob 物件。

另請參見:
序列化表格

建構子摘要
SerialBlob(Blob blob)
          根據給定 Blob 物件的序列化形式建構一個 SerialBlob 物件。
SerialBlob(byte[] b)
          按照給定 byte 陣列的序列化形式建構一個 SerialBlob 物件。
 
方法摘要
 void free()
          此方法釋放 Blob 物件及其佔有的資源。
 InputStream getBinaryStream()
          以輸入串流的形式返回此 SerialBlob 物件。
 InputStream getBinaryStream(long pos, long length)
          返回一個套件含部分 Blob 值的 InputStream 物件,它從 pos 指定的位元組開始,具有 length 個位元組長度。
 byte[] getBytes(long pos, int length)
          將指定的位元組數(從給定位置開始)從此 SerialBlob 物件複製到另一個位元組陣列。
 long length()
          獲取此 SerialBlob 物件位元組陣列中的位元組數。
 long position(Blob pattern, long start)
          返回此 SerialBlob 物件中給定 Blob 物件開始的位置,搜尋從指定位置開始。
 long position(byte[] pattern, long start)
          返回在此 SerialBlob 物件中給定網要的位元組開始的位置,搜尋從指定的位置開始。
 OutputStream setBinaryStream(long pos)
          獲取用於寫入此 Blob 物件所表示的 BLOB 值的串流。
 int setBytes(long pos, byte[] bytes)
          將給定位元組陣列寫入此 Blob 物件表示的 BLOB 值(從位置 pos 處開始),並返回寫入的位元組數。
 int setBytes(long pos, byte[] bytes, int offset, int length)
          將所有或部分給定的 byte 陣列寫入此 Blob 物件表示的 BLOB 值中,並返回寫入的位元組數。
 void truncate(long length)
          截取此 Blob 物件表示的 BLOB 值,使其長度為 len 個位元組。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

SerialBlob

public SerialBlob(byte[] b)
           throws SerialException,
                  SQLException
按照給定 byte 陣列的序列化形式建構一個 SerialBlob 物件。

新的 SerialBlob 物件使用 byte 陣列中的資料進行初始化,因此允許未連接 RowSet 物件無需接觸資料源即可建立序列化的 Blob 物件。

參數:
b - 一個 byte 陣列,包含要序列化的 Blob 物件的資料
拋出:
SerialException - 如果在序列化期間發生錯誤
SQLException - 如果發生 SQL 錯誤

SerialBlob

public SerialBlob(Blob blob)
           throws SerialException,
                  SQLException
根據給定 Blob 物件的序列化形式建構一個 SerialBlob 物件。

新的 SerialBlob 物件使用 Blob 物件中的資料進行初始化;因此,Blob 物件應該預先從資料庫將 SQL BLOB 值的資料置於客戶端上。否則,新 SerialBlob 物件將不包含任何資料。

參數:
blob - 一個 Blob 物件,根據該物件建構此 SerialBlob 物件 ;此值不能為 null。
拋出:
SerialException - 如果在序列化期間發生錯誤
SQLException - 如果傳遞給此建構子的 Blobnull
另請參見:
Blob
方法詳細資訊

getBytes

public byte[] getBytes(long pos,
                       int length)
                throws SerialException
將指定的位元組數(從給定位置開始)從此 SerialBlob 物件複製到另一個位元組陣列。

注意,如果要複製的給定位元組數大於此 SerialBlob 物件的位元組陣列的長度,則將其縮短為該陣列的長度。

指定者:
介面 Blob 中的 getBytes
參數:
pos - 此 SerialBlob 物件中要複製的第一個位元組的順序位置;編號從 1 開始;不得小於 1 並且必須小於或等於此 SerialBlob 物件的長度
length - 要複製的位元組數
返回:
一個位元組陣列,它是此 SerialBlob 物件一個區域的副本,從給定位置開始並且包含給定的連續位元組數
拋出:
SerialException - 如果給定開始位置超出限制
另請參見:
Blob.setBytes(long, byte[])

length

public long length()
            throws SerialException
獲取此 SerialBlob 物件位元組陣列中的位元組數。

指定者:
介面 Blob 中的 length
返回:
一個 long 值,指示此 SerialBlob 物件的位元組陣列的長度(以位元組為單位)
拋出:
SerialException - 如果發生錯誤

getBinaryStream

public InputStream getBinaryStream()
                            throws SerialException
以輸入串流的形式返回此 SerialBlob 物件。與相關方法 setBinaryStream 不同的是,無論 SerialBlob 是使用 Blob 物件還是使用 byte 陣列創建的,都將產生串流。

指定者:
介面 Blob 中的 getBinaryStream
返回:
包含此 SerialBlob 物件位元組陣列的 java.io.InputStream 物件
拋出:
SerialException - 如果發生錯誤
另請參見:
setBinaryStream(long)

position

public long position(byte[] pattern,
                     long start)
              throws SerialException,
                     SQLException
返回在此 SerialBlob 物件中給定網要的位元組開始的位置,搜尋從指定的位置開始。

指定者:
介面 Blob 中的 position
參數:
pattern - 要搜尋的位元組網要
start - 此 SerialBlob 物件中位元組的位置,搜尋從該位置開始;第一個位置是 1;不得小於 1 且不得大於此 SerialBlob 物件的長度
返回:
SerialBlob 物件中給定網要開始的位置,從指定位置開始;如果找不到網要或者給定開始位置超出限制,則返回 -1;返回值的位置編號從 1 開始
拋出:
SerialException - 如果在序列化 blob 時發生錯誤
SQLException - 如果在從資料庫存取 BLOB 值時發生錯誤

position

public long position(Blob pattern,
                     long start)
              throws SerialException,
                     SQLException
返回此 SerialBlob 物件中給定 Blob 物件開始的位置,搜尋從指定位置開始。

指定者:
介面 Blob 中的 position
參數:
pattern - 進行搜尋的 Blob 物件;
start - 在此 SerialBlob 物件中開始搜尋的位元組的位置;第一個位置是 1;不得小於 1 且不得大於此 SerialBlob 物件的長度
返回:
在此 SerialBlob 物件中給定 Blob 物件開始的位置,從指定位置開始;如果找不到網要或者給定開始位置超出限制,則返回 -1;返回值的位置編號從 1 開始
拋出:
SerialException - 如果在序列化 blob 時發生錯誤
SQLException - 如果在從資料庫存取 BLOB 值時發生錯誤

setBytes

public int setBytes(long pos,
                    byte[] bytes)
             throws SerialException,
                    SQLException
將給定位元組陣列寫入此 Blob 物件表示的 BLOB 值(從位置 pos 處開始),並返回寫入的位元組數。

指定者:
介面 Blob 中的 setBytes
參數:
pos - SQL BLOB 值中開始寫入的位置。第一個位置是 1;不得小於 1 且不得大於此 SerialBlob 物件的長度。
bytes - 要寫入此 Blob 物件所表示的 BLOB 值的位元組陣列
返回:
寫入的位元組數
拋出:
SerialException - 如果在存取 BLOB 值時發生錯誤;如果設置了無效的位置;如果設置了無效的偏移量值
SQLException - 如果從資料庫存取 BLOB 值時發生錯誤
另請參見:
getBytes(long, int)

setBytes

public int setBytes(long pos,
                    byte[] bytes,
                    int offset,
                    int length)
             throws SerialException,
                    SQLException
將所有或部分給定的 byte 陣列寫入此 Blob 物件表示的 BLOB 值中,並返回寫入的位元組數。寫入操作從 BLOB 值中的位置 pos 處開始;寫入給定位元組陣列中的 len 個位元組。

指定者:
介面 Blob 中的 setBytes
參數:
pos - SQL BLOB 物件中開始寫入的位置。第一個位置是 1;不得小於 1 且不得大於此 SerialBlob 物件的長度。
bytes - 要寫入 BLOB 值的位元組陣列
offset - byte 陣列中的偏移量,從該偏移量開始讀取位元組。第一個偏移量位置是 0;不得小於 0 且不得大於 byte 陣列的長度
length - 要從 bytes 位元組陣列寫入 BLOB 值的位元組數。
返回:
寫入的位元組數
拋出:
SerialException - 如果在存取 BLOB 值時發生錯誤;如果設置了無效的位置;如果設置了無效的偏移量值;如果要寫入的位元組數大於 SerialBlob 長度;如果長度和偏移量的組合值大於 Blob 緩衝區
SQLException - 如果在從資料庫存取 BLOB 值時發生錯誤。
另請參見:
getBytes(long, int)

setBinaryStream

public OutputStream setBinaryStream(long pos)
                             throws SerialException,
                                    SQLException
獲取用於寫入此 Blob 物件所表示的 BLOB 值的串流。該串流從位置 pos 處開始。如果此 SerialBlob 物件是使用 Blob 進行實例化的,則此方法將 setBinaryStream() 調用轉發到底層 Blob。如果此 SerialBlob 是使用 byte 陣列進行實例化的,則拋出 SerialException

指定者:
介面 Blob 中的 setBinaryStream
參數:
pos - BLOB 值中開始進行寫入操作的位置
返回:
可以寫入資料的 java.io.OutputStream 物件
拋出:
SQLException - 如果存取 BLOB 值時發生錯誤
SerialException - 如果 SerialBlob 不是使用支持 setBinaryStream()Blob 物件進行實例化的
從以下版本開始:
1.4
另請參見:
getBinaryStream()

truncate

public void truncate(long length)
              throws SerialException
截取此 Blob 物件表示的 BLOB 值,使其長度為 len 個位元組。

指定者:
介面 Blob 中的 truncate
參數:
length - 此 Blob 物件表示的 BLOB 值截取後的長度(以位元組為單位)
拋出:
SerialException - 如果在存取 Blob 值時發生錯誤,或者要截取的長度大於 SerialBlob 長度

getBinaryStream

public InputStream getBinaryStream(long pos,
                                   long length)
                            throws SQLException
返回一個套件含部分 Blob 值的 InputStream 物件,它從 pos 指定的位元組開始,具有 length 個位元組長度。

指定者:
介面 Blob 中的 getBinaryStream
參數:
pos - 要獲取的部分值的第一個位元組的偏移量。Blob 的第一個位元組位於位置 1。
length - 要獲取的部分值的位元組長度
返回:
通過其可以讀取部分 Blob 值的 InputStream
拋出:
SQLException - 如果 pos 小於 1,pos 大於 Blob 的位元組數,或者 pos + length 大於 Blob 的位元組數
從以下版本開始:
1.6

free

public void free()
          throws SQLException
此方法釋放 Blob 物件及其佔有的資源。調用 free 方法後,該物件將無效。如果多次調用了 free 方法,則對 free 的後續調用將被視為無操作 (no-op)。

指定者:
介面 Blob 中的 free
拋出:
SQLException - 如果釋放 Blob 的資源時發生錯誤
從以下版本開始:
1.6

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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