Как сохранить массив в базу данных SQLite?

185
13 марта 2018, 02:22

Подскажите пожалуйста, как реализовать хранение массива в базе данных? Долго гуглил, но толком ничего не понял. Если можно, то объясните подробно. Заранее спасибо.

Answer 1

Допустим есть массив int[] array, который вы хотите положить в БД. Допустим, что порядок следования элементов важен. Тогда создаем табличку:

CREATE TABLE myTable (
    _id             integer primary key autoincrement,
    myColumn        integer not null,
    orderColumn     integer
);

Далее складываем туда:

SQLiteDatabase db = this.getWritableDatabase();
for(int i=0; i < myArray.length; i++) {
    ContentValues values = new ContentValues();
    values.put("myColumn", myArray[i]);
    values.put("orderColumn", i);
    db.insert("myTable", null, values);
}

Для извлечения массива, применяем запрос:

Cursor cursor = db.query("myTable", new String[]{"myColumn", "orderColumn"},
            null, null, null, null, "orderColumn asc");
int myArray = new int[cursor.getCount()]; //аллоцируем по количеству записей
if(cursor.moveToFirst()) {
    int i = 0;
    do {
        myArray[i++] = cursor.getInt(0);
    } while(cursor.moveToNext());
}
cursor.close();
READ ALSO
Нужна ли реализация интерфейса Money?

Нужна ли реализация интерфейса Money?

Есть следующие интерфейсы, необходимо написать метод Money calculateTotalPrice(Collection shipments), возвращающий сумму стоимости всех товаров (price*amount) с использованием...

126
submit и invoke в ForkJoinPool

submit и invoke в ForkJoinPool

Подскажите наиболее просто и с примерами если можно разницу между submit и invoke в ForkJoinPool и когда их лучше всего использоватьШот гугл не помогает...

128
Drag &amp; Drop Selenium WebDriver + java

Drag & Drop Selenium WebDriver + java

Пробовал следующее:

124
Ошибка при скачивании в sardine java

Ошибка при скачивании в sardine java

Получаю ошибку при скачивании файлов с некоторыми расширениямиЕсли скачиваю файл с расширением txt, xlsx или zip - ошибок нету

149