FMDB概述:
1.sqlite3的封装,比sqlite3更好用
2.基于oc的代码,使用更方便
3.基于队列,保证线程安全
FMDB类结构图:
使用步骤
在 FMDB 中有三个重要的类:
FMDatabase
:是一个提供 SQLite 数据库的类,用于执行 SQL 语句。FMResultSet
:用在FMDatabase
中执行查询的结果的类。FMDatabaseQueue
:在多线程下查询和更新数据库用到的类。、
数据库创建
// 创建数据库示例 FMDatabase *db = [FMDatabase databaseWithPath:@"/tmp/tmp.db"];
数据库的表的创建,添加,删除更新
BOOL update = [_db executeUpdate:@"update t_health set name = ? where phone = '%@'",@"jacob111"];
数据库的查询
FMResultSet *set = [_db executeQuery:@"select * from t_health "]; while ([set next]) { NSString *name = [set stringForColumn:@"name"]; NSString *phone = [set stringForColumn:@"phone"]; NSLog(@"name : %@ phone: %@",name,phone); }
数据库多条语句的执行
[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]) { // … } }];
其它
FMResultSet
提供了很多方便的方法来查询数据:
intForColumn:
longForColumn:
longLongIntForColumn:
boolForColumn:
doubleForColumn:
stringForColumn:
dateForColumn:
dataForColumn:
dataNoCopyForColumn:
UTF8StringForColumn:
objectForColumn: