FMDB

来源:互联网 发布:广联达软件介绍 编辑:程序博客网 时间:2024/05/16 10:13
FMDB是iOS平台的SQLite数据库框架。FMDB以OC的方式封装了SQLite的C语言API
项目中使用 ARC 还是 MRC,对使用 FMDB 都没有任何影响,FMDB 会在编译项目时自动匹配。

在 FMDB 中有三个重要的类:
FMDatabase:是一个提供 SQLite 数据库的类,用于执行 SQL 语句。
FMResultSet:用在 FMDatabase 中执行查询的结果的类。
FMDatabaseQueue:在多线程下查询和更新数据库用到的类。

数据库更新
SQL 语句中除过 SELECT 语句都可以称之为更新操作。包括 CREATE,UPDATE,INSERT,ALTER,COMMIT,BEGIN,DETACH,DROP,END,EXPLAIN,VACUUM,REPLACE 等。一般只要不是以 SELECT 开头的 SQL 语句,都是更新语句。

通常情况下,一个 FMResultSet 没有必要手动 -close,因为结果集合 (result set) 被释放或者源数据库关闭会自动关闭。

事务
FMDatabase 可以通过调用方法来开始和提交事务,也可以通过执行开始\结束事务 (begin\end transaction) 语句。
事务的sql语句:
开始事务begin transaction
提交事务commit transaction
回滚事务rollback transaction
[_dataBase inTransaction:^(FMDatabase *db, BOOL *rollback) {    BOOL success = [db executeUpdate:sql];    if (!success) {        *rollback = YES;        return;    }}];


多语句和批处理
FMDatabase 可以通过 -executeStatements:withResultBlock: 方法在一个字符串中执行多语句。

FMDatabaseQueue 队列和线程安全
在多线程中同时使用 FMDatabase 单例是极其错误的想法,会导致每个线程创建一个 FMDatabase 对象。不要跨线程使用单例,也不要同时跨多线程,不然会奔溃或者异常。
0 0
原创粉丝点击