数据存储方式
来源:互联网 发布:http网络协议 编辑:程序博客网 时间:2024/06/05 19:49
存储数据:
一.文件存储:NSUerDefault,plist文件(不太灵活,一般存储死数据),归档
1.NSUserDefault:用来保存应用程序设置和属性、用户保存的数据。用户再次打开程序或开机后这些数据仍然存在。NSUserDefaults可以存储的数据类型包括:NSData、NSString、NSNumber、NSDate、NSArray、NSDictionary。
缺点:如果要存储其他类型,需要转换为前面的类型,才能用NSUserDefaults存储。(自定义的数据类型需转换成NSdata才行)
2.归档NSKeyedArchiver
采用归档的形式来保存数据,数据对象需要遵守NSCoding协议,对象对应的类必须提供encodeWithCoder:和initWithCoder:方法。
缺点:只能一次性归档保存以及一次性解压。所以只能针对小量数据,对数据操作比较笨拙,如果想改动数据的某一小部分,需要解压或归档整个数据。
二.数据库:coreData,FMDataBase第三方库
数据库使用步骤:创建数据库对象———》打开数据库————》创建表格Create————》处理数据(增,删,查,改)————》关闭数据库
关于数据库操作推荐大家关注博客:http://blog.csdn.net/xyz_lmn/article/details/9312837
FMDataBase数据库的依赖库:【工程中必须导入如下文件,并使用 libsqlite3.dylib依赖包】
FMDataBase第三方数据库的处理语句:
创建数据库:
FMDatabase *db = [FMDatabase databaseWithPath:path];
打开数据库:
[db open] ;
创建表格:NSString *sqlCreateTable = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ('%@' INTEGER PRIMARY KEY AUTOINCREMENT, '%@' TEXT, '%@' INTEGER, '%@' TEXT)",TABLENAME,ID,NAME,AGE,ADDRESS];
增:
NSString *insertSql1= [NSString stringWithFormat: @"INSERT INTO '%@' ('%@', '%@', '%@') VALUES ('%@', '%@', '%@')", TABLENAME, NAME, AGE, ADDRESS, @"张三", @"13", @"济南"];
删:
NSString *deleteSql = [NSString stringWithFormat: @"delete from %@ where %@ = '%@'", TABLENAME, NAME, @"张三"];
查:
NSString * sql = [NSString stringWithFormat: @"SELECT * FROM %@",TABLENAME];
改:
NSString *updateSql = [NSString stringWithFormat: @"UPDATE '%@' SET '%@' = '%@' WHERE '%@' = '%@'", TABLENAME, AGE, @"15" ,AGE, @"13"];
关闭数据库:
[db close];
三.读写的方式
Write写入方式:永久保存在磁盘中。
第一步:获得文件即将保存的路径:
第二步:生成在该路径下的文件:
第三步:往文件中写入数据:
最后:从文件中读出数据:
- Android 数据存储方式
- android数据存储方式
- shelve方式存储数据
- Android:数据存储方式
- Java 数据存储方式
- Android数据存储方式
- SharedPreferences数据存储方式
- 存储数据:文件方式
- android数据存储方式
- 数据存储方式
- ArcGIS数据存储方式
- ArcGIS数据存储方式
- Android数据存储方式
- Android 数据存储方式
- ArcGIS 数据存储方式
- Android数据存储方式
- Android 数据存储方式
- 数据存储方式
- 导入Excel方式汇总--第二种
- Markdown如何满足中文阅读习惯,实现首行缩进?
- UVA 548-Tree
- centos7 设置本地光盘yum源
- poj 2151 Check the difficulty of problems(概率dp)
- 数据存储方式
- 手把手教你提高英语能力
- java编程思想 bruce Eckel chapter10 内部类
- 编程之美3.7队列中取最大值操作问题Java版
- 数据库分库分表
- 【Android联系人】仿小米联系人(MIUI8)
- MySQL预处理 mysql_stmt_execute()
- 剑指Offer: 链表中环的入口结点
- 在Nodemcu开发板上运行MicroPython 1.8.2