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: