![]() |
|
Модераторы: javastic, AntonSaburov |
![]()
|
|
| Vitaly83 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 25.9.2007 Репутация: нет Всего: нет |
Есть небольшая (но большая для J2ME) база данных. Она в 3 таблицах. Маленькая (9 записей), Средняя (до 250 записей) и Большая (около 13000 записей). Каждая таблица имеет id, текстовое описание (до 64 символов) и ссылку (1-много) на нижестоящую таблицу (кроме последней).
Для J2ME я привёл её к массиву следующего вида:
Заполнена 1/8 часть данных, а мне уже выдаётся сообщение о том, что код слишком длинный (code too large). Почему без RMS? 1. Это просто список, выбранные пункты которого и сохраняются в RMS. 2. Медленно. 3. Это не перезаписываемые данные. Вбил один раз и всё. 4. Незачем забивать память телефона мусором (хотя и так получиться немало), но в указанном случае доступ к данным будет быстрее и проще. Почему не через Net затягивать? 1. Программа должна быть максимально автономной. 2. Должна затягивать строго определённый набор данных (не более 3 КБ за операцию - опять же вопрос в скорости). Интерфейс простой, без графики, кроме нескольких маленьких рисунков, зашитых в программу. Я не хочу использовать сторонние библиотеки. Нужен минимально-возможный размер программы. В топиках о БД, многие решения завязаны на RMS, но, в данным случае, оно здесь не нужно. |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Если не нужно изменений (или изменений мало) - храни в файлах ресурсов внутри jar. Если есть изменения - храни в rms и/или сохраняй в сети.
|
|||
|
||||
| Samuil |
|
|||
![]() в(Job)ываю ![]() ![]() Профиль Группа: Участник Сообщений: 705 Регистрация: 26.4.2006 Где: Uzbekistan.Tashke nt Репутация: 5 Всего: 6 |
Самый лучший вариант - хранить в сети. и скорость и размер будут соблюдаться. Вариант с хранением файлов тоже хорошь. НО! дохреновый размер будет у твоего джарика... А это критично для тебя.
Добавлено через 1 минуту и 8 секунд Да и с массивами лучше не работать с таким количеством данных... В таком случае юзай вектор. она более гибкий. |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Размер jar будет около 1-2 Mb. Я делал программу-словарь примерно такого размера.
Можно ещё хранить данные в jad и получать по getAppProperty() или во внешнем файле, тогда мидлет нужно подписывать или он будет каждый раз спрашивать разрешения на доступ. Когда данные статические - Vector по сравнению с массивом ничего нового не даёт - только тратит больше памяти. Но инициализировать большой Vector или массив прямо в коде слишком накладно. |
|||
|
||||
| Vitaly83 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 25.9.2007 Репутация: нет Всего: нет |
Как я понимаю, это обычные файлы, только вшитые в программу или специальный формат? Через что получить к ним доступ? Я нашёл пример, но он использует внешние файлы, а, следовательно, будет запрашивать доступ каждый раз пр запуске. FileConnection fc = (FileConnection) Connector.open("file:///c:/text.txt",Connector.READ); Мне нужно, чтобы пользователей не раздражали подобные вопросы.
|
||||
|
|||||
| W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
просто поместите файл в папку res, из нее ресурсы все, которые в ней, добавляются в корень джарика.
потом
ну а дальше вычитываем все, что нам, а точнее Вам надо =) -------------------- iOS developer |
|||
|
||||
| math64 |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Помотри на байт-код который генерится при инициализации массива, он примерно такой:
Соотвенственно, когда инициализируешь большой массив, полученный байт-код будет слишком большой. Можно читать примерно так:
Файл /table1.dat создаётся в DataOutputStream в обычной java, но можно использовать и обычный текстовый файл. Данные третей таблицы лучше разбить на несколько файлов примерно по 100 - 256 записей. Это сообщение отредактировал(а) math64 - 17.7.2009, 07:57 |
||||
|
|||||
| Vitaly83 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 25.9.2007 Репутация: нет Всего: нет |
Спасибо Вам всем!!!
То, что нужно. Я решил выгружать данные в формате csv, а дальше, как говорится, "дело техники". Скорее всего , большую таблицу (да, возможно, и среднюю тоже) разобью на несколько файлов - так чтение будет быстрее, да и памяти будет сжирать мало. Это сообщение отредактировал(а) Vitaly83 - 17.7.2009, 23:21 |
|||
|
||||
![]()
|
FAQ раздела лежит здесь! |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |