
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
13.01.2005, 07:09
|
|||
|---|---|---|---|
Как сделать отображение ResultSet --> ArrayList |
|||
|
#18+
Хочется, 1.чтобы из каждой строки выборки получился объект. 2. объект добавился в ArrayList Вопрос: почему не канает такой код? public static ArrayList returnAccountListOfDb(int orderId){ ArrayList list = new ArrayList(); String stmt="SELECT DISTINCT * FROM table; Account account=new Account(); ResultSet res=DBhelper.getRs(stmt); try{ while (res.next()) { account.setAccountNum(res.getInt("ad.id")); list.add(account); } }catch(Exception e){e.printStackTrace();} return list; } Может кто сталкивался с сей удивительной весчью... Оказывается что в list в итоге для всех индексов i list.get(i) это есть последняя строчка резалтсета. При дебаге тоже ничего не ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.01.2005, 07:49
|
|||
|---|---|---|---|
Как сделать отображение ResultSet --> ArrayList |
|||
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.01.2005, 08:26
|
|||
|---|---|---|---|
Как сделать отображение ResultSet --> ArrayList |
|||
|
#18+
Спасибо. Ушел читать умные книжки... пока не понял почему так. Может кто нибудь объяснит? Буду очень признателен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.01.2005, 08:42
|
|||
|---|---|---|---|
|
|||
Как сделать отображение ResultSet --> ArrayList |
|||
|
#18+
В коде Account account=new Account(); ResultSet res=DBhelper.getRs(stmt); try{ while (res.next()) { account.setAccountNum(res.getInt("ad.id")); account создаеться только 1 раз и ты все перетираеш его значения. А нужно создовать по одному экземпляру на каждую строку. while (res.next()) { Account account=new Account(); account.setAccountNum(res.getInt("ad.id")); list.add(account); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.01.2005, 09:07
|
|||
|---|---|---|---|
|
|||
Как сделать отображение ResultSet --> ArrayList |
|||
|
#18+
>> пока не понял почему так. Это потому, что list.add(account) добавляет в список не копию account, а указатель на account. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.01.2005, 09:22
|
|||
|---|---|---|---|
|
|||
Как сделать отображение ResultSet --> ArrayList |
|||
|
#18+
www.fun4me.narod.ru>> пока не понял почему так. Это потому, что list.add(account) добавляет в список не копию account, а указатель на account. 2 XA www.fun4me.narod.ru правильно сказал. и во все время выполнения цикла while (rs.next()) {...} объект account у тебя один и тот же (точнее - ссылка на него). происходит так (очень приближенно и грубо). перед циклом ты создаешь экземпляр класса Account , и в переменной account хранится ссылка на него. здесь под ссылкой имеется в виду адрес памяти , например A:000040F0. N-я итерация цикла while: вызывая метод setAccountNum , jvm обращается к нашему адресу, и прописывает целочисленное значение, например, по адресу A:000040F4 (типа со смещением в 4 байта храниться целочисленное значение поля accountNum ; jvm в данном случае знает , что именно по этому смещению хранится значение accountNum ). таким образом, пройдя все итерации цикла, ты по сути сохранял в list всегда один и тот же адрес A:000040F0. рассказал как мог :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.01.2005, 10:54
|
|||
|---|---|---|---|
|
|||
Как сделать отображение ResultSet --> ArrayList |
|||
|
#18+
Спасибо за подробные разъяснения... я и сам думал что где-то здесь собака зарыта.. так это что получается.. ArrayList list=new ArrayList(); Account account= new Account(); account.setId(1); list.add(account); /*-------------- много кода -------------- */ account.setId(2); return list; Так ведь засада получается. Положили одно в лист, а потом такая неожиданность. Хочется надеяться что если мыслить ссылками на объекты- все будет хорошо. Ушел читать умные книжки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.01.2005, 11:32
|
|||
|---|---|---|---|
|
|||
Как сделать отображение ResultSet --> ArrayList |
|||
|
#18+
ХАХочется надеяться что если мыслить ссылками на объекты- все будет хорошо мыслить надо джавой :) thinking by java - книга такая есть кстати :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.01.2005, 12:31
|
|||
|---|---|---|---|
Как сделать отображение ResultSet --> ArrayList |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.01.2005, 12:35
|
|||
|---|---|---|---|
|
|||
Как сделать отображение ResultSet --> ArrayList |
|||
|
#18+
riman читай могу русский вариант подогнать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.01.2005, 13:35
|
|||
|---|---|---|---|
Как сделать отображение ResultSet --> ArrayList |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.01.2005, 14:04
|
|||
|---|---|---|---|
Как сделать отображение ResultSet --> ArrayList |
|||
|
#18+
а что нового в 3ем издании? Можно мне тоже русский вариант увидеть. ... хотя нет:) мне, пожалуй еще второе долго читать..то что на столе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.01.2005, 14:35
|
|||
|---|---|---|---|
|
|||
Как сделать отображение ResultSet --> ArrayList |
|||
|
#18+
Артем1 А.Грасоff™ riman читай могу русский вариант подогнать :) Было бы весьма неплохо. :) http://fpestde.net/java/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.01.2005, 16:23
|
|||
|---|---|---|---|
Как сделать отображение ResultSet --> ArrayList |
|||
|
#18+
А.Грасоff™ Артем1 А.Грасоff™ riman читай могу русский вариант подогнать :) Было бы весьма неплохо. :) http://fpestde.net/java/ Спасибо, но URL конечно устрашающий :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&mobile=1&tid=2153125]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
86ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 405ms |

| 0 / 0 |
