2015-04-26 1 views
1

У меня есть удаленная база данных SQL (т. Е. База данных, хранящаяся на сервере). Я разрабатываю приложение для Android, которое регулярно устанавливает соединение для копирования всех таблиц удаленной базы данных (и их содержимого) в локальную базу данных с использованием SQLite.Android - копирование содержимого удаленной базы данных в локальную базу данных с помощью SQLite

Есть ли стандартизованный способ выполнить это действие в Android SDK?

Что я хотя:

Я думал о запросе содержимого с удаленной базой данных в формате JSON, то разборе, что JSON-код в Android, а затем включить его в локальную базу данных с помощью SQLite. Не знаю, насколько это эффективно для больших объемов данных, даже если существует лучший () менее болезненный подход.

ответ

4

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

На самом деле самым простым способом является создание SQLite db один раз в час на сервере и загрузка этих файлов клиентам. Таким образом, вам не нужно выполнять сложный и дорогой анализ JSON и SQLite. Конечно, вы всегда будете немного устаревшими, но если это вызывает беспокойство, вам нужно задать вопрос, является ли местное кэширование хорошей идеей.

+0

Это на самом деле, вероятно, более умно, чем импорт данных в некоторый промежуточный формат. Было бы некоторое отставание от любого решения, не использующего фактическое соединение в реальном времени db в любом случае. – JHH

+0

@Gabe Sechan Удаленная база данных SQL уже построена и теперь сильно заполнена (с десятками таблиц, столбцов и данных). Считаете ли вы, что преобразование SQL в SQLite (чтобы обеспечить «загрузку базы данных с Android») дешевле (с точки зрения количества часов), чем необходимость в использовании парсера JSON и вставки SQLite? Большое спасибо. –

+0

Да. Вы все равно должны сделать это, вы можете написать сценарий на стороне сервера SELECT * из TABLEX, затем переместите курсор и INSERT в SQLite db (помните, что SQLite также существует на рабочих столах, вы можете просто иметь дескрипторы 2 дБ в вашем приложении). Должен быть довольно тривиальный скрипт - создавать все таблицы, перебирать и вставлять. –

1

Хотя теоретически возможно реализовать подключение к удаленной базе данных, я думаю, что ваша собственная идея имеет смысл. Внедрите стандартную успокаивающую веб-службу перед db или исследуйте существующие из коробки решения для такой службы и возвращайте данные с помощью json. Разберите json и сохраните его в локальном sqlite.