com.onewebsql.query.adapter
Class DiskBufferingSetBlobOp

java.lang.Object
  extended by com.onewebsql.query.adapter.ColumnOp<T>
      extended by com.onewebsql.query.adapter.ColumnBlobOp<Object>
          extended by com.onewebsql.query.adapter.SetBlobOp
              extended by com.onewebsql.query.adapter.DiskBufferingSetBlobOp
All Implemented Interfaces:
ConnectionOp<Object>

public class DiskBufferingSetBlobOp
extends SetBlobOp

Operacja zapisująca dane ze strumienia wejściowego do kolumny typu Blob we wskazanym wierszu. Dane przed zapisem są buforowane. W zależności od ilości danych zawartych w strumieniu są one buforowane w pamięciu lub na dysku.


Field Summary
static int DEFAULT_MEMORY_BUFFER_SIZE
          Określa maksymalny rozmiar danych ze strumienia wejściowego, który będzie buforowany w pamięci.
protected  File tmpFile
          Plik tymczasowy zawierający zbuforowane dane wejściowe.
 
Fields inherited from class com.onewebsql.query.adapter.SetBlobOp
DEFAULT_FIRST_BURST_SIZE, firstBurstSize, is
 
Fields inherited from class com.onewebsql.query.adapter.ColumnBlobOp
SINGLE_BLOB_ROW_HANDLER
 
Fields inherited from class com.onewebsql.query.adapter.ColumnOp
column, dbAdapter, length, rowId, schemaName
 
Constructor Summary
DiskBufferingSetBlobOp(DBAdapter dbAdapter, String schemaName, Column column, LExp rowId, InputStream is, long length)
          Konstruktor.
DiskBufferingSetBlobOp(DBAdapter dbAdapter, String schemaName, Column column, LExp rowId, InputStream is, long length, int firstBurstSize)
          Konstruktor.
 
Method Summary
protected  void bufferInputStream()
          Buforuje dane ze strumienia wejściowego.
 Object invoke(Connection connection)
          Invokes the operation.
 
Methods inherited from class com.onewebsql.query.adapter.SetBlobOp
isAtEndOfStream, writeFirstBurst, writeSecondBurst
 
Methods inherited from class com.onewebsql.query.adapter.ColumnBlobOp
getColumnBlob
 
Methods inherited from class com.onewebsql.query.adapter.ColumnOp
getColumnDebugName, getColumnObject, setColumnValueToNull
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_MEMORY_BUFFER_SIZE

public static final int DEFAULT_MEMORY_BUFFER_SIZE
Określa maksymalny rozmiar danych ze strumienia wejściowego, który będzie buforowany w pamięci. W momencie przekroczenia tej wielkości dotychczas zbuforowane dane są automatycznie zapisywane na dysk i dalsze buforowanie odbywa się w pliku tymczasowym na dysku.

See Also:
Constant Field Values

tmpFile

protected File tmpFile
Plik tymczasowy zawierający zbuforowane dane wejściowe.

Constructor Detail

DiskBufferingSetBlobOp

public DiskBufferingSetBlobOp(DBAdapter dbAdapter,
                              String schemaName,
                              Column column,
                              LExp rowId,
                              InputStream is,
                              long length)
Konstruktor. Jego wywołanie jest równoważne wywołaniu DiskBufferingSetBlobOp(dbAdapter, column, rowId, is, length, DEFAULT_FIRST_BURST_SIZE).

Parameters:
dbAdapter - adapter bazy danych.
schemaName - nazwa schematu w którym tabela
column - kolumna do której będą zapisywane dane.
rowId - identyfikator wiersza tabeli, do którego będą zapisywane dane.
is - strumień wejściowy zawierający dane do zapisania.
length - ilość bajtów do zapisu. Jeżeli podana zostanie wartość -1 operacja zapisze wszystkie dane ze strumienia wejściowego.

DiskBufferingSetBlobOp

public DiskBufferingSetBlobOp(DBAdapter dbAdapter,
                              String schemaName,
                              Column column,
                              LExp rowId,
                              InputStream is,
                              long length,
                              int firstBurstSize)
Konstruktor.

Parameters:
dbAdapter - adapter bazy danych.
schemaName - nazwa schematu w którym tabela
column - kolumna do której będą zapisywane dane.
rowId - identyfikator wiersza tabeli, do którego będą zapisywane dane.
is - strumień wejściowy zawierający dane do zapisania.
length - ilość bajtów do zapisu. Jeżeli podana zostanie wartość -1 operacja zapisze wszystkie dane ze strumienia wejściowego.
firstBurstSize - rozmiar pierwszej paczki do zapisu w bajtach.
Method Detail

bufferInputStream

protected void bufferInputStream()
                          throws SQLException
Buforuje dane ze strumienia wejściowego.

Throws:
SQLException - jeżeli wystąpił błąd podczas operacji na bazie danych.

invoke

public Object invoke(Connection connection)
              throws SQLException
Description copied from interface: ConnectionOp
Invokes the operation.

Specified by:
invoke in interface ConnectionOp<Object>
Overrides:
invoke in class SetBlobOp
Parameters:
connection - database connection
Returns:
result of the operation
Throws:
SQLException - if an exception is thrown


Copyright © 2011-2013 e-point SA. All Rights Reserved.