iOS数据库操作之coredata详细操作步骤

时间:2022-12-11 10:26:32

iOS数据库操作之coredata详细操作步骤


 
 
iOS 应用数据存取的常用方式  
•  XML 属性列表   -- PList
•  NSKeyedArchiver   归档  • Preference (偏好设置)  •  SQLite3
  Core Data
iOS数据库操作之coredata详细操作步骤
Core Data 简介  
  Core Data   iOS SDK   里的一个很强大的框架,允许程序员 以面向对象 的方式储存和管理数据 。使用 Core Data 框架,程序员可以很轻松有效 地通过面向对象的接口管理数据  
  Core Data 框架提供了 对象 - 关系映射 (ORM) 的功能,即能够将 OC 对象转 化成数据,保存在 SQLite3 数据库文件中,也能够将保存在数据库中的 数据还原成 OC 对象  
  在数据操作过程中,无需编写任何 SQL 语句  
•  要使用 Core Data , 需要导入 CoreData 框架  

iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
模型文件及实体( Entity )
•  要使用 CodeData ,首先需要定义模型文件,描述应用程
序中的所有实体( Entities ) •  所谓实体,是 跟数据库进行映射的对象  
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
NSManagedObject-- 对应数据库中的一条记录  
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
Core Data 主要对象关系示意图   类似于数据库的句柄, handle ,用来操纵数据库
                持久化存储调度者,是数据库与对象之间的
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤   iOS数据库操作之coredata详细操作步骤
在开发中,只会用到一次,如果不理解,直接粘代码

iOS数据库操作之coredata详细操作步骤 iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
Core Data 主要对象
  NSManagedObjectContext :负责应用和数据库之间的交互 (CRUD)
  NSPersistentStoreCoordinator :添加持久化存储库(如 SQLite 数据 库), 是物理数据存储的物理文件和程序之间的联系的桥梁 ,负责管 理 不同对象上下文
  NSManagedObjectModel :被管理的对象模型   NSEntityDescription :实体描述  
iOS数据库操作之coredata详细操作步骤
打开数据库  
// 1.   实例化持久化的存储  
// 1.1   Bundle 中加载被管理的数据模型  
NSManagedObjectModel   *model = [ NSManagedObjectModel mergedModelFromBundles : nil ];
// 1.2   实例化持久化存储调度  
NSPersistentStoreCoordinator   *store = [[ NSPersistentStoreCoordinator   alloc ] initWithManagedObjectModel :model];
...
// 1.3   添加持久化存储 (SQLite)
[store   addPersistentStoreWithType : NSSQLiteStoreType configuration : nil   URL :url   options : nil
error :&error];
...
//   管理对象上下文   _context   = [[ NSManagedObjectContext   alloc ] init ];   _context . persistentStoreCoordinator   = store;

iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
新增记录  
Person   *p = [ NSEntityDescription insertNewObjectForEntityForName : @"Person" inManagedObjectContext : _context ];
p. name   =   @" 张三 " ; p. age   =   @18 ;
[ _context   save : nil ];  
iOS数据库操作之coredata详细操作步骤
查询数据 --NSFetchedResultsController NSManagedObjectContext   *context = [[ DataManager sharedDataManager ]   sharedContext ];
NSFetchRequest   *request = [ NSFetchRequest fetchRequestWithEntityName : @"Person" ];
//   定义查询排序   NSSortDescriptor   *sort = [ NSSortDescriptor sortDescriptorWithKey : @"name"   ascending : YES ]; request. sortDescriptors   =   @[ sort ] ;
//   定义查询结果控制器   _fetchedResultController   = [[ NSFetchedResultsController   alloc ] initWithFetchRequest :request
managedObjectContext :context   sectionNameKeyPath : nil cacheName : nil ]; ...
[
_fetchedResultController   performFetch :&error];
iOS数据库操作之coredata详细操作步骤
查询数据  
NSFetchRequest   *request = [ NSFetchRequest fetchRequestWithEntityName : @"Person" ];
request. predicate   = [ NSPredicate predicateWithFormat : @"%K LIKE '*52*' OR name CONTAINS ' '" ,   @"phoneNo" ];
NSArray   *array = [ _context executeFetchRequest :request   error : nil ];
iOS数据库操作之coredata详细操作步骤
更新 & 删除记录  
1.   找到要更新、删除的记录   2.   更新:修改对象属性 3.   删除:上下文删除对象   4.   上下文保存
iOS数据库操作之coredata详细操作步骤
Core Data 的调试  
iOS数据库操作之coredata详细操作步骤

iOS数据库操作之coredata详细操作步骤

技术博客http://www.cnblogs.com/ChenYilong/  
新浪微博http://weibo.com/luohanchenyilong
 
 
 

下面是iOS数据库操作之coredata详细操作步骤:附上pdf文档和示例程序:

iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
CoreData
1. 常用类和方法  (注意需要导入  coredata 框架  )
iOS数据库操作之coredata详细操作步骤
表结构:NSEntityDescription
表记录:NSManagedObject 数据库存放方式:NSPersistentStoreCoordinator(持久化存储协调者) 数据库操作:NSManagedObjectContext(被管理的对象上下文)
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
2. xcode 图形管理
iOS数据库操作之coredata详细操作步骤
2. 3.
4.
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
2.操作数据库
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
一.连接数据库
  1. 首先需要创建一个操作数据库的上下文。NSManagedObjectContext
  1. 操作数据库的上下文需要设置一个调度者属性,这个调度者是用来将图形化
    建立的模型和数据库联系起来。
  1. 给调度者添加一个需要联系的数据库。
二.添加,更新,删除
添加:
1. 新建实体 INST (插入) 2. 设置实体的属性
3. 保存上下文
更新:
1. 判断是否已有一模一样的模型 2. 设置实体属性
3. 保存上下文
删除
三.查询
1.使用 NSFetchedResultsController 控制器
2.1 当操作数据上下文的内容改变的时候,会自动调用抓取结果控制器的代理方 法
3.
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
注意:一定要执行抓取请求,返回的数据在 sections 里,这个数组中装的都是遵 守 NSFetchedResultsSectionInfo 这个协议的对象。通过
numberOfObjects 就能获取一组有多少数据对象了。
 
 

1. 建立数据模型DataModel

* Entity - Entities(实体)
暂时理解为数据库中的表,在定义数据模型时,第一步就要定义实体
* Attributes(属性)
暂时理解为数据库中的字段

2. 建立NSManagedObject(被管理的对象)

以上操作全部用鼠标就可以完成(属性名字除外)
在数据模型最终确立之前,person.h&person.m中的内容都是自动生成的,不需要修改其中代码。

NSManagedObject的内容是通过图形化的界面确定实体的属性之后,自动生成的。

@dynamic 编译器会动态生成getter&setter方法,提高程序的扩展度。

FetechedResultController执行查询后,返回遵守了
NSFetchedResultsSectionInfo协议的对象的数组


除了安全,设计公司高级机密的,可以使用静态库
.a
.framework

对于iOS程序员,如果将自己的代码包在.a,会形成依赖!

 

 
 
 
 
 
 
 
 
 
coredata第三方框架,附上官方示例程序:
数据库工具_CoreData_MagicalRecord-develop
 
 
 
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
iOS数据库操作之coredata详细操作步骤
©  chenyilong. Powered by  Postach.io