FMDB:1-基本介绍
通常情况下,由于原生的SQLite使用起来非常繁琐,所以我们一般不会直接使用,取而代之的是FMDB。FMDB是使用Objective-C对SQLite的API进行封装的库,使用起来会比直接使用C语言API容易。FMDB使用起来更加面向对象,因而省去了很多麻烦,并且还提供了更方便的方法来拼接SQL语句。
下载与安装
我们可以到github下载最新版本的FMDB,下载的地址为:https://github.com/ccgus/fmdb。点击【Clone or download】即可下载最新版本的FMDB到本地硬盘中。
FMDB的安装推荐使用CocoaPods,使用CocoaPods安装的步骤如下:
- 打开终端;
- 使用
cd
命令导航到工程根目录,执行pod init
- 在Podfile文件中加上
pod 'FMDB'
pod 'FMDB'
- 在终端中执行
pod update
, 也可以使用pod update --no-repo-update
来加快更新速度。
另外,也可以使用手工方式安装FMDB。解压下载到的fmdb-master.zip文件后,把其中的src/fmdb文件夹添加到工程中。
在需要使用FMDB的类中,导入FMDB的头文件,即可使用其中的方法。
#import "FMDB.h"
FMDB核心类介绍
在FMDB中,提供了3个核心类。
- FMDatabase:数据库类,所有的SQL语句都需要在数据库中执行;
- FMResultSet:执行SELECT语句后,查询数据库的结果集。
- FMDatabaseQueue:如果要在多线程上执行查询和更新,需要用到这个类。
创建数据库
如果需要创建一个数据库库,只需要给FMDatabase类提供一个数据库文件存储的路径即可。在FMDatabase.h文件中,提供了databaseWithPath:方法,用于快速创建一个数据库。
+ (instancetype)databaseWithPath:(NSString*)inPath;
在databaseWithPath:方法中,需要传入数据库所在路径,这个路径有三种情况:
- 提供一个系统路径。如果这个路径上没有数据库,则会创建一个新的数据库。
- 一个空字符串@""。在沙盒中的temporary文件夹中创建一个数据库,之后在数据库被关闭之后会被删除。
- NULL。在内存中创建一个数据库,之后在数据库被关闭之后会被删除。
NSArray *dirPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *dbDir = [dirPath objectAtIndex:0];
NSString *path = [dbDir stringByAppendingPathComponent:@"tmp.db"];
FMDatabase *db = [FMDatabase databaseWithPath:path];
打开数据库
在使用SQLite数据库之前,都需要打开数据库。由于FMDB是对SQLite的封装,因此在操作数据库之前,也需要提前打开数据库。在FMDB中,提供了open方法用于打开数据库。
if (![db open]) {
// 数据库打开失败的处理
db = nil;
return;
}
关闭数据库
对数据库执行完查询或更新操作后,我们需要调用close方法关闭SQLite数据连接,以便释放系统资源。
[db close];
事务Transactions
事务Transactions是数据库操作的单个工作单位。如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中永久的组成部分。若果事务遇到错误,则必须取消或回滚,所有数据均被更改清除。
FMDatabase通过begin/end语句来开始和提交一个事务。
- 开始执行事务
- (BOOL)beginTransaction;
- 提交事务
- (BOOL)commit;
- 事务回滚
- (BOOL)rollback;
最后编辑时间为: September 22nd , 2017 at 01:27 am
本文由 99ios 创作,转载请注明出处