FMDB的使用
一:了解FMDB的三个重要类
1.1 FMDataBase:提供SQLite数据库的类,用来执行SQL语句
1.2 FMResultSet: 用在FMDatabase中执行查询结果的类
1.3 FMDatabaseQueue:在多线程下查询和更新数据库用到的类
二:使用FMDB
2.1 创建数据库
FMDatabase *db = [FMDatabase databaseWithPath:@“/tmp/tmp.db”];
2.2 打开数据库
2.3 数据库更新(除了select语句外 都可以称为更新操作)
2.4 数据库查询
通过调用 -executeQuery 来执行select语句进行查询操作
成功会返回一个FMResultSet的对象
失败会返回nil
(可以通过 -lastErrorMessage 和-lastErrorCode方法可以确认为什么会查询失败)
为了遍历查询结果,需要 while() 循环,然后逐条记录查看。在 FMDB 中,可以通过下面的简单方式实现:
FMResultSet *s = [db executeQuery:@"SELECT * FROM myTable"];
while ([s next]) {
.....
}
即使只需要获取一个数据,也还是必须在访问查询结果前调用 -[FMResultSet next]。
FMResultSet *s = [db executeQuery:@"SELECT COUNT(*) FROM myTable"];
if ([s next]) {
int totalCount = [s intForColumnIndex:0];
}
FMResultSet 提供了很多方便的方法来查询数据:
- intForColumn:
- longForColumn:
- longLongIntForColumn:
- boolForColumn:
- doubleForColumn:
- stringForColumn:
- dateForColumn:
- dataForColumn:
- dataNoCopyForColumn:
- UTF8StringForColumn:
- objectForColumn:
通常情况下,一个 FMResultSet 没有必要手动 -close,因为结果集合 (result set) 被释放或者源数据库关闭会自动关闭。
2.5关闭数据库
[db close];