正如我们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