caw*_*caw 13 sql database sqlite android
如果你想在Android中预先填充数据库(SQLite),这并不像人们想象的那么容易.
所以我发现这个教程也经常在Stack Overflow上引用.
但是我不喜欢这种预先填充数据库的方式,因为你从数据库处理程序中获取控件并自己创建文件.我宁愿不触摸文件系统,让数据库处理程序自己完成所有事情.
所以我认为可以做的就是像往常一样在数据库处理程序的onCreate()中创建数据库,然后从/ assets加载一个文件(.sql),其中包含要填充值的语句:
INSERT INTO testTable (name, pet) VALUES ('Mike', 'Tiger');
INSERT INTO testTable (name, pet) VALUES ('Tom', 'Cat');
...
Run Code Online (Sandbox Code Playgroud)
但是在处理程序的onCreate()中调用execSQL()并不能真正起作用.似乎/ assets文件的大小不得超过1MB,而execSQL()只执行第一个语句(Mike-Tiger).
你会做什么做预先填充数据库?
我建议如下:
INSERT
逻辑包装到事务中(BEGIN... COMMIT
或通过beginTransaction() ... endTransaction() API)另外看一下sqlite3中的Faster批量插入?
归档时间: |
|
查看次数: |
18114 次 |
最近记录: |