将现有SQLite数据库导入iOS Phonegap应用程序
我有一个名为data_items.SQLite的现有SQLite数据库。这个数据库包括大约10个表和一些初始数据,我想将它们导入XCode,以使用Phonegap插件以这种方式打开数据库:将现有SQLite数据库导入iOS Phonegap应用程序,sqlite,cordova,Sqlite,Cordova,我有一个名为data_items.SQLite的现有SQLite数据库。这个数据库包括大约10个表和一些初始数据,我想将它们导入XCode,以使用Phonegap插件以这种方式打开数据库: function onDeviceReady() { var db = window.sqlitePlugin.openDatabase("data_items.sqlite", "1.0", "PhoneGap Demo", 200000); ... } 如何导入数据文件?我必须在哪里复制
function onDeviceReady() {
var db = window.sqlitePlugin.openDatabase("data_items.sqlite", "1.0", "PhoneGap Demo", 200000);
...
}
如何导入数据文件?我必须在哪里复制文件?似乎无法从PhoneGap访问资产文件夹,因此您必须编写本机插件来复制数据库文件:
首先将数据库创建为u used name data\u items.sqlite并删除.sqlite扩展名。然后在xCode的Resources目录下拖动这个db,然后执行下一步 “选择用于添加文件的选项”框将出现 选中复选框“将项目复制到目标组的文件夹(如果需要)”并完成 您将看到数据库文件作为资源目录的子列表 对不起,我没有足够的声誉在这里发布图片 现在按照链接将此数据库文件复制到位置 我在AppDelegate.m中最后一行@end之前使用了以下代码
- (void) copyDatabaseIfNeeded{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
_dbPath = [self getDBPath];
BOOL success = [fileManager fileExistsAtPath:_dbPath];
if(!success){
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"data_items"];
success = [fileManager copyItemAtPath:defaultDBPath toPath:_dbPath error:&error];
if (!success)
NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}}
/********* Database Path *********/
- (NSString *) getDBPath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingPathComponent:@"data_items"];
}
并复制该行
[self copyDatabaseIfNeeded];
在代码之后
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
CGRect screenBounds = [[UIScreen mainScreen] bounds];
就这样。使用你的代码
function onDeviceReady() {
var db = window.sqlitePlugin.openDatabase("data_items", "1.0", "data_items", 200000);
...
}
也可以从复制的位置直接在中编辑数据库。使用以下链接