したいよね。
ってゆーか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';