From: | Stephen Davies <sdavies(at)sdc(dot)com(dot)au> |
---|---|
To: | Thomas Kellerer <spam_eater(at)gmx(dot)net>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: import_bytea function |
Date: | 2016-10-08 06:36:14 |
Message-ID: | 428935bb-71d6-6316-cfac-e28c4eb83f2d@sdc.com.au |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 07/10/16 19:24, Thomas Kellerer wrote:
> Stephen Davies schrieb am 07.10.2016 um 10:46:
>>> You can store the contents of a file in a bytea using plain JDBC no lo_import() required
>>>
>>> String sql = "insert into images (id, image_data) values (?,?)";
>>> Connection con = ....;
>>> File uploaded = new File("...");
>>> InputStream in = new FileInputStream(uploaded);
>>> PreparedStatement pstmt = con.prepareStatement(sql);
>>> pstmt.setInt(1, 42);
>>> pstmt.setBinaryStream(in, (int)uploaded.length());
>>> pstmt.executeUpdate();
>>>
>>> This *only* works with bytea column, not with "large objects".
>>>
>>> In production code you obviously need to close all resources and handle errors.
>>> I left that out for simplicity.
>
>> That looks reasonable but I need to update rather than insert and my similar
>> code with sql="update part set pic=? where id=3" did not work.
>
> That *will* work (using that myself for updates as well).
>
> What exactly is your problem? What was the error/exception?
>
>
>
>
>
I tried the prepared statement approach again and this time it worked.
No idea what I did wrong last time.
However, my display code still does not work.
Cheers and thanks,
Stephen
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas Kellerer | 2016-10-08 06:46:24 | Re: import_bytea function |
Previous Message | Stephen Davies | 2016-10-08 00:57:32 | Re: import_bytea function |