FMDB的基本使用和解析(Swift3.0)

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

FMDB的优点
使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码提供了多线程安全的数据库操作方法,有效地防止数据混乱

FMDB中3个主要的类:FMDB 更多的详细信息,看github
FMDatabase - 代表一个SQLite 数据库,用于执行SQL语句.executeStatements:执行多条sql。executeQuery:执行查询语句。executeUpdate:执行除查询以外的语句,create, drop, insert, delete, update
FMResultSet -代表在FMDatabase中执行查寻的结果数据,通过字段名称获取字段值
FMDatabaseQueue - 如果想在多线程执行查寻和更新,我们将使用该类,处理线程安全。

数据库的创建(Database Creation)
 创建一个FMDatabase对象需要一个SQLite数据库文件路径,可以使用的方式之一:
 1
 一个系统文件路径,该文件并不一定是存在磁盘上,如果文件不存在,自己手动创建。
 2
一个空的字符串,一个空的数据库将被创建在一个零时的位置,当FMDatabase链接被关闭,数据库被删除。
 3NULL,一个内存的数据库被创建,当FMDatabase连接被关闭,数据库将被摧毁。

对于更多有关于零时和内存数据库,可以阅读sqlite文档,请看这里
 NSString *path = [NSTemporaryDirectory() stringByAppendingPathComponent:@"tmp.db"];
 FMDatabase *db = [FMDatabase databaseWithPath:path];

打开数据库(Opening)
在你能够跟数据库交互之前,数据库必须被打开,如果有无效的资源中,数据库打开失败
 
 if (![db open]) {
 // [db release];   // uncomment this line in manual referencing code; in ARC, this is not necessary/permitted
 db = nil;
 return;
 }
 

执行更新操作( Executing Updates)
任何类型的SQL语句,它不是一个SELECT语句都可以用于执行更新(update)。包括CREATE, UPDATE, INSERT, ALTER, COMMIT, BEGIN, DETACH, DELETE, DROP, END, EXPLAIN, VACUUM,  REPLACE 等语句。基本上,如果你的SQL语句不是以SELECT开始,它就是一个更新(update)语句。
 
执行更新将返回一个布尔值,如果是YES表示执行update成功,如果返回NO意味着update遇到了错误。可以在代码中使用lastErrorMessage和lastErrorCode方法获取失败的信息。
 
执行查寻(Executing Queries )
 一个SELECT声明是一个查寻语句,可以使用-executeQuery方法进行查寻操作。执行查寻之后,如果查寻成功将返回FMResultSet对象,如果失败为nil。可以在代码中使用lastErrorMessage和lastErrorCode方法获取失败的信息。

为了循环遍历查寻的结果,可以使用while()循环,对于FMDB,最容易的方式如下:

 FMResultSet *s = [db executeQuery:@"SELECT * FROM myTable"];
 while ([s next]) {
 //retrieve values for each record
 }
 
必须值访问查寻结果之前执行 -[FMResultSet next],及时只使用一个:
 FMResultSet *s = [db executeQuery:@"SELECT COUNT(*) FROM myTable"];
 if ([s next]) {
 int totalCount = [s intForColumnIndex:0];
 }
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值