- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FMDB使用详解
整个Demo是根据文顶顶的博客里的内容做出来的,在这里我想详细的写一下我的整个的使用过程。
一、简单说明
1.什么是FMDB
FMDB是iOS平台的SQLite数据库框架
FMDB以OC的方式封装了SQLite的C语言API
?
2.FMDB的优点
使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码
对比苹果自带的Core Data框架,更加轻量级和灵活
提供了多线程安全的数据库操作方法,有效地防止数据混乱
?
3.FMDB的github地址
/ccgus/fmdb
?
二、核心类
FMDB有三个主要的类
(1)FMDatabase
一个FMDatabase对象就代表一个单独的SQLite数据库
用来执行SQL语句
?
(2)FMResultSet
使用FMDatabase执行查询后的结果集
?
(3)FMDatabaseQueue
用于在多线程中执行多个查询或更新,它是线程安全的
?
三、打开数据库
通过指定SQLite数据库文件路径来创建FMDatabase对象
FMDatabase *db = [FMDatabase databaseWithPath:path];
if (![db open]) {
? ? NSLog(@数据库打开失败!);
}
?
文件路径有三种情况
(1)具体文件路径
如果不存在会自动创建
?
(2)空字符串@
会在临时目录创建一个空的数据库
当FMDatabase连接关闭时,数据库文件也被删除
?
(3)nil
会创建一个内存中临时数据库,当FMDatabase连接关闭时,数据库会被销毁
?
四、执行更新
在FMDB中,除查询以外的所有操作,都称为“更新”
create、drop、insert、update、delete等
?
使用executeUpdate:方法执行更新
- (BOOL)executeUpdate:(NSString*)sql, ...
- (BOOL)executeUpdateWithFormat:(NSString*)format, ...
- (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments
?
示例
[db executeUpdate:@UPDATE t_student SET age = ? WHERE name = ?;, @20, @Jack]
?
五、执行查询
查询方法
- (FMResultSet *)executeQuery:(NSString*)sql, ...
- (FMResultSet *)executeQueryWithFormat:(NSString*)format, ...
- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments
?
示例
// 查询数据
FMResultSet *rs = [db executeQuery:@SELECT * FROM t_student];
?
// 遍历结果集
while ([rs next]) {
? ? NSString *name = [rs stringForColumn:@name];
? ? int age = [rs intForColumn:@age];
? ? double score = [rs doubleForColumn:@score];
}
?
一个简单的例子
说明:这个例子运行的效果就是点击屏幕任意位置后,插入修改删除数据,并在控制台显示
准备工作:
1.把FMDB引入工程文件
2.导入libsqlite3库 工程-Build Phases-Link Binary With Libraries-搜索”libsqlite3.tbd“-点击add
???? 3.将数据库导入
???? 拖拽world.db到工程里-勾选 copy if needed
???? 4.编辑
?
?#import?YYViewController.h??
?#import?FMDB.h??
??
?@interface?YYViewController?()??
?@property(nonatomic,strong)FMDatabase?*db;??
?@end??
??
?@implementation?YYViewController??
??
?-?(void)viewDidLoad??
?{??
?????????[super?viewDidLoad];??
????????//1.获得数据库文件的路径??
????????NSString
您可能关注的文档
- 移动商务基础1 APP技术的发展 企业APP终端掌上药店案例.doc
- 物联网工程实践 教案 电子教案03.doc
- 移动商务视觉设计2 移动商务视觉设计2 案例:商品美化流程.doc
- 物联网工程实践 教案 电子教案22.doc
- 移动商务运营1 墨迹天气 生活类之墨迹天气.doc
- 物联网工程项目设计 详细设计概述 智能楼道灯系统(第四届“创新杯”电子制作大赛作品).doc
- 移动通信接入网运行与维护 RNC常用配置命令 实验19 RNC使用LMT配置(真实环境).docx
- 物联网工程项目营销 物联网工程项目营销 TP-8060P网络功放使用指南.doc
- 物联网工程项目营销 物联网工程项目营销 VM-M1616_SDK协议文档-2017.1.17.doc
- 移动通信网络优化课程资源 LTE网络优化 LTE京沪高铁网络优化案例.doc
- 物流企业网络维护与管理 组策略的管理和应用 任务3-4 组策略及其应用.doc
- 移动游戏开发综合实训-2017 PS的基本运用 PS基础运用(三).doc
- 移动游戏开发综合实训-2017 攻击回位POSE设计 攻击的回位.docx
- 移动游戏开发综合实训-2017 基础操作规范 基础操作规范一.docx
- 乙烯生产操作与控制 2-4推荐书目库 推荐书目库.doc
- 物流信息(旧) 第三章 实训3 仓储信息管理操作(实景).doc
- 物流信息技术与应用 物流动态跟踪技术(GIS专用软件实训) 5-1 物流动态跟踪技术GIS-作业习题答案.doc
- 物流营销 任务1确定评估主体与评估对象 YXA080102 物流企业的绩效管理体系设计.doc
- 物流营销 任务3设计新的物流服务项目 YXA040242 北京邮政推出低碳我行简装邮票册.doc
- 物流专业单元设计(旧) 物流营销 职业活动教学设计(物流营销1).doc
原创力文档


文档评论(0)