Re: JDBC tutorial code

Поиск
Список
Период
Сортировка
От Steve Waldman
Тема Re: JDBC tutorial code
Дата
Msg-id 20001212130007.A15570@peanut-butter.mchange.com
обсуждение исходный текст
Ответ на JDBC tutorial code  (Neil Kidd <neil@kidd.org.uk>)
Ответы Re: JDBC tutorial code
Список 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 по дате отправления:

Предыдущее
От: Sterling
Дата:
Сообщение: What's this mean?
Следующее
От: Neil Kidd
Дата:
Сообщение: Re: JDBC tutorial code