如果要在Android中预填充数据库(SQLite),这并非您想象的那么容易。
因此,我找到了本教程,该教程在Stack Overflow上也经常被引用。
但是我真的不喜欢这种预填充数据库的方式,因为您可以从数据库处理程序中获取控件并自己创建文件。我宁愿不要碰文件系统,而让数据库处理程序自己做所有事情。
因此,我认为可以做的就是照常在数据库处理程序的onCreate()中创建数据库,然后从/ assets加载文件(.sql),该文件包含用于填充值的语句:
INSERT INTO testTable (name, pet) VALUES ('Mike', 'Tiger'); INSERT INTO testTable (name, pet) VALUES ('Tom', 'Cat'); ...
但是在处理程序的onCreate()中调用execSQL()并不能真正起作用。似乎/ assets文件的大小不能超过1MB,并且execSQL()仅执行第一条语句(Mike-Tiger)。
您将如何预填充数据库?
我建议以下内容:
INSERT
BEGIN... COMMIT
另外看看sqlite3中的Faster批量插入吗?