|
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 111
|
|
Сохранение arraylist<class> в памяти устройства22.09.2013, 15:46. Показов 2852. Ответов 20
Метки нет (Все метки)
Добрый день! Подскажите, как привильно сохрянать список с классами? Как я понимаю надо смотреть в сторону SQLite? Допустим класс книга, который имеет имя, описание и номер. Как я понимаю можно создать базу данных в приложении. Но что если класс содержит в себе еще список классов, который так же содежит еще один список. Не получится ли слишком награможденно и скажется ли это на производительности? Заранее спасибо
0
|
|
| 22.09.2013, 15:46 | |
|
Ответы с готовыми решениями:
20
Сохранение содержимого ArrayList'a в файл Сохранение ArrayList в файл и его чтение |
|
|
|
| 22.09.2013, 15:57 | |
|
Можно хранить не список объектов класса, а некий id.
Например, класс книга имеет поля id автора, название, описание и номер. А в базе данных есть таблица с авторами и таблица с книгами, и что бы узнать кто автор достаточно взять поле id автора из объекта Книга и сделать запрос в БД. Тут может помочь готовое решение, например: https://bitbucket.org/qbusict/cupboard Там есть примеры, как раз с автором и книгами.
1
|
|
|
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
|
|
| 23.09.2013, 09:51 | |
|
1. в поле "список библиотек" у объекта "книга" храните json со всеми данными библиотек.
2. создайте таблицу с колонками "id name description number bibles" и напихайте туда столько записей для одной книги, сколько библиотек у нее может быть.
0
|
|
|
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 111
|
||||||
| 23.09.2013, 12:57 [ТС] | ||||||
|
haribo
Не могли бы вы привести пример, по сохранению arrayList<Топик>? И почему json? с ним будет работать быстрее?
0
|
||||||
|
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
|
|
| 23.09.2013, 13:12 | |
|
Таблицы:
Answer: id discription username 1 описание1 user1 2 описание2 user2 3 описание3 user3 4 описание4 user4 Theme: id name link reaction 1 имятемы1 линк1 1 1 имятемы1 линк1 2 1 имятемы1 линк1 3 1 имятемы1 линк1 4 Получается у Темы1 - список реакций (1,2,3,4) Это как вариант, SQL структурированный и правильный, но не самый лучший и быстрый.
1
|
|
|
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 111
|
|
| 23.09.2013, 13:56 [ТС] | |
|
Как будет выглядить весь список тем? Надо под каждую тему создавать отдельный файл или все писать в один? Но если список тем перевалит за 1000 тем. Куда сохранять этот файл?
0
|
|
|
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
|
|
| 23.09.2013, 14:50 | |
|
Какой файл? О чем вы?
0
|
|
|
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 111
|
||||||
| 23.09.2013, 15:54 [ТС] | ||||||
|
С json дела я не имел особо, но пару раз попадался мне на глаза.
0
|
||||||
|
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
|
|
| 23.09.2013, 15:56 | |
|
Вы можете пойти сложным путем записывая json в поле типа text в SQLite БД.
0
|
|
|
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 111
|
|
| 23.09.2013, 16:00 [ТС] | |
|
никак не могу уловить вашу мысль...Что мне делать тогда? Можете написать поэтапно, если не затруднит.
0
|
|
|
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
|
||||||||||||||||
| 23.09.2013, 16:21 | ||||||||||||||||
|
Уговорили, даю пример :-)
Не надо json. У одного топика может быть много тем. В java это так:
1. Создаете в БД SQLite две таблицы, Theme и Topic.
3. Таблица Theme : id - уникальный, автогенерируемый идентификатор темы, name - имя темы, topicid - ссылка на id в таблицу Topic. Таким образом таблицы будут иметь следующий вид:
1
|
||||||||||||||||
|
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 111
|
|
| 23.09.2013, 16:31 [ТС] | |
|
Спасибо!
Теперь понятно, вы имеете ввиду использование SQLite. Еще вопрос, по базам. Если у меня есть уже существующая тема, и я хочу добавить сразу 10 топиков, какой метод мне использовать? Занать в цикл метод db.insert? или есть другие решения? Как можно узнать id добавленной записи? допустим если сразу создать топик и тему, то в тему нужно передать id топика
0
|
|
|
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
|
||||||
| 23.09.2013, 16:51 | ||||||
|
1. да в цикле
2.
1
|
||||||
|
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 111
|
|
| 23.09.2013, 17:03 [ТС] | |
|
Удобно!
И последний вопрос. Объявляю в таблице name unique. Если в таблицу пытаются внести 2 одиноковых имя, произойдет exaption, как я понимаю. Как правильно отловить, была запись в таблицу или нет? Пока знаю только такой способ, но не уверен, правильный ли он: try { db.insert(...); return true; } catch { return false; }
0
|
|
|
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
|
|
| 23.09.2013, 18:36 | |
|
правильный
0
|
|
|
|
||
| 23.09.2013, 19:34 | ||
|
0
|
||
|
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
|
|
| 23.09.2013, 20:52 | |
|
0
|
|
|
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
|
|
| 23.09.2013, 23:02 | |
|
0
|
|
|
|
|
| 23.09.2013, 23:14 | |
|
0
|
|
| 23.09.2013, 23:14 | |
|
Помогаю со студенческими работами здесь
20
Сохранение и загрузка ArrayList с помощью FileDialog
Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int')
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|