Once you have a byte[] you can read it using a ByteArrayInputStream and you can write it using ByteArrayOutputStream. You should look at the JavaDocs to learn more about these classes.
 
For reading the byte[] you could, for example, do the following:
 

java.sql.Connection connection = this.getConnection();

java.sql.PreparedStatement statement = connection.prepareStatement("select data from DATASTORE where ID = ?");

statement.setObject(1, primaryKey);

byte[] documentData = null;

java.sql.ResultSet result = statement.executeQuery();

if (result.next()) {

documentData = result.getBytes(1);

}

java.io.ByteArrayInputStream bis = new java.io.ByteArrayInputStream(documentData);

java.io.BufferedReader in

= new java.io.BufferedReader(new java.io.InputStreamReader(bis));

String str = null;

do {

str = in.readLine();

// do something here

} while(str != null);


 

From: soussou97 <[EMAIL PROTECTED]> [mailto:soussou97 <[EMAIL PROTECTED]>]
Sent: Monday, October 02, 2006 1:20 AM
To: [email protected]
Subject: RE: Scanning byte array


Hi Christopher ;

OK for your example but imagined that you do not have of documents but of
data, so firstly to get the data out of the table as into the example :

connection = this.getConnection();
statement = connection.prepareStatement("select data from
DATASTORE where ID = ?");
statement.setObject(1, primaryKey);
byte[] documentData = null;
ResultSet result = statement.executeQuery();
if (result.next()) {
Data = ""
}

Next you make how to extract the data inside of array (which can be :
integer, string, etc...) ?

Regards;


Christopher.Mathrusse wrote:
>
>
>
>
>
>
> When I was working with Oracle and needed to store XML
> documents in the database I defined the column type as LONG RAW. Then I
> was able
> to stream the data into the table by using the following:
>  
>       PreparedStatement
> statement = connection.prepareStatement("insert into DOCUMENTSTORE
> values(?,?)");
>       ByteArrayInputStream
> stream = new
> ByteArrayInputStream(documentData);      
> statement.setBinaryStream(1, stream,
> documentData.length);
> To get the data out of the table I
> used the following:
>       connection =
> this.getConnection();       statement =
> connection.prepareStatement("select DOCUMENT from DOCUMENTSTORE where ID =
> ?");       statement.setObject(1,
> primaryKey);
>  
>       byte[] documentData
> = null;
>  
>       ResultSet result =
> statement.executeQuery();       if
> (result.next())
> {         documentData =
> result.getBytes(1);      
> }
>  
>  
>
>
> From: soussou97 <[EMAIL PROTECTED]>
> [mailto:soussou97 <[EMAIL PROTECTED]>] Sent: Friday,
> September 29, 2006 5:16 AM To:
> [email protected] Subject: Scanning byte
> array
> Hi; I have a method which return a byte array from a BLOB
> (Oracle) : public static byte[] getBLOB(int id, Connection conn) throws
> Exception { ResultSet rs = null; PreparedStatement pstmt = null;
> String query = "SELECT data FROM Table1 WHERE id = ?"; try { pstmt =
> conn.prepareStatement(query); pstmt.setInt(1, id); rs =
> pstmt.executeQuery(); rs.next(); Blob blob = rs.getBlob(1); return
> blob.getBytes(1, (int) blob.length()); } finally { rs.close();
> pstmt.close(); conn.close(); } } } I must to
> scan the byte array position by position for extracting of the data
> contained into this array for a display in using a GUI. Which is the best
> (performance) solution to implemente this ? Regards; --
> View this message in context:
> http://www.nabble.com/Scanning-byte-array-tf2356548.html#a6563833 Sent
> from
> the iBATIS - User - Java mailing list archive at Nabble.com.
>
>
>
>

--
View this message in context: http://www.nabble.com/Scanning-byte-array-tf2356548.html#a6597501
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.


Reply via email to