Android上的高效批量SQL查询执行,用于升级数据库

Pen*_*m10 6 sqlite android upgrade

正如我们的Android开发人员所知,SQLiteDatabase execSQL方法只能执行一个语句.

医生说:

执行不是查询的单个SQL语句.例如CREATE TABLE,DELETE,INSERT等分隔多个语句;s的不支持.

我必须加载一批记录,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();
    }
Run Code Online (Sandbox Code Playgroud)

yan*_*nko 16

如何有效地插入这些?

使用交易:

    db.beginTransaction();
    try {
        for(;;) {
            db.execSQL(...);
            }
        db.setTransactionSuccessful();
    } finally {
        db.endTransaction();
    }
Run Code Online (Sandbox Code Playgroud)