数据持久化之sqlite
发布时间:2020-12-12 23:59:23 所属栏目:百科 来源:网络整理
导读:从软件的角度来说,程序运行过程中,通常都是把数据存放在变量,数组,字典等,也就是程序运行时候开辟的一块内存空间,但是随着程序的关闭,这块内存空间也跟着消失,数据也随即丢失。因此,我们需要把数据保存起来。这样就有了数据存储的动因。 从硬件的角
从软件的角度来说,程序运行过程中,通常都是把数据存放在变量,数组,字典等,也就是程序运行时候开辟的一块内存空间,但是随着程序的关闭,这块内存空间也跟着消失,数据也随即丢失。因此,我们需要把数据保存起来。这样就有了数据存储的动因。 从硬件的角度来讲,随着电路的断开,内存(RAM)上的数据也随即消失,只有硬盘上的数据能保存,因此,需要数据持久化。同时,内存空间往往也比硬盘空间小的多。 数据持久化,就是把数据保存起来,以便下次打开应用程序,还能获取这些数据,也称为数据存储等。 数据库和编程语言,可以看成是两个对象,编程语言通过一些手段(类库,插件等),连接数据库,操作数据库。 OC中使用sqlite数据库,首先需要连接数据库。 +(sqlite3 *)openDB:(NSString *)dbname postFix:(NSString *)postFix { if (dbPoint) { return dbPoint; } else { NSString * docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)objectAtIndex:0]; NSString * sqlFilePath = [docPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@",dbname,postFix]]; NSString * orignFilePath = [[NSBundle mainBundle]pathForResource:dbname ofType:postFix]; NSLog(@"目标路径:%@,原始路径:%@",sqlFilePath,orignFilePath); NSFileManager * fm = [NSFileManager defaultManager]; if ([fm fileExistsAtPath:sqlFilePath] == NO) { NSError * error = nil; if ([fm copyItemAtPath:orignFilePath toPath:sqlFilePath error:&error]==NO) { NSLog(@"open dataBase error:%@",[error localizedDescription]); return nil; } } NSLog(@"open DB at path:%@",sqlFilePath); sqlite3_open([sqlFilePath UTF8String],&dbPoint); return dbPoint; } } 最后使用完成需要关闭数据库。 +(void) closeDB { if(dbPoint) { sqlite3_close(dbPoint); } } 这里是两个类方法,直接头文件我就不贴出来了。 一般都把连接数据库封装成一个类,直接调用就可以了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容