Skip site navigation (1) Skip section navigation (2)

Re: JDBC tutorial code

From: Steve Waldman <swaldman(at)mchange(dot)com>
To: Neil Kidd <neil(at)kidd(dot)org(dot)uk>
Cc: pgsql-novice(at)postgresql(dot)org
Subject: Re: JDBC tutorial code
Date: 2000-12-12 18:00:07
Message-ID: 20001212130007.A15570@peanut-butter.mchange.com (view raw or flat)
Thread:
Lists: 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(at)kidd(dot)org(dot)uk
> ----------------------------------------------------------------

In response to

Responses

pgsql-novice by date

Next:From: SterlingDate: 2000-12-12 18:46:54
Subject: What's this mean?
Previous:From: Tom LaneDate: 2000-12-12 17:57:46
Subject: Re: processing results from INTERSECT, UNION or EXCEPT

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group