File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes JDBC and Relational Databases and the fly likes When to use setBytes() and setBinaryStream() Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC and Relational Databases
Bookmark "When to use setBytes() and setBinaryStream()" Watch "When to use setBytes() and setBinaryStream()" New topic

When to use setBytes() and setBinaryStream()

Amol Desai
Ranch Hand

Joined: Jan 29, 2003
Posts: 82
I am using oracle thin driver to insert a image (blob type) into database.
Which method of PreparedStatement interface should I use to insert data,
setBytes() or SetBinaryStream().
My understanding is BinaryStream also sends data in form of bytes.
Then what is the difference between these two method ?
Please let me know.
[ September 01, 2003: Message edited by: Amol Desai ]
Dana Hanna
Ranch Hand

Joined: Feb 28, 2003
Posts: 227
If you can use the setBinaryStream, do so. It will use memory buffering to read the stream and send a block at a time to the server. This is especially important if the binary data is extremely large. However, if you are holding a reference to the entire block of bytes in memory already, then use setBytes. Get it?
Ex - if you are reading the image data from the network, or from a file, than use setBinaryStream. If you have a byte array because you already read the stream, use setBytes. However, I'd strongly suggest finding a way to "read on demand" if the files are large.
I agree. Here's the link:
subject: When to use setBytes() and setBinaryStream()
It's not a secret anymore!