SQLite一种轻量级关系数据库,在嵌入式系统中使用比较广泛。
在iOS中使用SQLite需要添加库libsqlite3.0.dylib,并引入头文件#import <sqlite3.h>
FMDB对sqlit接口进行了高级封装,使用上更加友好简洁。
https://github.com/ccgus/fmdb
FMDB包含以下文件:
FMDatabase.h
FMDatabase.m
FMDatabaseAdditions.h
FMDatabaseAdditions.m
FMDatabasePool.h
FMDatabasePool.m
FMDatabaseQueue.h
FMDatabaseQueue.m
FMResultSet.h
FMResultSet.m
FMDB使用:
  1.FMDatabase 非线程安全,不要在多线程中使用FMDatabase的单例
//用指定的数据库名实例化一个数据库,没有此文件则创建
FMDatabase *db = [FMDatabase databaseWithPath:filePath];
"" 在临时目录创建一个空的数据库,数据库关闭后会自动删除
NULL 在内存中创建一个空的数据库,数据库关闭后会自动删除
//打开数据库,资源不足或权限不够会打开失败
if (![db open])
{
NSLog(@"数据库打开失败");
}
//用完后需要关闭
[db close];
数据库操作:
查询操作:SELECT,返回FMResultSet,nil表示查询失败;
[db executeQuery:sql];
FMResultSet *rs = [db executeQuery:@"SELECT * FROM TableName"];
{
while ([rs next])
{
//获取查询结果,即使结果只有一条
}
}
更新操作:非SELECT操作都是更新操作,返回值类型BOOL,YES:成功,NO:失败
[db executeUpdate:sql];
数据库事务:
当需要插入的数据较多时,使用事务操作会比较快。
[db beginTransaction];
//需要执行的操作
[db commit];
FMResultSet *rs;
FMResultSet可以不手动关闭,当数据库关闭时,会跟着关闭。
2.FMDatabaseQueue 线程安全,所有的数据库操作会在队列中顺序执行
[FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:path];
queue inDatabase:^(FMDatabase *db) {
//
}];
queue inTransaction:^(FMDatabase *db, BOOL *rollback) {
//
}

最新内容请见作者的GitHub页:http://qaseven.github.io/

iOS数据库操作之FMDB相关推荐

  1. iOS 数据库操作(使用FMDB)

    iOS 数据库操作(使用FMDB)   iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.Plausibl ...

  2. IOS数据库操作SQLite3使用详解(转)

    iPhone中支持通过sqlite3来访问iPhone本地的数据库. 具体使用方法如下 1:添加开发包libsqlite3.0.dylib 首先是设置项目文件,在项目中添加iPhone版的sqlite ...

  3. IOS数据库操作SQLite3使用详解

    sqlite数据库iosdatabasesqlinteger 目录(?)[+] iPhone中支持通过sqlite3来访问iPhone本地的数据库. 具体使用方法如下 1:添加开发包libsqlite ...

  4. 数据库操作(使用FMDB)

    iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...

  5. iOS 数据库-SQLite3 CoreData FMDB

    在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库.例如前面IOS开发系列-Objective-C之Foundation框架的文章中提到归档.plist文件存储,包括偏 ...

  6. 【转】IOS数据库操作SQLite3使用详解

    iPhone中支持通过sqlite3来访问iPhone本地的数据库. 具体使用方法如下 1:添加开发包libsqlite3.0.dylib 首先是设置项目文件,在项目中添加iPhone版的sqlite ...

  7. IOS 数据库操作SQLite3使用详解

    具体使用方法如下 1:添加开发包libsqlite3.0.dylib 首先是设置项目文件,在项目中添加iPhone版的sqlite3的数据库的开发包,在项目下的Frameworks点击右键,然后选择l ...

  8. FMDB - 数据库操作

    iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...

  9. iOS学习笔记(十五)——数据库操作(SQLite)

    SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库.SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的 ...

最新文章

  1. 2星|《快公司》2018年2-3期:商业人物访谈集
  2. Java线程:线程的同步与锁
  3. servlet+javabean+service+dao完成注册登录
  4. 黄猫被汽车撞死 花猫雨夜苦守
  5. 利用函数wavread对语音信号进行采样_语音识别第4讲:语音特征参数MFCC
  6. 图论(六)图的两种表示方法
  7. Exchange EMC打开出错 解决
  8. 怎么取消html的原始属性,回归原始,尽量使用XHTML标签默认属性
  9. java log 断点_项目中常见的log日志调用
  10. Sql 列转行 三种方法对比
  11. 高质量程序设计指南-c/c++语言:笔记之C++函数的高级特性
  12. 2.6.2 QDate类与QDateEdit控件介绍(日期处理)
  13. Kth Largest Element
  14. 玩转f#的一个实例——解拼图游戏
  15. 干细胞技术是不是骗局
  16. 这篇文章告诉你音频降噪手机软件app有哪些?
  17. 大数据[博学谷IT技术支持]
  18. BSCI验厂审核知识点
  19. 企业如何实现精细化人员管理?五大业务场景值得关注
  20. 拳打DALL-E 2脚踢Imagen,谷歌最新Muse模型刷新文本图像合成排行榜

热门文章

  1. [转]总不能一辈子做助理
  2. [译]Kinect for Windows SDK开发入门(九):骨骼追踪进阶 下
  3. 女儿社交媒体求生日卡 美96岁失明二战老兵收海量祝福
  4. ActiveMQ入门教程(二) - ActiveMQ的安装
  5. Android的一些属性使用
  6. Ioc 控制反转 实例
  7. Public Prize
  8. 后台运行定位,音频,网络电话
  9. Linux 的账号与群组(转)
  10. 数据源 No operations allowed after connection closed