Home > Archive > PostgreSQL JDBC > September 2005 > Trouble with PreparedStatement.setBinaryData or setBytes()









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Trouble with PreparedStatement.setBinaryData or setBytes()
Alfredo Rico

2005-09-27, 11:24 am

Hi friends, greetings :-)

First of all, please apologize by my bad english, I don't speak yet very
well. I speak spanish.

I'm working in a Java Web development using NetBeans 4.1 + Jakarta
FileUploads + PostgreSQL v7.4.7

The situation is as following:

I have a table called 'attachedfiles' in my DB with the follow structre:

CREATE TABLE attachedfiles (
namefile character varying(100) NOT NULL,
content bytea NOT NULL,
id integer NOT NULL
);

I have Java class with the following code ( very similar to code founded at
http://www.postgresql.org/docs/7.4/...inary-data.html ):

InputStream is = new FileInputStream("/home/alfredo/PostgresqlBook.pdf");
PreparedStatement ps = conn.prepareStatement("INSERT INTO attachedfiles (id,
namefile, contentfile) VALUES (?, ?, ?)");
ps.setInt(1,4);
ps.setString(2,"PostgresqlBook.pdf");
ps.setBinaryStream(3, is, is.avalaible() );
ps.executeUpdate();
ps.close();
is.close();


The great and terrible problem is the following:
If input file (pdf, doc, png, txt whatever...) exceed 2 MB
I have the following exception:

javax.servlet.ServletException: La ejecución del
Servlet lanzó una excepción
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(
MonitorFilter.java:362)
causa raíz
java.lang.OutOfMemoryError: Java heap space

With the following variations in java code even doesn't work:

InputStream is = new FileInputStream("/home/alfredo/PostgresqlBook.pdf");
byte data[] = new bytes[is.avalaible()];
is.read(data);
PreparedStatement ps = conn.prepareStatement("INSERT INTO attachedfiles (id,
namefile, contentfile) VALUES (?, ?, ?)");
ps.setInt(1,4);
ps.setString(2,"PostgresqlBook.pdf");
ps.setBytes(3, data );
ps.executeUpdate();
ps.close();
is.close();


Besides, I have increased JVM heap starting Netbeans IDE using the following
sentence:

$ ./netbeans -J-Xmx300m

And even don't work...

Could any body help me ? I don't know what to do :-(

Beforehand thank you very much by your help and support.

Kind regards.-
Alfredo Rico.

Kris Jurka

2005-09-27, 1:24 pm



On Tue, 27 Sep 2005, Alfredo Rico wrote:

> If input file (pdf, doc, png, txt whatever...) exceed 2 MB
> I have the following exception:
>
> java.lang.OutOfMemoryError: Java heap space
>


You should try upgrading to the 8.0 driver which does a much better job of
memory management and streaming data to the server.

Kris Jurka


---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

http://archives.postgresql.org

Alfredo Rico

2005-09-27, 8:24 pm

Kris,
Thank you Thank you Thank you Thank you Thank you Thank you Thank you Thank
you Thank you Thank you Thank you Thank you Thank you Thank you Thank you
Thank you

Thank you Kris... That's was the solution to all problem. Using JDBC driver
for PostgreSQL v.8.0 was the solution, I was using JDBC version 7.4 Build
216 becuase I'm working with PostgreSQL v7.4.7.

Kris, anew thank you so much...

Warm Regards.-
Alfredo Rico.-

On 9/27/05, Kris Jurka <books@ejurka.com> wrote:
>
>
>
> On Tue, 27 Sep 2005, Alfredo Rico wrote:
>
>
> You should try upgrading to the 8.0 driver which does a much better job of
> memory management and streaming data to the server.
>
> Kris Jurka
>
>


Sponsored Links





Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive | Programming forum archive

Copyright 2008 droptable.com