zoukankan      html  css  js  c++  java
  • 数据库-Core Data

    数据库-Core Data

    讲师:刘凡

    技术博客:http://www.cnblogs.com/liufan9

    新浪微博:http://weibo.com/liufan2012

    iOS应用数据存取的常用方式

    XML属性列表 —— PList

    NSKeyedArchiver 归档

    Preference(偏好设置)

    SQLite3

    Core Data

    Core Data简介

    Core Data 是iOS SDK 里的一个很强大的框架,允许程序员以面向对象的方式储存和管理数据。使用Core Data框架,程序员可以很轻松有效地通过面向对象的接口管理数据

    Core Data框架提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite3数据库文件中,也能够将保存在数据库中的数据还原成OC对象

    在数据操作过程中,无需编写任何SQL语句

    要使用Core Data,需要导入CoreData框架

    模型文件及实体(Entity)

    要使用Code Data,首先需要定义模型文件,描述应用程序中的所有实体(Entity)

    所谓实体,是跟数据库进行映射的对象

    NSManagedObject——对应数据库中的一条记录

    Core Data主要对象关系示意图

    Core Data主要对象

    NSManagedObjectContext:负责应用和数据库之间的交互(CRUD)

    NSPersistentStoreCoordinator:添加持久化存储库(如SQLite数据库),是物理数据存储的物理文件和程序之间的联系的桥梁,负责管理不同对象上下文

    NSManagedObjectModel:被管理的对象模型,对应定义的模型文件

    NSEntityDescription:实体描述

    打开数据库

    // 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;

    新增记录

    新增记录

    Person *p = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:_context];

    p.name = @"张三";

    p.age = @18;

    [_context save:nil];

    查询数据

    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];

    request.predicate = [NSPredicate predicateWithFormat:@"%K LIKE '*52*' OR name CONTAINS '三'", @"phoneNo"];

    NSArray *array = [_context executeFetchRequest:request error:nil];

    更新&删除记录

    1.找到要更新、删除的记录
    2.更新:修改对象属性
    3.删除:上下文删除对象
    4.上下文保存

    Core Data的调试

    Q & A

    Thanks!

  • 相关阅读:
    jenkins集群(三) -- master和slave配置git
    jenkins集群(二)(master --> slave) -- allure自动化测试报告部署
    jenkins集群(一) -- 在Linux上部署
    APP自动化 -- contexts(上下文切换)
    APP自动化 -- 滑动解锁、滑动验证
    APP自动化 -- 坐标获取和点击
    APP自动化 -- 获取toast元素的文本内容
    APP自动化 -- MobileBy
    Python学习-基础数据类型补充操作、bytes类型
    Kafka-生产者、消费者、自定义分区器
  • 原文地址:https://www.cnblogs.com/niexiaobo/p/4888685.html
Copyright © 2011-2022 走看看