Как использовать db.beginTransaction (); db.setTransactionSuccessful (); db.endTransaction (); Импорт файла CSV в таблицу Sqlite - PullRequest
0 голосов
/ 04 февраля 2020

Я действительно запутался в этих транзакциях, может кто-нибудь объяснить, как это на самом деле работает?

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

Когда я пытаюсь использовать эти функции Android Studio всегда просит меня создать метод в моей вспомогательной базе данных.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Когда я пытаюсь использовать эти функции Android Studio всегда просит меня создать метод в моем помощнике по базе данных.

Тогда ваш db тип переменной / поля SQLiteOpenHelper а не SQLiteDatabase. Упомянутые методы транзакций указаны в SQLiteDatabase. Вы можете позвонить getWritableDatabase() на SQLiteOpenHelper, чтобы получить SQLiteDatabase.

0 голосов
/ 04 февраля 2020

Операции с базой данных, которые происходят в транзакции, а также вызов setTransaction () должны выполняться в блоке try, а вызов endTransaction () происходит в блоке finally. Это гарантирует, что транзакция будет завершена, даже если при изменении базы данных возникнет необработанное исключение.

SQLiteDatabase db = getDatabase();
db.beginTransaction();

try {
    // insert/update/delete
    // insert/update/delete
    // insert/update/delete
    db.setTransactionSuccessful();
} finally {
    db.endTransaction();
}
...