SQLite介绍
SQLite是一款轻型的嵌入式关系数据库,安卓和iOS开发使用的都是SQLite数据库。
它的特点:
它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
它的处理速度比MySQL、PostgreSQL这两款著名的数据库都还快。
它是C语言框架的,跨平台性强。
FMDB
FMDB是iOS平台的SQLite数据库框架
iOS SDK很早就支持了SQLite,在使用时,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可。但是,原生的SQLite API在使用上相当不友好,在使用时,非常不便。于是,开源社区中就出现了一系列将SQLite API进行封装的库,而FMDB (https://github.com/ccgus/fmdb) 则是开源社区中的优秀者。
FMDB以OC的方式封装了SQLite的C语言API.
FMDB的优点
- 使用起来更加面向对象,省去了很多麻烦、冗余的C语言代码
- 对比苹果自带的Core Data框架,更加轻量级和灵活
- 提供了多线程安全的数据库操作方法,有效地防止数据混乱.
FMDB是一种第三方的开源库,FMDB就是对SQLite的API进行了封装,加上了面向对象的思想,让我们不必使用繁琐的C语言API函数,比起直接操作SQLite更加方便。
YTKKeyValueStore
YTKKeyValueStore是基于FMDB
iOS开发过程中经常会有用到SQLite数据库的时候,ios本身就支持SQLite,但使用不是很方便。于是就出现了一系列封装的库,其中的佼佼者就是FMDB。虽然FMDB很好用,但还是要写很多的SQL语句,如建表,增删改查等操作。YTKKeyValueStore就是对这些语句的封装,简化了SQL语句的操作。
Core Data
Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间,我们不需要编写任何SQL语句,这个有点类似于著名的Hibernate持久化框架,不过功能肯定是没有Hibernate强大的。
MagicalRecord
MagicalRecord是OC的一个库,协助方便CoreData的工作。其吸收了Ruby on Rails的Active Record模式,目标是:
- 简化Core Data相关代码
- 允许清晰,简单,单行获取
- 当需要优化请求的时候,仍然允许修改NSFetchRequest