Re: JDBC tutorial code - Mailing list pgsql-novice
From | Steve Waldman |
---|---|
Subject | Re: JDBC tutorial code |
Date | |
Msg-id | 20001212130007.A15570@peanut-butter.mchange.com Whole thread Raw |
In response to | JDBC tutorial code (Neil Kidd <neil@kidd.org.uk>) |
Responses |
Re: JDBC tutorial code
|
List | pgsql-novice |
Neil, For some reason, postgres' JDBC driver doesn't implement PreparedStatement.setBinaryStream(). Use PreparedStatement.setBytes() instead. Try this... InputStream is = new BufferedInputStream( new FileInputStream( file ) ); ByteArrayOutputStream baos = new ByteArrayOutputStream(); for (int b = is.read(); b >=0; b = is.read()) baos.write(b); ps.setBytes(2, baos.toByteArray()); Hope this helps, Steve On Tue, Dec 12, 2000 at 11:55:06AM +0000, Neil Kidd wrote: > > Hello, > I have followed the JDBC tutorial code at > http://www.postgresql.org/devel-corner/docs/programmer/jdbc-lo.htm > and keep getting an sqlException from the JDBC driver. I need to deal with > BLOBS. Text fields etc work fine. > The exception states: InputStream not supported. > > The code is as follows: > > import java.sql.*; > import java.io.*; > > public class dbtest > { > public static void main( String[] args ) > { > // Load the driver > try > { > // Load the driver class > Class.forName( "org.postgresql.Driver" ); > > // Define the data source for the driver > String dbURL = "jdbc:postgresql://192.168.0.3/mynewdb"; > > // Create a connection through the DriverManager > Connection dbCon = DriverManager.getConnection( dbURL, USER , PASS ); > > dbCon.setAutoCommit( false ); > > File file = new File( > "D:\\dev\\code\\dbtest\\jdbc7.0-1.2.jar" ); > FileInputStream fis = new FileInputStream( file ); > PreparedStatement ps = dbCon.prepareStatement( "insert into test1 > values (?,?)" ); > > ps.setString( 1, file.getName() ); > ps.setBinaryStream( 2, fis, ( int )file.length() ); > ps.executeUpdate(); > ps.close(); > fis.close(); > } > catch( ClassNotFoundException cnfe ) > { > System.err.println( "1 " + cnfe ); > } > catch( SQLException sqle ) > { > System.err.println( "2 " + sqle ); > sqle.printStackTrace(System.err); > } > catch( FileNotFoundException fnfe ) > { > System.err.println( "3 " + fnfe ); > } > catch( IOException ioe ) > { > System.err.println( "4 " + ioe ); > } > } > > Thanks in advance for any help. > Regards, > Neil > ---------------------------------------------------------------- > From: Neil Kidd > Website: http://www.kidd.org.uk > E-mail: neil@kidd.org.uk > ----------------------------------------------------------------
pgsql-novice by date: