Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создать копию объекта? 
:(
    Опции темы
marlborist
Дата 19.10.2007, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



проблема в следующем. 
Есть некая функция 
public ResultSet fun(){
    ResultSet rs = statement.executeQuery(sql);
    ResultSet rs2 = rs;
    rs.close();
    return rs2;
}
После вызова данной функции java выдаст ошибку мол ресалт сет зокрыт, потому что объек rs2  ссылается на объект созданный rs (так называемая дублирующая сылка )
Как мне создать копию объекта rs и передать ее в rs2? Метод clone() не доступен.

PM MAIL   Вверх
AntonSaburov
Дата 19.10.2007, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Ну вообщем-то обычно данные из ResultSet для каждой строки оформляются как объект какого-то типа и все они помещаются в коллекцию - ArrayList, Vector и т.д.

Например если в строке из базы два поля, то создается класс из двух полей и на кажду строку резалтсета надо сделать
Код

List result = new ArrayList();

while(rs.next()) {
    MyClass m = new MyClass();
    m.setField1(rs.getString("Field1");
    m.setField1(rs.getString("Field1");
    result.add(m);
}


Это конечно же не реальный код, а эскиз к коду, идея.

Можно посмотреть в сторону Hibernate
PM MAIL WWW ICQ   Вверх
marlborist
Дата 19.10.2007, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Ну вобщем -то да это выход. Если ни кто мне больше ни чего не посоветует, я так и сделаю

PM MAIL   Вверх
VSergeyV
Дата 19.10.2007, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 9.5.2006
Где: Новосибирск

Репутация: нет
Всего: 3



Цитата(AntonSaburov @  19.10.2007,  13:30 Найти цитируемый пост)
Можно посмотреть в сторону Hibernate 

или что полегче, например Apache DdlUtils http://db.apache.org/ddlutils
PM MAIL ICQ   Вверх
marlborist
Дата 19.10.2007, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Цитата

Цитата

Можно посмотреть в сторону Hibernate 

или что полегче, например Apache DdlUtils http://db.apache.org/ddlutils

Нет не конает. 
Я уже написал большую часть проекта используя хранимые процедуры, так что менять что - то позно
PM MAIL   Вверх
jer1
Дата 19.10.2007, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 24.1.2005
Где: Харьков Украина

Репутация: 4
Всего: 5



ResultSet не хранит в себе данные, он лишь обеспечивает их чтение унифицированным способом (вот об этом и COVD говорит из соседней ветки http://forum.vingrad.ru/index.php?showtopi...&p=1292377)
Параллельный код для наглядности :
Код

    FileInputStream fun2() throws IOException {
         FileInputStream fis = ...; // открываем ресурс
         FileInputStream fis2 = fis; // создаем алиас (еще одна ссылка на ресурс)
         fis.close();  // закрываем ресурс (освобождаем занятые системные ресурсы)  - ресурс больше недоступен 
         return fis2;   // бесполезно - работать не будет
    }

--------------------
:w!q
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0652 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.