Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.96
CyberRun
31 / 31 / 12
Регистрация: 14.12.2013
Сообщений: 150
#1

SQLite синхронизация с MySQL - Программирование Android

05.04.2014, 23:06. Просмотров 3528. Ответов 5
Метки нет (Все метки)

Здравствуйте!
Подскажите пожалуйста если кто то сталкивался как синхронизировать базу данных SQLite на андроиде и MySQL на сервере.

Добавлено через 4 часа 20 минут
Точней чтобы все данные из MySQL скопировались в SQLite
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2014, 23:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос SQLite синхронизация с MySQL (Программирование Android):

Копирование файла с Android на PC, или синхронизация SQLite - Программирование Android
Здравствуйте!!! У меня на телефоне есть база данных (путь до базы /data/data/имя приложения/databases/baza.db). Когда тестировал на...

"Синхронизация" баз SQLite двух устройств - Программирование Android
Добрый вечер, у меня такой вопрос к знатокам: возможно ли реализовать "синхронизацию" между двумя устройствами, имеющих отличные друг от...

SQLite или MySQL на удаленном сервере - Программирование Android
Какой вариант следует предпочесть когда если в бд надо хранить курсы валют или ценных бумаг скажем за последние 10 лет тоесть 3650...

Как сделать синхронизацию между базами SQlite и MySql? - Программирование Android
Здравствуйте! У кого нибудь есть примеры или опыт на эту тему? Знаю что через JSON можно передать данные но на эту идет время каждый раз...

Синхронизация задач - Программирование Android
есть 2 независимые задачи. Обе должны получать доступ к модулю wifi. Каждая из задач при завершении выключает модуль, что может прервать...

SQLite - Программирование Android
Приложение вылетает с ошибкой, не подскажете, в чём проблема? public class DatabaseHelper extends SQLiteOpenHelper { private...

5
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
06.04.2014, 00:02 #2
Цитата Сообщение от CyberRun Посмотреть сообщение
данные из MySQL скопировались в SQLite
Я бы большую часть этого (если не все) предпочел бы сделать на php (на стороне сервера). Теоретически можно сделать это одним скриптом.
Но...
Вариантов несколько:
№1 (универсально)
1) Вы должны выгрузить базу MySQL в текстовик(или несколько по каждой таблице)
2) В андроиде текстовик загнать в SQLite.
№2 (тяжело)
1) Научиться подключаться из андроида к MySQL
2) залить полученое по протоколу MySQL в SQLite.
№3 (одноразово, но не уверен)
1) Поискать готовую прогу под Win для экспорта-импорта (где-то видел, но не пользовался).
2) а базу просто перетащить на анродид
№4 (одноразово)
1) Все проделать в PHP на стороне сервера (там есть и MySQL и SQLite)
2) а базу просто перетащить на анродид

... обычно это задачка не для новичка
... синхронизация - это НАМНОГО более сложный процесс (включающий сравнение, игнорирование старых, выявление новых, удаление устаревших...) - не путайте термины!
1
CyberRun
31 / 31 / 12
Регистрация: 14.12.2013
Сообщений: 150
06.04.2014, 00:25  [ТС] #3
нашел вот такой пример ТЫК
Вроде то что надо но действительно сложновато.
Мне нужно просто базу из MySQL импортировать в SQLite(при каждом запуске приложения и наличия доступа к ней то есть интернета(если доступа нету то использовать SQLite. Вот для этого и нужно ее импортировать)) на андроиде и старую версию удалять
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
06.04.2014, 09:55 #4
CyberRun, Вам действительно лучше использовать какой-нибудь middleware типа php/nodejs/c#/java итд.

