LoginSignup
0

More than 5 years have passed since last update.

【Tips】SQLiteでbulk insert〜Androidバージョン

Posted at

したいよね。
ってゆーかbulk insert必要ないならsqlite使う必要もないんじゃないかと私は思うわけですが。

はい、こうなる。beginTransaction/setTransactionSuccessful/endTransaction使うだけですね。簡単。
setTransactionSuccessfulせずにendTransactionするとロールバックしてくれるらしいよ!

ばるくいんさーと
try {
    db.beginTransaction();

    final ContentValues values1 = new ContentValues();
    values1.put("id", 1);
    values1.put("name", "akippa駐車場1");
    db.insert("parking", null, value1);

    final ContentValues values2 = new ContentValues();
    values2.put("id", 2);
    values2.put("name", "akippa駐車場2");
    db.insert("parking", null, value2);

    final ContentValues values3 = new ContentValues();
    values3.put("id", 3);
    values3.put("name", "akippa駐車場3");
    db.insert("parking", null, value3);

    db.setTransactionSuccessful();
} finally {
    db.endTransaction();
    db.close();
}

ちなみにSQLで書く場合はこうなるらしいよ。
transactionのほうが早いって書いてあったり、SQLのほうが早いって書いてあったり、よくわからんよ。
でもロールバックできるし、デバッグしやすいし、transactionのほうがいいね。

SQLで書く場合
INSERT INTO parking
    SELECT 1, 'akippa駐車場1'
    UNION ALL SELECT 2, 'akippa駐車場2'
    UNION ALL SELECT 3, 'akippa駐車場3';

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0