Re: JDBC + large objects problem

From: "Peter Mount" <peter(at)retep(dot)org(dot)uk>
To: "Patrick Goodwill" <goodwill(at)cheese(dot)stanford(dot)edu>, <pgsql-interfaces(at)postgresql(dot)org>
Subject: Re: JDBC + large objects problem
Date: 2000-08-26 09:56:16
Message-ID: 00a401c00f46$aa31ed60$2516989e@heather
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

Streams are not supported yet, hence the message.

There are various ways around this, all of which are discussed recently in
the list archives.

Peter

--
Peter T Mount peter(at)retep(dot)org(dot)uk, me(at)petermount(dot)com
Homepage: http://www.retep.org.uk Contact details: http://petermount.com
PostgreSQL JDBC: http://www.retep.org.uk/postgres/
Java PDF Generator: http://www.retep.org.uk/pdf/
----- Original Message -----
From: "Patrick Goodwill" <goodwill(at)cheese(dot)stanford(dot)edu>
To: <pgsql-interfaces(at)postgresql(dot)org>
Sent: Friday, August 25, 2000 10:25 PM
Subject: [INTERFACES] JDBC + large objects problem

> I'm trying to use JDBC and BLOBS to store large amounts of text in a
> database. I get a strange error when I try to use the conventional JDBC
> interface... it comes out with a SQL Exceptions of:
>
> "InputStream as parameter not supported"
>
> for the code:
>
> Connection conn = pool.getConnection();
> PreparedStatement pstmt =
> conn.prepareStatement("INSERT INTO t" + book
> + "_data (author_id, title, text,
> type) VALUES ( ?, ?, ?, ?)");
> pstmt.setInt(1, userId);
> pstmt.setString(2, title);
> InputStream textStream = stringToStream(text);
> pstmt.setBinaryStream(3, textStream, text.length());
> pstmt.setInt(4, type);
> pstmt.executeUpdate();
> pstmt.close();
>
>
> ... with some helper functions....
>
> private InputStream stringToStream(String string) {
> byte[] bytes = string.getBytes();
> ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
> return (InputStream) stream;
> }
>
> private String streamToString(InputStream stream) {
> try {
> int length = stream.available();
> byte[] bytes = new byte[length];
> stream.read(bytes);
> return new String(bytes);
> } catch (IOException e) {
> System.out.println("No Stream");
> }
> return null;
> }
>
> with an abbreviated schema of....
>
> >> \d t1_data
> Table "t1_data"
> Attribute | Type | Modifier
> -----------+---------+----------------------------------------------------
---
> data_id | integer | not null default
> nextval('t1_data_data_id_seq'::text)
> author_id | integer |
> title | text |
> text | oid |
> type | integer |
> time | time |
> Index: t1_data_pkey
>
>
> .... using postgresql 7.0 and the newest JDBC driver from retep.org.uk
>
>
> if ya'll have any ideas why it does what it does, i just might kiss your
> feet. =)
>
> -Patrick.
>
>

In response to

Browse pgsql-interfaces by date

  From Date Subject
Next Message Cedar Cox 2000-08-27 06:04:15 Re: JDBC problem
Previous Message Peter Mount 2000-08-26 09:54:43 Re: JDBC and java.sql.Timestamp