FDMB的认识

来源:互联网 发布:赖昌星 红楼 知乎 编辑:程序博客网 时间:2024/04/30 08:52

FDMB是一个处理数据存储的第三方框架,框架是对sqlite的封装,整体框架非常轻量级但不失灵活性,而且更加面对对象,FDMB有下面几个特性:

1).FDMB是对sqlite3框架的封装,自然使用起来也是类似的,使用前也要打开一个数据库,这个数据库文件存在则直接打开否则创建并打开.这里FDMB引用了一个MFDDatabase对象来表示数据奎,打开数据库和后面的数据库操作全部依赖此对象.

2).对于数据库的操作和前面KCDManager的封装是类似的,在FMDB中FMDatabase类提供了两个方法executeUpdate和executeQuery分别用于执行无返回结果的查询和有返回结果的查询.当然这两个方法有很多的重载,(不多赘述)唯一需要指出的是,如果调用有格式化的参数的sql语句时,格式化符号使用"?"而不是"%@"等

3).我们知道直接使用libsqlite3进行数据库操作其实是线程不安全的,如果遇到多个线程同时操作一个表的时候可能会发生意想不到的结果.为了解决这个问题建议在多个线程中使用FMDatabaseQueue对象,相比FMDatabase而言,他是线程安全的

4).将事务放到FMDB中去并不是只有FMDB才支持事务,而是因为FMDB将其封装成了几个方法来调用,不用自己写对应的sql而已.其实在使用libsqlite3操作数据库时也是原生支持事务的(这里的事务是基于数据库的,FMDB还是使用的SQLite数据库)只要在执行sql语句前加上"begin transaction"执行完之后执行"commit transaction"或者rollback transaction 进行提交或回滚即可,另外在CoreData 中大家也可以发现,所有的增 删 改 操作之后必须调用上下文的保存方法,其实本身就提供了事务的支持,只要不调用保存方法,之前所有的操作是不会提交的,在FMDB中FMDatabase有beginTransaction commit rollback三个方法进行开启事务,提交事务和回滚事务

0 0
原创粉丝点击