Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / file to blob / 18 сообщений из 18, страница 1 из 1
26.09.2012, 11:08:04
    #37972576
shustrik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
Всем привет!!
Из базы mysql считываю значение в Blob
Blob bl = rs.getBlob("pic");
После чего хочу занести файл в него, но ничего не получается.

FileInputStream fis = new FileInputStream(file);
OutputStream os = bl.setBinaryStream(1L);
byte[] buffer = new byte[1024];
int length = -1;
while ((length = fis.read(buffer)) != -1)
os.write(buffer, 0, length);

os.flush();
fis.close();
os.close();
...
Рейтинг: 0 / 0
26.09.2012, 11:20:35
    #37972597
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
shustrikно ничего не получается.
Не компилируется код?
Компилируется, но не запускается?
Компилируется, запускается, но не работает пошаговая отладка?
Компилируется, запускается, работает пошаговая отладка, но файл не пишется в Blob?
Компилируется, запускается, работает пошаговая отладка, файл пишется в Blob, но не сохраняется в базу?
...
Рейтинг: 0 / 0
26.09.2012, 14:05:43
    #37972889
shustrik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
Компилируется, запускается, работает пошаговая отладка, файл пишется в Blob, но не сохраняется в базу
...
Рейтинг: 0 / 0
26.09.2012, 14:10:14
    #37972893
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
shustrikКомпилируется, запускается, работает пошаговая отладка, файл пишется в Blob, но не сохраняется в базу
Замечательно. И где код сохранения в базу? Или вы хотите через updatable resultset?
...
Рейтинг: 0 / 0
26.09.2012, 14:15:25
    #37972898
shustrik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
В конце я делаю conn.commit(), но в базу не пишет
...
Рейтинг: 0 / 0
26.09.2012, 14:18:15
    #37972905
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
shustrikВ конце я делаю conn.commit(), но в базу не пишет
И что? Где вы просите JDBC драйвер сделать непосредственно UPDATE вашего поля?
http://www.exampledepot.com/egs/java.sql/UpdateRow.html
...
Рейтинг: 0 / 0
26.09.2012, 14:30:23
    #37972930
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
On 26.09.2012 15:18, Blazkowicz wrote:

> И что? Где вы просите JDBC драйвер сделать непосредственно UPDATE вашего поля?

В случае Оракла это не надо, данные идут непосредственно по полученному локатору. Насчет MySQL - не в курсе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.09.2012, 14:32:29
    #37972935
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
On 26.09.2012 15:15, shustrik wrote:

> В конце я делаю conn.commit(), но в базу не пишет

Глупый может вопрос - автокоммит выключен?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.09.2012, 14:39:49
    #37972953
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
Denis PopovВ случае Оракла это не надо, данные идут непосредственно по полученному локатору.

Я очень сильно сомневаюсь:
http://stackoverflow.com/q/8348427
Есть где почитать?
...
Рейтинг: 0 / 0
26.09.2012, 14:44:38
    #37972963
shustrik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
Почему этот код с oracl-ом работает?
...
Рейтинг: 0 / 0
26.09.2012, 14:47:02
    #37972966
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
shustrikПочему этот код с oracl-ом работает?
Потому что "данные идут непосредственно по полученному локатору". :)
...
Рейтинг: 0 / 0
26.09.2012, 14:51:23
    #37972972
shustrik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
А из mysql не получает локатор?
...
Рейтинг: 0 / 0
26.09.2012, 14:59:42
    #37972986
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
shustrikА из mysql не получает локатор?
Это была ирония. Лично у вас код работает по Oracle? Или что вы хотели спросить?
...
Рейтинг: 0 / 0
26.09.2012, 15:12:13
    #37973016
shustrik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
Хочу понять почему с одной бд работает, а с другой нет.
...
Рейтинг: 0 / 0
26.09.2012, 15:20:40
    #37973030
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
shustrikХочу понять почему с одной бд работает, а с другой нет.
У вас работает или у Дениса?
...
Рейтинг: 0 / 0
26.09.2012, 15:28:32
    #37973043
shustrik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
у Васи.
...
Рейтинг: 0 / 0
26.09.2012, 15:31:02
    #37973051
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
shustrikу Васи.
У дачи.
...
Рейтинг: 0 / 0
26.09.2012, 16:56:42
    #37973208
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file to blob
BlazkowiczЯ очень сильно сомневаюсь:
http://stackoverflow.com/q/8348427
Есть где почитать?

Я попробовал:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Connection con;
...

con.setAutoCommit(false);

Statement st = con.createStatement();
st.execute(
  "begin execute immediate 'drop table TEST_BLOB'; exception when others then if sqlcode != -00942 then raise; end if; end;"
);
st.execute("create table TEST_BLOB as select empty_blob() pic from DUAL");

ResultSet rs = st.executeQuery("select pic from TEST_BLOB for update");
rs.next();
Blob blob = rs.getBlob("pic");
rs.close();

OutputStream os = blob.setBinaryStream(1L);
byte[] bytes = {1, 2, 3, 4, 5 ,6 ,7 ,8, 9, 10};
os.write(bytes, 0, bytes.length);
os.close();

rs = st.executeQuery("select pic, length(pic) length_pic from TEST_BLOB");
rs.next();
blob = rs.getBlob("pic");
System.out.println("blob.length()=" + blob.length() + ", length_pic=" + rs.getInt("length_pic"));

rs.close();
st.close();
con.close();



На выходе:
Код: plaintext
blob.length()=10, length_pic=10


Но, конечно, если локатор получается через oracle.sql.BLOb.createTemporary()? То да, его по-моему придется записать в таблицу.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / file to blob / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]