正如我們Android開發人員所知,SQLiteDatabaseexecSQL
方法只能執行一條語句。Android上有效的批量SQL查詢執行,用於升級數據庫
的醫生說:
執行一個SQL語句不是查詢。例如,
CREATE TABLE
,DELETE
,INSERT
等。不支持由;
s分隔的多個語句。
我必須加載一批記錄,1000和計數。
如何有效地插入這些?
什麼是最簡單的方式來提供這些SQL與你的apk?
我提到,已經有一個系統數據庫,我將在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();
}
我記錄關於這個問題,所有的解決方案是基於獨家,我們創建一個新的數據庫的事實。但是我需要升級,因此替換現有的數據庫並不好,我必須保留用戶的資料。 – Pentium10 2010-05-20 18:02:30
沒有理由不能使用兩個數據庫 - 一個用戶數據庫和一個靜態信息數據庫。這樣,您可以在升級時完全替換靜態數據庫,同時保持用戶數據不變。 – 2010-05-20 20:07:01