什么是FMDB
FMDB是iOS平台的SQLite数据库框架
FMDB以OC的方式封装了SQLite的C语言API
FMDB的优点
使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码
对比苹果自带的Core Data框架,更加轻量级和灵活
提供了多线程安全的数据库操作方法,有效地防止数据混乱
FMDB的github地址
https://github.com/ccgus/fmdb
废话少说,下面来介绍FMDB的使用吧
FMDB有三个主要的类
FMDatabase
一个FMDatabase对象就代表一个单独的SQLite数据库
用来执行SQL语句
FMResultSet
使用FMDatabase执行查询后的结果集
FMDatabaseQueue
用于在多线程中执行多个查询或更新,它是线程安全的
下面来打开数据库 ,一般都需要数据库的路径地址:path
通过指定SQLite数据库文件路径来创建FMDatabase对象
FMDatabase *db = [FMDatabase databaseWithPath:path];
if (![db open]) {
NSLog(@"数据库打开失败!");
}
path文件路径有三种情况
1,具体文件路径
如果不存在会自动创建
2,空字符串@“”
会在临时目录创建一个空的数据库
当FMDatabase连接关闭时,数据库文件也被删除
3,nil
会创建一个内存中临时数据库,当FMDatabase连接关闭时,数据库会被销毁
CURD操作:
在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"];
}
多线程管理FMDB
FMDatabase这个类是线程不安全的,如果在多个线程中同时使用一个FMDatabase实例,会造成数据混乱等问题
为了保证线程安全,FMDB提供方便快捷的FMDatabaseQueue类
FMDatabaseQueue的创建
FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:path];
简单使用
[queue inDatabase:^(FMDatabase *db) {
[db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Jack"];
[db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Rose"];
[db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Jim"];
FMResultSet *rs = [db executeQuery:@"select * from t_student"];
while ([rs next]) {
// …
}
}];
使用事务
[queue inTransaction:^(FMDatabase db, BOOL rollback) {
[db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Jack"];
[db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Rose"];
[db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Jim"];
FMResultSet *rs = [db executeQuery:@"select * from t_student"];
while ([rs next]) {
// …
}
}];
事务回滚
*rollback = YES;
当然,以上都是个人学习FMDB总结出来的,希望对读者有所帮助……
相关推荐
**iOS 数据库与 FMDB 使用详解** 在 iOS 开发中,数据存储是应用程序不可或缺的一部分,SQLite 作为一种轻量级的数据库,常被用于存储非结构化的数据。而 FMDB 是一个 Objective-C 的 SQLite 库,它提供了一种简单...
FMDB库是iOS平台上一个非常流行的SQLite数据库管理工具,它是由GitHub上的Zee Zide开源的。这个库为Objective-C开发者提供了一套简单易用的API,使得在iOS应用中操作SQLite数据库变得轻而易举。FMDB不仅封装了SQLite...
**iOS第三方数据库FMDB详解** 在iOS应用开发中,数据管理是不可或缺的一部分,尤其是在需要进行本地数据持久化存储时。FMDB就是一款优秀的第三方数据库管理库,它为iOS应用程序提供了SQLite数据库的简单Objective-C...
FMDB是iOS开发中常用的第三方数据库管理库,它是基于SQLite的一个Objective-C封装,极大地简化了在iOS应用中使用SQLite数据库的操作。在这个项目中,你只需将FMDB文件夹直接拖入你的工程,然后引入相关头文件,即可...
本项目“iosFMDB开发的通讯录”就是利用FMDB这一强大的SQLite数据库管理库,实现了一个功能丰富的手机通讯录应用。FMDB是Objective-C编写的SQLite封装库,它使得在iOS平台上操作SQLite数据库变得简单易行。 首先,...
FMDB是iOS开发中常用的一个SQLite数据库管理库,它是一个Objective-C封装的SQLite库,提供了简单易用的接口来操作数据库。在这个“fmdb的封装”项目中,开发者已经对FMDB进行了更进一步的封装,使得数据库的存储、...
FMDB是iOS和macOS平台上一个非常流行的SQLite数据库管理库,它是用Objective-C编写的,为开发者提供了简单、直观的接口来操作SQLite数据库。在这个"fmdb-master"压缩包中,包含了FMDB库的源代码和其他相关文件,使得...
FMDB是iOS平台上的一个流行的第三方数据库管理库,它为SQLite提供了Objective-C的封装,使得开发者可以更方便、更直观地进行数据库操作。本篇文章将深入探讨FMDB的核心功能、使用方法以及其在iOS开发中的实际应用。 ...
FMDB是iOS开发中广泛使用的SQLite数据库管理库,它是一个Objective-C封装的SQLite库,提供了简单易用的接口,使得开发者能够轻松地进行数据存储、查询、更新和删除操作。FMDB不仅支持基本的SQL语句执行,还包含了...
FMDB是iOS和macOS平台上一个非常流行的SQLite数据库管理库,它是用Objective-C编写的,提供了简单易用的API来处理SQLite数据库的各种操作,包括增、删、改、查(CRUD)等基本功能。在iOS应用开发中,FMDB通常用于...
而FMDB是Objective-C的一个SQLite库,它为iOS开发者提供了一个易于使用的接口来操作SQLite数据库,极大地简化了SQLite在iOS中的使用。FMDB由GitHub上的开源项目维护,具有良好的社区支持和持续的更新。 首先,我们...
FMDB是iOS开发中广泛使用的SQLite数据库管理库,它是由GitHub上的知名开发者Timmahh创建的,完全开源,遵循MIT许可证。这个数据封装包极大地简化了iOS应用与SQLite数据库的交互过程,使得开发者能够更加高效、便捷地...
**FMDB库详解** FMDB是一款非常流行的iOS和macOS平台上的SQLite数据库管理库,它是由GitHub上的SSSQLite项目发展而来的。SQLite是一款轻量级的、嵌入式的、关系型数据库,广泛应用于移动应用中,因为它不需要独立的...
FMDB是iOS开发中广泛使用的SQLite数据库管理库,由Cocoa社区中的知名开发者Sam Soffes维护。这个库是Objective-C编写的,提供了简洁、易用的接口来操作SQLite数据库,使得iOS应用能够轻松地进行数据存储和检索。2015...
**FMDB自定义单例类数据库Demo详解** 在iOS应用开发中,数据库是存储和管理数据的重要工具。FMDB是一个Objective-C的SQLite数据库管理库,它使得在iOS中使用SQLite数据库变得简单易行。本教程将详细介绍如何创建一...
在Swift编程中,FMDB是一个流行的SQLite数据库管理库,它为iOS、macOS以及其它基于Objective-C或Swift的平台提供了SQLite数据库操作的便利接口。本教程将深入探讨如何在Swift项目中利用FMDB进行数据库操作,包括安装...
FMDB是iOS开发中广泛使用的SQLite数据库管理库,它是一个Objective-C封装的SQLite接口,提供了简单易用的API来操作数据库。在这个名为"FMDB数据库iPhone版本源码"的资源中,你将找到适用于iPhone应用的FMDB实现,它...
FMDB是iOS开发中常用的一个SQLite数据库管理库,它提供了Objective-C接口,使得与SQLite数据库交互变得更加简单。在iOS应用中,数据存储是一项基础且重要的功能,尤其在处理大量结构化数据时,SQLite数据库因其轻量...
数据库FMDB文件是一种在iOS和macOS开发中广泛使用的SQLite数据库管理工具,它是一个Objective-C封装的SQLite库,使得在Apple平台上的数据库操作变得更加简单易用。本文将深入讲解FMDB的基本概念、主要功能以及如何在...
【iOS FMDB用户登录界面】是一个使用SQLite数据库框架FMDB实现的简单用户登录示例。在iOS应用开发中,为了存储用户数据或者实现用户登录功能,开发者常常会使用数据库,而FMDB是Objective-C对SQLite数据库的一个流行...