正如我们 Android 开发人员所知,SQLiteDatabase execSQL
方法只能执行一条语句。
文档说:
Execute a single SQL statement that is not a query. For example,
CREATE TABLE
,DELETE
,INSERT
, etc. Multiple statements separated by;
s are not supported.
我必须加载一批记录,1000 条并且还在增加。
我如何有效地插入这些?
使用您的 apk 交付这些 SQL 的最简单方法是什么?
我提到,已经有一个系统数据库,我将在 onUpdate
事件上运行它。
到目前为止我有这段代码:
List<String[]> li = new ArrayList<String[]>();
li.add(new String[] {
"-1", "Stop", "0"
});
li.add(new String[] {
"0", "Start", "0"
});
/* the rest of the assign */
try {
for (String[] elem : li) {
getDb().execSQL(
"INSERT INTO " + TABLENAME + " (" + _ID + "," + NAME + "," + PARSE_ORDER
+ ") VALUES (?,?,?)", elem);
}
} catch (Exception e) {
e.printStackTrace();
}
最佳答案
How do I insert these efficiently?
使用交易:
db.beginTransaction();
try {
for(;;) {
db.execSQL(...);
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
关于android - Android 上高效的批量 SQL 查询执行,用于升级数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2876236/