19

I want to create a Blob object from a byte[] input to update a table using PreparedStatement#setBlob(). In J2SE 6, we have java.sql.Connection#createBlob() to get this done. Is there anything similar to this available in J2SE 1.5.0? What is the best way to update a BLOB type column with a byte[] data in J2SE 1.5.0?

1
  • 1
    The answer to your question is very much related to what jdbc driver you are using, and what database you are using. Commented Jun 8, 2011 at 12:52

3 Answers 3

29

An example, using SerialBlob:

import java.sql.Blob;
import javax.sql.rowset.serial.SerialBlob;

byte[] byteArray = .....;
Blob blob = new SerialBlob(byteArray);
Sign up to request clarification or add additional context in comments.

Comments

8

You don't have to worry about creating Blob objects at all. Treat them as blobs on the database, and byte[]s in Java. For example:

@Entity
@Table(name = "some.table")
public class MyEntity
{
    @Id
    int myId;

    @Lob
    byte[] myBlob;

    // snip getters & setters
}

If you're really intent on creating a Blob instance yourself, you can use the SerialBlob implementation:

byte[] bytes = ...;
Blob myBlob = new SerialBlob(bytes);

Comments

0

You don't need to actually create the Blob itself. When doing a prepared statement, use a ByteArrayInputStream for the parameter when setting the blob parameter.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.