FMDB数据存取(out)

思路1:
1,把下载路径设置为主键(因为我这里路径是唯一的)
2,下载之前:
    ->查询表中是否存在该路径
    ->查询对应的文件的大小是否等于后台返回的文件大小
    ->等于则return,不等于不进行操作。
3,在下载完成方法中更新主键对应的数据。
#注意:
    1,把文件下载到指定的路径。
    -2,下载完成的时候存放本地文件的路径即可。
思路2:(注意:要保存本地文件的相对路径,不然更新APP的时候就尴尬了。)
    1,把文件下载到指定的路径。
    2,下载完成的时候存放本地文件的路径即可。
基本语句:
//建表语句
NSString * createStr = [NSString stringWithFormat:@"CREATE TABLE '%@' ('id' TXT PRIMARY KEY, 'fileName' TXT , 'filePath' TXT , 'dataDB' TXT)",tableName];
//插入语句
NSString * insertStr = [NSString stringWithFormat:@"insert into %@ (id, fileName, filePath, dataDB) values(?, ?, ?, ?) ",tableName];
//删除语句
NSString * deleteStr = [NSString stringWithFormat:@"delete from %@ where fileName='%@'",tableName,fileName];//删除指定的authodID
//更新语句
NSString * updateStr=[NSString stringWithFormat:@"update %@ set fileName='%@',filePath='%@',dataDB='%@' where id='%@'",tableName,fileName,filePath,dataDB,filePath];
//查询语句
NSString * selectStr =[NSString stringWithFormat:@"select id from %@ where id='%@'",tableName,filePath];

#扩充:
//查询t_appInfo表中降序排列,前20条数据
select * from t_appInfo desc limit 20;
注意点:
1,图片存储类型:TXT(把图片必须转化为base64格式字符串进行存储,若为BLOB类型,更新数据看着是存上了,但是数据转图片失败。)
2,文件存储类型:BLOB
//UIImage图片转成Base64字符串:
UIImage *originImage = [UIImage imageNamed:@"originImage.png"];
NSData *data = UIImageJPEGRepresentation(originImage, 1.0f);
NSString *encodedImageStr = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];    
//Base64字符串转UIImage图片:
NSData *decodedImageData = [[NSData alloc] initWithBase64EncodedString:encodedImageStr options:NSDataBase64DecodingIgnoreUnknownCharacters];
UIImage *decodedImage = [UIImage imageWithData:decodedImageData];
这里最好是yes(ARC),若有release问题,下载最新fmdb即可解决.
如果想直接播放视频转成的NSData,要先写入本地,得到路径。所以不推荐这种存法。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,791评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,831评论 0 17
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,386评论 30 472
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,732评论 19 139
  • 集群配置 资源下载 远程复制到其余两台虚拟机 以下需要在三台虚拟机上操作: 安装redis到opt目录下 在三台机...
    Harlan1994阅读 1,787评论 0 0