sqlite【原】iOS学习之SQLite和CoreData数据库的比较

1. SQLite数据库

  • sqlite数据库操作的主导流程是,
    创建数据库, 再经定义有字段来定义表格结构,
    可以使sql语句向表格中插记录, 删除记录, 修改记录,
    表格里吧可以建立联系。

  • 这些操作都需要运用SQL语句去贯彻,感觉操作特别直白。如果原先时有发生几许数据库暨SQL基础的语句,写起会感觉特别密切,都是部分数据库操作的语。但是当操作变多过后,语句越来越多,就生烦,代码比较多,看起也会混杂有。

  • 若果想要详细摸底,可以扣押iOS学习36数处理的SQLite数据库

  • CoreData数据库


  • CoreData.framework
    :iOS中提供了针对性原始SQLite数据库API访问的包装,通过这个framework来保管数据缓存和持久数据要于下SQL语句操作SQLite数据库简单和福利广大。

  • 体制:通过framework来储存和询问数据只是待利用framework提供的接近即可以,你可了采用对象的形式来管理而的数额和数额里的涉嫌,framework已经好好地拿数据库表和字段封装成了目标和特性,表内的如出一辙针对几近、多针对几近涉及虽然封装成了目标中的带有关系.

  • 通过 relationship 来表示:

  一对多不时:设置也 properties 项选中
Optional, Plural 选项 To-Many Relationship 选中;

  多对同一倒往关系时:properties 项选中
Optional, Count 项选中Minimun 和 Maximun 并分别安装其值为1;

  如果想如果详细了解,可以扣押iOS学习37多少处理的CoreData

3. 比较

 1>
CoreData的好像和SQLite数据库被的文字描述做一个相应:

  NSEntityDescription –> 表格结构
  NSManagedObjectModel –> 数据库被兼有表格和他们之关系
  NSPersistentStoreCoordinator –>
数据库存放方式
  NSManagedObjectContext –> 数据库操作
  NSFetchRequest –> 查询语词
  NSManagedObject –> 表格的记录

 2>
下面我们可以详细的探CoreData的类 

  • NSEntityDescription、NSManagedObjectModel

   NSEntityDescription
用来定义表格结构, 所以你就好领略 NSManagedObjectModel 中的
setEntities:(NSArray *)entities 函数大概有啊用了 . 通常, 定义 model ,
是用文件 CoreData.xcda*****odel , 可以图形化的操作.
这好像用nib来创建界面.

  • NSPersistentStoreCoordinator

   这个类似的目标通常用
NSManagedObjectModel 的目标来初始化, 这个近乎华而不实出不同之寄放方式,
最常用之凡 NSSQLiteStoreType.

  • NSManagedObjectContext

   这个看似的靶子又从而
NSPersistentStoreCoordinator sqlite的对象来初始化, 它里面有些措施来丰富, 删除
NSManagedObject

  • NSFetchRequest

   通常用 NSEntityDescription
来布局查询, 也就算指定询问好表格, 另外可以指定排序.

  •  NSFetchedResultsController

  NSFetchedResultsController
只是还要封闭了一下, 和 NSFetchRequest 合起来以, 方便取数据, 另外和
NSManagedObjectContext 关联, 当数据库发生变化的时接受通知.

 3> 特点于

  • CoreData的强硬的远在便在于这种涉及可以当一个对象更新时,其关联的目标呢会见趁机更新,相当给公更新一张表的早晚,其涉嫌的别样表也会趁更新。

  • Core
    Data的另外一个表征就是供了更简单的性质管理机制,例如,使用NSFetchedResultsController类,你绝不动SQL的Limit而是使用NSFetchRequest类的setFetchBatchSize()就得界定查询记录之总数,而NSFetchedResultsController类神奇的地方在于要取得更多记录之时光,这个类会自动更新其缓存。

  • 对于多表查询及相对来说,CoreData 没有
    SQL
    直观,但 CoreData 的效益还是得就相关操作的,但是于类似外接连,左连接等操作,在CoreData中就显无力。

 

网站地图xml地图