• IOS-core data


    三个主要的类

    1:NSManagedObjectModel(上下文,数据 关系)

    2:NSPersistentStoreCoordinator(持久性数据协调器,和sqlite打交道的 与1建立关系,通过3执行数据交互)

    3:NSManagedObjectContext(管理对象上下文)

    分页查询:

     分页起始索引

      request.fetchoffset = 0;

     分页条数

      request.fetchLimit = 6;

    自己写的一个代码:

    1.声明:  

        NSManagedObjectModel *model;

        NSPersistentStoreCoordinator *store;

      NSManagedObjectContext *_context;

    2.初始化管理上下文:

      _context = [[NSManagedObjectContext allocinit];

    3.初始化上下文模型

      NSURL *modelURL = [[NSBundle mainBundleURLForResource:@"Model"   withExtension:@"momd"];

         model = [[NSManagedObjectModel allocinitWithContentsOfURL:modelURL];

    4.实例化存储桥梁,需要模型

        store = [[NSPersistentStoreCoordinator alloc]initWithManagedObjectModel:model];

    5.添加一个持久化的数据库

        NSArray *docs = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectoryNSUserDomainMaskYES);

        NSString *path = [docs[0stringByAppendingPathComponent:@"my.db"];

        NSURL *url = [NSURL fileURLWithPath:path];

        NSLog(@"%@",url);

        NSError *error = nil;

        [store addPersistentStoreWithTypeNSSQLiteStoreType configuration:nil URL:url options:nil error:&error];

        if(error)

        {

            NSLog(@"打开数据库出错:%@",error);

        }

        else

        {

            _context.persistentStoreCoordinator = store;

            NSLog(@"打开数据库成功");

        }

    此时数据库创建成功

    6.添加纪录

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

    p.name = self.name.text;

    Sorce *s = [NSEntityDescription insertNewObjectForEntityForName:@"Sorce" inManagedObjectContext:_context];

    p.sorce.easysorce = easytime;

    保存添加

    [_context save:nil];

    7.查询数据库

    //实例化一个查询

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

        //congtext执行查询

        NSString *textfiled = self.name.text;

        request.predicate = [NSPredicate predicateWithFormat:@"name LIKE %@",textfiled];

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

        for (People *p in array) {

            NSString *agetextfiled = [p.age stringValue];

            [self.age setText:agetextfiled];

        }

        

        if([self.age.text  isEqual@""])

        {

            NSString *text = @"查无此人";

            UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"提示" message:text delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nilnil];

            [alert show];

        }

    8.删除一条数据

    // 1. 实例化查询请求

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

        

        // 2. 设置谓词条件

        NSString *textfiled = self.name.text;

        request.predicate = [NSPredicate predicateWithFormat:@"name LIKE %@",textfiled];

        

        // 3. 由上下文查询数据

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

        

        // 4. 输出结果

        for (People *person in result) {

            // 删除一条记录

            [_context deleteObject:person];

            break;

        }

        

        // 5. 通知_context保存数据

        if ([_context save:nil]) {

            NSLog(@"删除成功");

            [self.age setText:@""];

            [self.name setText:@""];

        } else {

            NSLog(@"删除失败");

        }

    详细的可以参考:http://blog.csdn.net/ysy441088327/article/details/8606019

  • 相关阅读:
    [转]mysql的查询、子查询及连接查询
    [转]Mysql之Union用法
    [转]Mysql Join语法解析与性能分析
    【转】mysql中select用法
    [转]mysql update操作
    【转】mysql INSERT的用法
    框架:NHibernate学习目录
    NET基础篇——Entity Framework 数据转换层通用类
    MVC5 + EF6 + Bootstrap3
    MVC5+EF6 入门完整教程
  • 原文地址:https://www.cnblogs.com/zhouwenbo/p/4447735.html
Copyright © 2020-2023  润新知