一、前言
  数据库作为一种数据载体被我们频繁地使用。一般情况下我们会在程序的入口方法处完成数据库的创建。下面通过实例简单介绍两种创建数据库的方法。
  二、需求
  在documents目录下创建一个test.sqlite数据库,里面包含表User。User表含username和password两个varchar类型的字段。
  方法一:使用SQLiteManager创建数据库和表,并将创建好的数据库文件拖入项目中,后调用以下代码将数据库复制到documents目录;

 

/**
*  将数据库文件复制进沙盒
*/
-(void)createEditableCopyOfDatabaseIfNeeded
{
// 先判断 sandbox 下面的 documents 子文件夹里面有没有数据库文件 test.sqlite
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"test.sqlite"];
BOOL ifFind = [fileManager fileExistsAtPath:writableDBPath];
if (ifFind)
{
// NSLog(@"数据库已存在");
return;
}
else{
NSLog(@"数据库不存在,需要复制");
}
// 如果不存在数据库文件,则复制数据库文件
NSString *defaultDBPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"sqlite"];
BOOL ifSuccess = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
if (!ifSuccess) {
NSLog(@"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}else {
NSLog(@"createEditableCopyOfDatabaseIfNeeded 初始化成功");
}
return;
}