iOS--- FMDB


这周因为要金工实习所以没写什么,因为在写收藏时需要用到FMDB,所以先提前学习了一下FMDB。

一、什么是FMDB?

  1. FMDB是iOS平台的SQLite数据库框架。
  2. FMDB以OC的方式封装了SQLite的C语言API。

二、FMDB的优缺点

它与SQLite与Core Data相比较,存在很多优势。
  FMDB是面向对象的,它以OC的方式封装了SQLite的C语言API,使用起来更加的方便,不需要过多的关心数据库操作的知识。
  但是它本身也存在一些问题,比如跨平台,因为它是用oc的语言封装的,所以只能在ios开发的时候使用,如果想实现跨平台的操作,来降低开发的成本和维护的成本,就需要使用比较原始的SQLite。

三、FMDB中重要的类

  • FMDatabase:一个FMDatabase对象就代表一个单独的SQLite数据库,用来执行SQL语句
  • FMResultSet:使用FMDatabase执行查询后的结果集
  • FMDatabaseQueue:用于在多线程中执行多个查询或更新,它是线程安全的

四、FMDB的作用

我理解的就是将想要保存的数据保存在本地中,这样即使关闭app在下一次打开时就可以在本地中获取。

五、使用方法

1.要先导入FMDN库,和之前导入masonry库是一样的操作这里就不多做赘述了。

2.添加头文件

1.获得数据库文件的路径

    NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    NSLog(@"%@", doc);
    NSString *fileName = [doc stringByAppendingPathComponent:@"collectionData.sqlite"];   

[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]

directory 要搜索的目录的名称
domainMask 搜索范围
expandTilde 是否扩展路径,YES->获取完整路径,一般为YES
return 返回值为数组,一般得到的是唯一的路径。

iPhone会为每一个应用程序生成一个私有目录,这个目录位于:
/Users/sundfsun2009/Library/Application Support/iPhone Simulator/User/Applications下,
并随即生成一个数字字母串作为目录名,在每一次应用程序启动时,这个字母数字串都是不同于上一次。
所以通常使用Documents目录进行数据持久化的保存,而这个Documents目录可以通过:
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserdomainMask,YES) 得到。

简单理解,这个方法就是获取固定路径的。因为返回值为数组所以这里获取了它的最后一个元素。

stringByAppendingPathComponent
是路径拼接,会在字符串前自动添加“/”,成为完整路径。
要注意它和stringByAppendingString的区别,它是字符串拼接,拼接路径时要在名称前加“/”
2.获得数据库

FMDatabase *collectionDatabase = [FMDatabase databaseWithPath:fileName];

3.打开数据库

if ([self.collectionDatabase open]) {
    BOOL result = [self.collectionDatabase executeUpdate:@"CREATE TABLE IF NOT EXISTS collectionData (mainLabel text NOT NULL, nameLabel text NOT NULL, imageURL text NOT NULL, networkURL text NOT NULL, dateLabel text NOT NULL, nowLocation text NOT NULL, goodState text NOT NULL, collectionState text NOT NULL, id text NOT NULL);"];
    if (result) {
        NSLog(@"创表成功");
    } else {
        NSLog(@"创表失败");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值