![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Гость_Max |
|
|||
Unregistered |
Всем добрый день.
Вопрос такой. В базе данных «mySQL», нужно сохранить текст, где-то на 1000 символов. Я пробовал создавать колонку типа «Blob», или типа «Text». Как мне достать этот текст? Что я сделал: String s1 = rs.getBlob(“column_name”).toString(); Ошибку не выдает, но и текст не показывает, выдает что-то вроде названия объекта. |
|||
|
||||
Sun |
|
|||
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 8 Всего: 48 |
Тебе наверно лучше получить InputStream через метод getBinaryStream() а затем вычитать данные из потока.
-------------------- Account removed |
|||
|
||||
DarkDS |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: 11 Всего: 16 |
.toString(); - Выдает дебаговую информацию. Если этот метод не переопределен, чтобы выдавать осмысленную информацию, то, по дефолту, он выдает название инстанса (то есть имя объекта и его адресс в памяти JVM)
|
|||
|
||||
DarkDS |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: 11 Всего: 16 |
Если тект создан, то можешь достать rset.getString("column_name") для типа текст... Блоб - это байтовая информация... Обычно используется для хранения картинок и тд и тп...
|
|||
|
||||
Гость_Max |
|
|||
Unregistered |
Может кому пригодится…, демонстрирую последнюю версию как достать текст записанный в виде объекта Blob в базе mySQL (Текст больше 250 символов):
/********************************************/ String g7; BufferedReader in = new BufferedReader(new InputStreamReader(rs.getBinaryStream("Column_name"))); String line; StringBuffer ttt = new StringBuffer(); try{ while((line = in.readLine()) !=null){ttt.append(line);} g7 = ttt.toString(); }catch(IOException ioe){} finally{in.close();} /*******************************************/ Хорошая ссылка по этому вопросу: http://www.asmodeus.com.ua/library/java/JD...sultset.doc.htm Теперь где можно наступить на грабли ![]() С помощью ResultSet возможно получать очень большие данные типа LONGVARBINARY или LONGVARCHAR. Методы getBytes и getString возвращают эти данные в виде одного большого куска (вплоть до пределов, которые можно узнать с помощью метода Statement.getMaxFieldSize). Тем не менее, может оказаться удобнее считывать очень большие данные небольшими кусками. Это делается с помощью потоков (java.io.InputStream), которые возвращаются некоторыми методами ResultSet. Обратите внимание на то, что к этим потокам надо обращаться сразу, так как они будут закрыты при следующем вызове getXXX объекта ResultSet. (Такое поведение диктуется низкоуровневой реализацией доступа к большим двоичным объектам) Спасибо всем за участие. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |