Re: bytea problem

Поиск
Список
Период
Сортировка
От Thomas Kellerer
Тема Re: bytea problem
Дата
Msg-id jagpe2$ikk$1@dough.gmane.org
обсуждение исходный текст
Ответ на bytea problem  (alkampfer <kazucat@gmail.com>)
Ответы Re: bytea problem  (chris humphrey <chris@parallelsw.com>)
Re: bytea problem  (alkampfer <kazucat@gmail.com>)
Список pgsql-jdbc
alkampfer wrote on 22.11.2011 18:37:
> Hello, this is my problem :
> I use java + postgres and I want to store image files into a table
>
> my table : (id int,  image bytea)
>
> the code :
>                  byte bytes[] = new byte[(int)file.length()];
>
>                  sqlq ="UPDATE table set image= ? where id=?";
>                  ps = .....prepareStatement(sqlq);
>                  ps.setBytes(2,bytes);
>                  ps.setString(2,id);
>
> put the file into my table, stream of 41054 bytes, OK.
>
> but when I retrieve it from the database resultSet.getBytes("image") gives
> an array of 82108 bytes!!
> worst of all those bytes I get have no sense at all, like 00 00  00 or 11
> 11....

How do you read the data into the bytes[] array?

I usually use setBinaryStream() instead of setBytes(), that saves me from "manually" reading the file content into an
array:

InputStream in = new FileInputStream(file);
sqlq ="UPDATE table set image= ? where id=?";
ps = .....prepareStatement(sqlq);
ps.setBinarayStream(1, in, (int)file.length());
ps.setString(2,id);



В списке pgsql-jdbc по дате отправления:

Предыдущее
От: alkampfer
Дата:
Сообщение: Re: bytea problem
Следующее
От: Mikko Tiihonen
Дата:
Сообщение: SslTests failures