FMDB 基础操作的封装和实现

在实际开发很多地方都会用到数据的存储。对于一个开发过实际项目的开发人员来说,对于iOS重各种数据存储方式都会烂熟于心。 例如:Plist文件,文件沙盒,NSUserDefaults,NSKeyedArchiver,coreData,sqlite。对于一些简单数据前面四种基本都可以轻松应付。但是如果数据量很大的关系型数据coreData,sqlite肯定是大家的选择。其中sqlite因为其轻量级和灵活性运用更多。其中一般都会搭配FMDB 进行是用。

FMDB是iOS平台的SQLite数据库框架,它以OC的方式封装了SQLite的C语言API。用起来更加面向对象,省去了很多麻烦、冗余的C语言代码。但是对于初入门的开发人员,入手已是艰难,何必在谈其他。所以我特意对基本的数据库操作进行分装。供大家方便是用。

首先可以使用pod 对fmdb 进行导入,或者直接在github上下载导入工程。

FMDB中重要的类:

FMDatabase:一个FMDatabase对象就代表一个单独的SQLite数据库,用来执行SQL语句

FMResultSet:使用FMDatabase执行查询后的结果集

FMDatabaseQueue:用于在多线程中执行多个查询或更新,它是线程安全的

一.基础应用

1、创建数据库

FMDB 基础操作的封装和实现_第1张图片
创建数据库表

2、创建数据库表

FMDB 基础操作的封装和实现_第2张图片
建立数据库表

3.增,删,查,改数据

FMDB 基础操作的封装和实现_第3张图片
增加数据


FMDB 基础操作的封装和实现_第4张图片
搜索内容
FMDB 基础操作的封装和实现_第5张图片
获取所有数据


FMDB 基础操作的封装和实现_第6张图片
更新数据
FMDB 基础操作的封装和实现_第7张图片
删除单条内容
FMDB 基础操作的封装和实现_第8张图片
删除所有数据

基本以上包括了所有数据库的基本操作,在实际操作中,还要开发人员关注,各个表里的数据类型,主键等。在对于在操作数据库时候,数据的开关和发生数据错误时候的数据回滚都需要注意

二.高级应用处理

在实际开发中,有时候会牵扯到大量数据同时进行操作,比如十万条数据,甚至百万条数据。还有在操作数据时候的线程安全和多线程操作。这些都需要一个成熟的开发人员在开发中予以处理。

1.fmdb 多事务处理

设想如果现在有10000条数据,需要同时插入数据库。一次插入数据库的请求是这样的,打开数据库,提交数据,关闭数据库。如果要插入10000条那么我们就需要进行一万次这样的操作,那么这样的耗时是巨大的。基本上你的应用差不多可以挂啦。

但是如果我们这样,我们打开数据库,然后批量提交数据,提交完之后一次提交数据,可以想像这样的处理耗时和上面的笨方法比几乎可以忽略不计。

FMDB 基础操作的封装和实现_第9张图片
多事务处理

2、FMDatabaseQueue

FMDatabase这个类是线程不安全的,如果在多个线程中同时使用一个FMDatabase实例,会造成数据混乱等问题。为了保证线程安全,FMDB提供方便快捷的FMDatabaseQueue类。

FMDB 基础操作的封装和实现_第10张图片
FMDatabaseQueue运用

3、FMDatabaseQueue与多线程(GCD)

FMDatabaseQueue  后台会建立系列化的G-C-D队列,并执行  你传给G-C-D队列的块。这意味着 你从多线程同时调用调用方法,GDC也会按它接收的块的顺序来执行。谁也不会吵到谁的脚,每个人都幸福。

项目地址

你可能感兴趣的:(FMDB 基础操作的封装和实现)