大家好,又见面了,我是全栈君。
二、需求
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; } |
方法二:利用开源的FMDB库代码创建数据库;
/** * 代码创建数据库 */ – (void)createDatabaseIfNeeded { // 数据库路径 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *doc = [paths objectAtIndex:0]; NSString *path = [doc stringByAppendingPathComponent:@”test.sqlite”]; NSFileManager * fileManager = [NSFileManager defaultManager]; if ([fileManager fileExistsAtPath:path] == NO) { // create it FMDatabase * db = [FMDatabase databaseWithPath:path]; if ([db open]) { // 建立User表 NSMutableString *sql = [NSMutableString stringWithFormat:@”%@”,@”CREATE TABLE User”]; [sql appendString:@”(“]; [sql appendString:@”username varchar,”]; [sql appendString:@”password varchar”]; [sql appendString:@”)”]; BOOL res = [db executeUpdate:sql]; if (!res) { debugLog(@”error when creating table User”); } else { debugLog(@”succ to creating table User”); } [db close]; } else { debugLog(@”error when open db”); } } } |
三、总结
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/108356.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...