Android Http Client -> HttpGetRequest -> WebServer -> Backend Controller -> SELECT MYSQL -> упаковка в JSON -> Android HttpClient -> распаковка JSON -> INSERT SQLITE
1
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
06.04.2014, 14:00 #5
Цитата Сообщение от YuraAAA Посмотреть сообщение
упаковка в JSON
О! хорошую тему подняли!
Можете вкратце сравнить (по Вашему опыту) что лучше? JSON? XML? TXT/CSV? Другое?
Я пока разобрался только с CSV - написал свой парсер строк вида "привет";"мир; ООО ""Мир""!";"и Ко".
Написал и на php и на java. Потом зипую перед пересылкой. Конечно же в зипе куча файлов по количеству таблиц.
но... что лучше? Имеет ли смысл переводить проект на JSON или XML? Даст ли прирост скорости? Уменьшение размера? Как работает с большими файлами в памяти (5мб)? Тяжело ли прикрутить ползунок-индикатор состояния?
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
06.04.2014, 14:56 #6
Tester64, по своему опыту советую JSON. Со стороны андроида с ним просто работать, например:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
String jsonFromServer = "{
"result":{
"title":"example",
"SubArray":[ 1, 2, 3 ]
    }
}"
 
//Parse
JSONObject jsonObject = new JSONObject(jsonFromServer);
JSONObject resultJson = jsonObject.getJSONObject("result");
String title = resultJson.getString("title");
JSONArray subArray = resultJson.getJSONArray("SubArray");
for (int i = 0; i < subArray.length; i++) {
Log.d("JSON " + i, "" + subArray.getInt(i));
}
P.S. писал без IDE, мог где-то ошибиться

Отлично передаётся текстовая информация. Для передачи файлов конечно нужно подключаться к Stream и стягивать данные из HttpEntity из HttpResponse.

Цитата Сообщение от Tester64 Посмотреть сообщение
ползунок-индикатор состояния
Текущей загрузки всм? Нет, очень просто.
1. Мы знаем Content Length
2. Мы знаем сколько уже байт сохранили (Current).
% = (Current / Content Length) * 100


Вот пример со StackOverflow:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
@Override
    protected String doInBackground(String... sUrl) {
        InputStream input = null;
        OutputStream output = null;
        HttpURLConnection connection = null;
        try {
            URL url = new URL(sUrl[0]);
            connection = (HttpURLConnection) url.openConnection();
            connection.connect();
 
            // expect HTTP 200 OK, so we don't mistakenly save error report
            // instead of the file
            if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) {
                return "Server returned HTTP " + connection.getResponseCode()
                        + " " + connection.getResponseMessage();
            }
 
            // this will be useful to display download percentage
            // might be -1: server did not report the length
            int fileLength = connection.getContentLength();
 
            // download the file
            input = connection.getInputStream();
            output = new FileOutputStream("/sdcard/file_name.extension");
 
            byte data[] = new byte[4096];
            long total = 0;
            int count;
            while ((count = input.read(data)) != -1) {
                // allow canceling with back button
                if (isCancelled()) {
                    input.close();
                    return null;
                }
                total += count;
                // publishing the progress....
                if (fileLength > 0) // only if total length is known
                    publishProgress((int) (total * 100 / fileLength));
                output.write(data, 0, count);
            }
        } catch (Exception e) {
            return e.toString();
        } finally {
            try {
                if (output != null)
                    output.close();
                if (input != null)
                    input.close();
            } catch (IOException ignored) {
            }
 
            if (connection != null)
                connection.disconnect();
        }
        return null;
    }
1
06.04.2014, 14:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2014, 14:56
Привет! Вот еще темы с ответами:

SQLite - Программирование Android
Мне не подскажите где можно взять хорошие примеры по SQlite.

SQLite - Программирование Android
почему id = 0 ??? public void onClick(View view) { dataBase = new DataBase(context); sqLiteDatabase =...

SQLite - Программирование Android
Возвращаясь к старой теме, вернусь к проблеме. По рекомендации попробовал сделать от сюда Тут отправляем данные для записи в бд obj...

SQLite - Программирование Android
Создаю простенькую таблицу. db.execSQL(&quot;create table &quot; + DATABASE_TABLE_NAME + &quot; (&quot; + ID_COLUMN + &quot; integer primary key...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru