Использование Rest для хранения данных в Sqlite - PullRequest
7 голосов
/ 18 февраля 2012

Я создаю свое первое приложение для Android, которое будет использовать SQlite. У меня нулевой опыт работы с базами данных, за исключением создания базы данных mysql для использования с wordpress ...


Edit: После некоторого исследования об отдыхе, я все еще не понимаю, как остальные, sqlite и android dev сочетаются друг с другом. Моя цель - получить доступ к основанному на отдыхе веб-сервису через URL и получить доступ к определенным наборам данных, а затем сохранить их в моей базе данных SQlite. Затем я хочу получить доступ к содержимому базы данных через мою Java-программу и использовать их соответствующим образом.

Наборы данных можно загружать по отдельности в формате CSV , но поскольку я буду использовать их так много, я не хочу проходить каждую строку отдельно и сохранять их в базе данных. Я надеюсь, что есть более эффективный способ хранить эти наборы данных в базе данных.

Мои основные вопросы:

  • Как я могу скопировать содержимое XML веб-страницы из URL в мою базу данных sqlite? Могу ли я сделать это с помощью моей java-программы, через базу данных sqlite или java-библиотеку?
  • Нужно только один раз скопировать содержимое веб-страниц из URL в базу данных sqlite? Если да, что я могу сделать, если какая-либо информация будет изменена в наборах данных?

Ответы [ 3 ]

5 голосов
/ 27 февраля 2012

Сначала вам нужна схема для вашей базы данных sqllite.Эта схема должна отображаться на объекты позади веб-службы.Например, вам нужна таблица Person в вашей БД, если в сети есть сущность Person.Это зависит от того, что все, что вы хотите захватить.

Когда вы закончите разработку схемы, вы должны начать писать код, который поможет вам создавать и управлять БД на Android.Это делается с помощью класса SQLiteOpenHelper: http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html

Если вам нужно синхронизировать БД с данными в облаке (веб-сервисы), вы должны реализовать синхронизацию.Android обеспечивает очень эффективную структуру синхронизации.

Также посмотрите это видео от инженеров Android, объясняющее лучшие практики: http://www.youtube.com/watch?v=xHXn3Kg2IQE

Обратите внимание, что для фактического получения данных из веб-службы вы должны использовать UrlConnection API: http://developer.android.com/reference/java/net/URLConnection.html

Этот образец, вероятно, отражает большую его часть.http://developer.android.com/resources/samples/SampleSyncAdapter/index.html

3 голосов
/ 19 февраля 2012

С точки зрения чтения файлов CSV здесь есть несколько полезных ресурсов:

Можете ли вы порекомендовать библиотеку Java для чтения (и, возможно, записи) файлов CSV?

Как только вы прочитали каждую CSV-строку в объект, вы можете развернуться и сохранить ее в базе данных.Я автор ORMLite , поэтому я расскажу об его использовании.Я не верю, что есть спящий порт для Android.

Существует целый ряд примеров Android , которые помогут вам освоиться с ORMLite.Также несколько хороших учебников .Если вы хотите написать несколько строк одновременно, я бы рекомендовал использовать функцию пакетных задач ORMLite.Информацию смотрите в обсуждении о создании списков объектов в списке рассылки.

0 голосов
/ 18 февраля 2012

Я могу ответить на ваш первый вопрос о "Я не уверен, как их эффективно добавить"? да, SQlite очень мощный и интеллектуальный, вы можете добавить тысячи записей за одну транзакцию, как в традиционной базе данных. Это значительно повышает производительность.

о втором вопросе, насколько я понимаю, потому что файл CVS очень прост, поэтому вы можете скачать и проанализировать его самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...