Hi!!

I want to insert byte array in database schema as follows:

     table message
    {
         msgid number(5),
         messagevalue BLOB
     };

I have done this in following way But I am getting NULL pointer exception.

//byte[] msgval .. contains byte values like 49 50 53 etc.

Blob msg;       
msg.setBytes(1,msgval);
// for  prepared statement  I have used st2.setBlob(4,msg);

Recommended Answers

All 5 Replies

I have never used these objects before but I can tell you that you get the exception because you don't instantiate the 'msg' object:

Blob msg; <-- it is null so when you write this:
msg.setBytes(1,msgval) --> you get the exception

I have never used these objects before but I can tell you that you get the exception because you don't instantiate the 'msg' object:

Blob msg; <-- it is null so when you write this:
msg.setBytes(1,msgval) --> you get the exception

how could I instantiate blob object.

Like I said I have never used them but you could check out the API:

Blob
SerialBlob

You can't instantiate a 'Blob'. According to the API, it is an interface. You can, however, instantiate SerialBlob.

> I want to insert byte array in database schema as follows

Where is this byte array coming from? If you are reading the contents of a file into a byte array which you are then trying to insert into the database, better use the methodsetBlob(int, InputStream, long) to avoid reading into a temporary byte array.

If it is a standalone byte array which you are trying to insert into the database, use the method specified above by wrapping the given byte array into a ByteArrayInputStream.

Something like:

byte[] bArr = /* grab the byte array */;
ByteArrayInputStream bIn = new ByteArrayInputStream(bArr);
/* relevant code */
pStmt.setBlob(paramPos, bIn, bArr.length);
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.