一  CoreData 了解
1 CoreData 数据持久化框架是 Cocoa API 的一部分,首先在iOSS5 版本的系统中出现;
     它允许按照 实体-属性-值 模式组织数据;
     并以 XML 、 二进制文件、内存、自定义数据类型或者 SQLite 数据文件的格式持久化数据
2 CoreData 主要提供对象-关系映射(ORM)功能,把OC对象转化为数据保存到文件,也可以数据转化为OC对象
3 原理 : 是对 SQLite 的封装,开发者不需要接触SQL 语句,就可以对数据库进行的操作
4 CoreData 优势
/**   CoreData 概念
 1 是一种数据持久化框架,用来解决对象生命周期管理,对象关系图管理、和持久化等方面相关问题的,负责在数据库中存储数据。底层也是类似于SQLite 的技术实现。
 **   CoreData 优点
 1 可视化、不用再写SQL语句,大量简化代码, redo/undo 
 2 可以实现多种文件格式:NSSQLiteStoreType,NSXMLStoreType等。
 3 与iOS 紧密结合,只能用于开发iOS
 4 存储内容,以对象的形式存储,符合面向对象的思想
 **   SQLite 特点
 1 是一个轻量级数据库而且功能强大的关系型数据库,很容易被嵌入到应用中,可移植性高,可以在多个品台使用
 2 和CoreData 框架不一样的是,sqlite 是使用程序式的,sql的主要操作方法,是直接操作数据表。
 3 基于C语言接口,使用sql 语句。代码繁琐。
 4 在处理大量数据时,表关系更直观一些。
 5 OC 中不是可视化的
 */
 
 
二    CoreData 数据库框架的核心对象
1 NSManagedObjectModel (数据模型器类)
  包含了各个实体(表)的定义信息,包含了表或者数据库的结构
   作用:用来添加实体的属性,建立属性之间的关系
   操作方法:视图编辑器,也可以用代码
   意义:构建整个数据库的表结构、表字段类型、表与表之间的关系等等,凡是和数据结构有关系的定义,统统都通过这个类进行管理。(被管理对象模型,管理多个对象)
 
 
2 NSPersistentStoreCoordinator  (数据连接器类)
     相当于数据库的连接器
      作用:设置数据存储的名字、位置、存储方式、存储时机
      原理:从下层文件取出数据,交给上层的被管理对象上下文
      意义:实际上这个类才是正真意义上跟数据库打交道的,主要根据 NSManagedObjectModel 执行表结果的建立,通过 NSManagedObjectContext 的命令执行数据交互。
 
 
 
3 NSManagedObjectContext (数据管理器类)
      操作实际内容(对持久层的一个操作)
   作用:插入数据、查询数据、删除数据、修改数据
   意义:是我们开发中主要交互的类,数据的CRUD 都通过这个 Context(上下文)去触发命令并返回结果。executeFetchRequest 操作(返回值是数组)CoreData提供的是对象关系映射,NSManagedObjectContext 操作的都是 NSManagedObject对象
 
 
4 NSPersistentStore:
作用:持久化存储,是对实际文件的一种Objective-C表示方式,一个被封装好的底层类,用于存储数据
存储文件 : 用来存储和管理数据的文件,iOS 支持4中存储类
NSSQLiteStoreType、NSBinaryStoreType、NSInMemoryStoreType、NSXMLStoreType
 
5 NSManagedObject:
被管理对象,CoreData 返回的数据模型,被管理的对象是根据实体描述生成的
 
6 NSEntityDescription:
实体描述类,根据实体创建被管理对象
 
7 Entity:
实体类,实体是对文件数据的描述。被管理对象表示实体,实体包含名称,属性(字段)和关系,实体的名称通常和被管理对象名一致
 
8 NSFetchRequest:
查询请求,可以做排序操作,也可以使用谓词
NSManagedObjectContext  根据 NSFetchRequest 查询数据,以数组的形式返回,数组中包含被管理对象 (NSManagedObject)
 
 
9 NSSortDescription  : 排序操作
 
10 后缀为 (.xcdatamodeleld) 的包
里面是 .xcdatamodeleld 文件 ,用数据模型编辑器编辑 编译后为 .momd 或 .mom文件
 
11 依赖关系
NSFetchRequest- NSEntityDescription、NSManagedObjectContext 
NSManagedObject- NSEntityDescription、NSManagedObjectContext 
 
NSManagedObjectContext -NSPersistentStoreCoordinator-NSManagedObjectModel、持久化数据存储类型、数据存储路径和名称
NSManagedObjectModel-(-.momd)-(.xcdatamodeleld)
持久化数据存储类型-NSSQLiteStoreType、NSBinaryStoreType、NSInMemoryStoreType、NSXMLStoreType
数据存储路径和名称- 数据库名称和路径
 
12 两个方法
//保存数据到持久层:把被管理的上下文所做的操作保存到实际的SQLite文件中
- (void)saveContext;
//应用程序沙盒下的Documents目录路径:获取Documents路径
- (NSURL *)applicationDocumentsDirectory;
  
 
 
三 CoreData 数据库的简单操作
1 创建模型文件
2 添加实体
3 创建实体类
4 生成上下文文件 关联模型文件生成数据库
5 保存对象到数据库
6 从数据库获取对象
7 更新数据
6 删除数据
 
 
 
 
 
 
 
 
 
 
 
 
 

最新文章

  1. Pyhont-Urllib2
  2. XMLHttpRequest Level2实现跨域
  3. 记录:asp.net mvc 中 使用 jquery 实现html5 实现placeholder 密码框 提示兼容password IE6
  4. LeetCode 274
  5. ANDROID_MARS学习笔记_S02_008_ANIMATION第二种使用方式:xml
  6. 判断两棵树是否相等 leecode
  7. css filter详解
  8. 【译】UI设计基础(UI Design Basics)--导航(Navigation)(六)
  9. Trapping Raining Water 解答
  10. iOS Label 自适应高度
  11. You need to use a Theme.AppCompat theme (or descendant) with this activity 问题解决
  12. Python文本数据互相转换(pandas and win32com)
  13. Python3.0科学计算学习之绘图(三)
  14. Flink--本地执行和集群执行
  15. js获取当前日期方法(YYYY-MM-DD格式)
  16. 11G新特性 -- Multicolumn Statistics (Column groups)
  17. Getting started with Processing 第十一章——数组
  18. Jboss 数据源密码明文加密
  19. 查看/修改Linux时区和时间
  20. HDU4474_Yet Another Multiple Problem

热门文章

  1. 观点:BPM已经过时了?
  2. learn python, ref, diveintopython 分类: python 2015-07-22 14:42 14人阅读 评论(0) 收藏
  3. CBitmap、HBITMAP、BITMAP相互转换
  4. jquery 显示弹出层可利用动画效果
  5. web前端从0开始--1
  6. Emacs 相关资料翻译
  7. It will affect staff as well.
  8. SharePoint Site "Language Settings"功能与CSOM的对应
  9. PKU1004
  10. SQL注入截取字符串函数