TonyWrong
@TonyWrong

Как правильно вытащить все данные SQlite?

Имеется база с 30 пользователями ПК, в каждой строке около 10 полей. Подскажите как правильно извлекать все данные, для их хранения в строке или массиве. Хочу в дальшейшем записать эту строку в файл, к примеру.

Впринцие могу выгрузить все, но как это сделать и организовать правильно, вот, что интересно. Тоесть для большего удобства работы с этими данными по записи в файл например.

Хотелось бы увидеть реальные примеры кода с подобной задачей или ссылки на такие примеры. Спасибо.
  • Вопрос задан
  • 368 просмотров
Решения вопроса 1
LeEnot
@LeEnot
Енот-андроид
Наиболее удобно будет просто скопировать файл с базой данных на карту памяти смартфона, не находите? Можно конечно заморочиться с библиотеками типа Jackson или GSON, но ЗАЧЕМ, если все равно придется копировать в доступное юзеру место, т.к. "личное пространство" приложения при удалении тоже удаляется?

public void exportDatabse(String databaseName) {
        try {
            File sd = Environment.getExternalStorageDirectory();
            File data = Environment.getDataDirectory();

            if (sd.canWrite()) {
                String currentDBPath = "//data//"+getPackageName()+"//databases//"+databaseName+"";
                String backupDBPath = "backupname.db";
                File currentDB = new File(data, currentDBPath);
                File backupDB = new File(sd, backupDBPath);

                if (currentDB.exists()) {
                    FileChannel src = new FileInputStream(currentDB).getChannel();
                    FileChannel dst = new FileOutputStream(backupDB).getChannel();
                    dst.transferFrom(src, 0, src.size());
                    src.close();
                    dst.close();
                }
            }
        } catch (Exception e) {

        }
    }


Не забыть
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


Использование: exportDatabse("Имя базы данных")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы