This week's book giveaway is in the Servlets forum.
We're giving away four copies of Murach's Java Servlets and JSP and have Joel Murach on-line!
See this thread for details.
The moose likes JDBC and the fly likes using setBlob() Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Databases » JDBC
Bookmark "using setBlob()" Watch "using setBlob()" New topic

using setBlob()

prakash chauhan
Ranch Hand

Joined: Jun 22, 2007
Posts: 81
Hi i have a question.
I have got a table with Data Type BLOB in mysql database

i have a jsp page with <html:file > input and that gives me the
FormFile object in my ActionForm using which i can get the InputStream Object , but i can't figure out how to save it to the the table using setBlob on my prepared Statement.
i was thinking about calling setBinary() on my prepared statement but it needs a third argument the length of the data and thats where i am getting stuck

Jeanne Boyarsky
internet detective

Joined: May 26, 2003
Posts: 30068

I recommend not using the setBlob function due to the difficulty you described with creating a Blob. Instead, I would use setBinaryStream(). There is a version of the method that only takes two parameters, so you don't need the length.

[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
Rob Spoor

Joined: Oct 27, 2005
Posts: 19649

That method has only been introduced in Java 1.6, so many drivers don't support it yet. You'd also have to upgrade to Java EE 5 to be compatible.

How To Ask Questions How To Answer Questions
prakash chauhan
Ranch Hand

Joined: Jun 22, 2007
Posts: 81
Thanks for the help.
well i am using 1.5
but some how i was able to use setBinaryStream().
What i did was like this. I got FormFile object from my Action Form
from FormFile i got InputStream and a lenght property
Then i used

the problem i am facing now is using the above mentioned code i am able to save a .jpeg file to my database (which is of type Blob) however when i try to save an audio file (.mp3, or .wmv) i get the error message that
the "query exceeded the max_allowed_packets " i am using MySQL as my Database server.

is it something(some variable) i need to set somewhere in my MySQL server?
[ November 20, 2007: Message edited by: prakash chauhan ]
Jeanne Boyarsky
internet detective

Joined: May 26, 2003
Posts: 30068

Thank you Rob. I hadn't noticed that I was looking at the latest version of the API. I had used the version of the API that does take a length and was just trying to verify the parameters.
Don't get me started about those stupid light bulbs.
subject: using setBlob()
Similar Threads
How to rollback multiple prepared statements
About setBLOb & getBlob
Urgent Java interview question 6+ yrs exp.
Out of Memory Exception
Method design advice