FMDB简介:
是iOS平台的第三方数据库框架,将SQLite API以OC的方式进行封装,面向对象,使用便捷。
主要的类:
FMDatabase:一个FMDatabase对象就代表一个单独的SQLite数据库,用来执行SQL语句,进行增删查改操作。
FMResultSet:使用FMDatabase执行查询后的结果集。
FMDatabaseQueue:保证线程安全,可以在多线程中同时读写、执行多个查询或更新。
使用:
创建队列对象:
NSString *path = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"HWDownloadVideoCaches.sqlite"];
// 创建队列对象,内部会自动创建一个数据库, 并且自动打开
_dbQueue = [FMDatabaseQueue databaseQueueWithPath:path];
创表:下面代表创建一张名为t_videoCaches的数据表,包含3个字段,默认且自增的主键id字段、totalFileSize字段、url字段。如“url text”代表字段名字是url,类型是text,其中除主键外,类型可以不写,为了方便阅读及编程规范还是建议写上。
[_dbQueue inDatabase:^(FMDatabase *db) {
// 创表
BOOL result = [db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_videoCaches (id integer PRIMARY KEY AUTOINCREMENT, totalFileSize integer, url text)"];
if (result) {
NSLog(@"创建成功");
}else {
NSLog(@"创建失败");
}
}];
常用类型:
整数数据类型:integer、bigint、smallint、tinyint
浮点数据类型:float、double、real
字符型数据类型:char(n)、varchar(n)、text
二进制数据:blob
日期类型:date、time、datetime、timestamp
增加数据:这里有一点要注意,不要直接传入基础类型,如int,要封装成对象,不然会crash掉。
[_dbQueue inDatabase:^(FMDatabase *db) {
BOOL result = [db executeUpdate:@"INSERT INTO t_videoCaches (totalFileSize, url) VALUES (?, ?)", [NSNumber numberWithInteger:1000], @"https://blog.csdn.net/hero_wqb"];
if (result) {
NSLog(@"插入成功");
}else {
NSLog(@"插入失败");
}
}];