Заполнить Базу данных Android Из файла CSV?

Действительно ли возможно взять файл CSV, сохраненный в res/raw каталоге ресурса и использовать его для заполнения таблицы в sqlite3 базе данных?

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

Я нашел, что существует команда импорта sqlite, которая позволяет это: Как импортировать, загружают .sql или .csv файл в SQLite?

... но я испытываю затруднения при применении тех операторов в моем приложении Android. Моя первая мысль состояла в том, чтобы попробовать что-то как следующее... ни кроме какой удачи:

db.execSQL("CREATE TABLE " + TABLE_NAME + "(id INTEGER PRIMARY KEY, name TEXT)");
db.execSQL(".mode csv");
db.execSQL(".import res/raw/MyFile.csv " + TABLE_NAME); 

Действительно ли это возможно?

Я должен пробовать другой подход для заполнения моей базы данных?

ОБНОВЛЕНИЕ: я отмечаю ответ Josef как ответ (объемная вставка с помощью транзакций), потому что это хорошо работает и непосредственно отвечает на мой вопрос на основе моего заголовка (благодарит Josef). Однако я, все еще ищу способ сделать объемную вставку в приложении для Android из файла CSV в sqlite3 таблицу с помощью оператора импорта. Если Вы знаете, как сделать это, ответьте.

Спасибо за Вас ответы!

29
задан Community 23 May 2017 в 12:34
поделиться

1 ответ

Если вы хотите упаковать статические данные в свое приложение, я рекомендую подготовить базу данных во время разработки (с помощью любого понравившегося пользовательского интерфейса или команды csv-import) и отправить файл sqlite в папку с ресурсами. . Затем вы можете просто скопировать весь файл sqlite на устройство при первом запуске приложения. Эти сообщения познакомят вас с этой идеей, которая, скорее всего, является самым быстрым способом настройки базы данных (скорость копирования файлов).

Если по какой-то причине вам действительно нужно вставить большой объем данных во время выполнения, я рекомендую вам изучить способы массовой вставки с использованием транзакций , чтобы ускорить ее.

31
ответ дан 28 November 2019 в 01:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: