Re: JDBC + large objects problem - Mailing list pgsql-interfaces
From | Peter Mount |
---|---|
Subject | Re: JDBC + large objects problem |
Date | |
Msg-id | 00a401c00f46$aa31ed60$2516989e@heather Whole thread Raw |
In response to | JDBC + large objects problem (Patrick Goodwill <goodwill@cheese.stanford.edu>) |
List | 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@retep.org.uk, me@petermount.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@cheese.stanford.edu> To: <pgsql-interfaces@postgresql.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. > >
pgsql-interfaces by date: